#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>

#define     __IO    volatile             /*!< Defines 'read / write' permissions */
/** 
	* @brief General Purpose I/O
  */

typedef struct
{
  __IO uint32_t CRL;
  __IO uint32_t CRH;
  __IO uint32_t IDR;
  __IO uint32_t ODR;
  __IO uint32_t BSRR;
  __IO uint32_t BRR;
  __IO uint32_t LCKR;
} GPIO_TypeDef;

#define PERIPH_BASE         0x40000000UL /*!< Peripheral base address in the alias region */
#define APB1PERIPH_BASE     PERIPH_BASE
#define APB2PERIPH_BASE     (PERIPH_BASE + 0x00010000UL)
#define GPIOA_BASE          (APB2PERIPH_BASE + 0x00000800UL)
#define GPIOA               ((GPIO_TypeDef *)GPIOA_BASE)

int main()
{
	printf ("%x",GPIOA);	
	getchar();
	return 0;
}