stm32f10x_map.h
上传用户:yj_qqy
上传日期:2017-01-28
资源大小:2911k
文件大小:28k
源码类别:

uCOS

开发平台:

C/C++

  1. /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
  2. * File Name          : stm32f10x_map.h
  3. * Author             : MCD Application Team
  4. * Version            : V2.0.2
  5. * Date               : 07/11/2008
  6. * Description        : This file contains all the peripheral register's definitions
  7. *                      and memory mapping.
  8. ********************************************************************************
  9. * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  10. * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
  11. * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
  12. * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
  13. * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
  14. * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  15. *******************************************************************************/
  16. /* Define to prevent recursive inclusion -------------------------------------*/
  17. #ifndef __STM32F10x_MAP_H
  18. #define __STM32F10x_MAP_H
  19. #ifndef EXT
  20.   #define EXT extern
  21. #endif /* EXT */
  22. /* Includes ------------------------------------------------------------------*/
  23. #include "stm32f10x_conf.h"
  24. #include "stm32f10x_type.h"
  25. #include "cortexm3_macro.h"
  26. /* Exported types ------------------------------------------------------------*/
  27. /******************************************************************************/
  28. /*                         Peripheral registers structures                    */
  29. /******************************************************************************/
  30. /*------------------------ Analog to Digital Converter -----------------------*/
  31. typedef struct
  32. {
  33.   vu32 SR;
  34.   vu32 CR1;
  35.   vu32 CR2;
  36.   vu32 SMPR1;
  37.   vu32 SMPR2;
  38.   vu32 JOFR1;
  39.   vu32 JOFR2;
  40.   vu32 JOFR3;
  41.   vu32 JOFR4;
  42.   vu32 HTR;
  43.   vu32 LTR;
  44.   vu32 SQR1;
  45.   vu32 SQR2;
  46.   vu32 SQR3;
  47.   vu32 JSQR;
  48.   vu32 JDR1;
  49.   vu32 JDR2;
  50.   vu32 JDR3;
  51.   vu32 JDR4;
  52.   vu32 DR;
  53. } ADC_TypeDef;
  54. /*------------------------ Backup Registers ----------------------------------*/
  55. typedef struct
  56. {
  57.   u32  RESERVED0;
  58.   vu16 DR1;
  59.   u16  RESERVED1;
  60.   vu16 DR2;
  61.   u16  RESERVED2;
  62.   vu16 DR3;
  63.   u16  RESERVED3;
  64.   vu16 DR4;
  65.   u16  RESERVED4;
  66.   vu16 DR5;
  67.   u16  RESERVED5;
  68.   vu16 DR6;
  69.   u16  RESERVED6;
  70.   vu16 DR7;
  71.   u16  RESERVED7;
  72.   vu16 DR8;
  73.   u16  RESERVED8;
  74.   vu16 DR9;
  75.   u16  RESERVED9;
  76.   vu16 DR10;
  77.   u16  RESERVED10; 
  78.   vu16 RTCCR;
  79.   u16  RESERVED11;
  80.   vu16 CR;
  81.   u16  RESERVED12;
  82.   vu16 CSR;
  83.   u16  RESERVED13[5];
  84.   vu16 DR11;
  85.   u16  RESERVED14;
  86.   vu16 DR12;
  87.   u16  RESERVED15;
  88.   vu16 DR13;
  89.   u16  RESERVED16;
  90.   vu16 DR14;
  91.   u16  RESERVED17;
  92.   vu16 DR15;
  93.   u16  RESERVED18;
  94.   vu16 DR16;
  95.   u16  RESERVED19;
  96.   vu16 DR17;
  97.   u16  RESERVED20;
  98.   vu16 DR18;
  99.   u16  RESERVED21;
  100.   vu16 DR19;
  101.   u16  RESERVED22;
  102.   vu16 DR20;
  103.   u16  RESERVED23;
  104.   vu16 DR21;
  105.   u16  RESERVED24;
  106.   vu16 DR22;
  107.   u16  RESERVED25;
  108.   vu16 DR23;
  109.   u16  RESERVED26;
  110.   vu16 DR24;
  111.   u16  RESERVED27;
  112.   vu16 DR25;
  113.   u16  RESERVED28;
  114.   vu16 DR26;
  115.   u16  RESERVED29;
  116.   vu16 DR27;
  117.   u16  RESERVED30;
  118.   vu16 DR28;
  119.   u16  RESERVED31;
  120.   vu16 DR29;
  121.   u16  RESERVED32;
  122.   vu16 DR30;
  123.   u16  RESERVED33; 
  124.   vu16 DR31;
  125.   u16  RESERVED34;
  126.   vu16 DR32;
  127.   u16  RESERVED35;
  128.   vu16 DR33;
  129.   u16  RESERVED36;
  130.   vu16 DR34;
  131.   u16  RESERVED37;
  132.   vu16 DR35;
  133.   u16  RESERVED38;
  134.   vu16 DR36;
  135.   u16  RESERVED39;
  136.   vu16 DR37;
  137.   u16  RESERVED40;
  138.   vu16 DR38;
  139.   u16  RESERVED41;
  140.   vu16 DR39;
  141.   u16  RESERVED42;
  142.   vu16 DR40;
  143.   u16  RESERVED43;
  144.   vu16 DR41;
  145.   u16  RESERVED44;
  146.   vu16 DR42;
  147.   u16  RESERVED45;    
  148. } BKP_TypeDef;
  149. /*------------------------ Controller Area Network ---------------------------*/
  150. typedef struct
  151. {
  152.   vu32 TIR;
  153.   vu32 TDTR;
  154.   vu32 TDLR;
  155.   vu32 TDHR;
  156. } CAN_TxMailBox_TypeDef;
  157. typedef struct
  158. {
  159.   vu32 RIR;
  160.   vu32 RDTR;
  161.   vu32 RDLR;
  162.   vu32 RDHR;
  163. } CAN_FIFOMailBox_TypeDef;
  164. typedef struct
  165. {
  166.   vu32 FR1;
  167.   vu32 FR2;
  168. } CAN_FilterRegister_TypeDef;
  169. typedef struct
  170. {
  171.   vu32 MCR;
  172.   vu32 MSR;
  173.   vu32 TSR;
  174.   vu32 RF0R;
  175.   vu32 RF1R;
  176.   vu32 IER;
  177.   vu32 ESR;
  178.   vu32 BTR;
  179.   u32  RESERVED0[88];
  180.   CAN_TxMailBox_TypeDef sTxMailBox[3];
  181.   CAN_FIFOMailBox_TypeDef sFIFOMailBox[2];
  182.   u32  RESERVED1[12];
  183.   vu32 FMR;
  184.   vu32 FM1R;
  185.   u32  RESERVED2;
  186.   vu32 FS1R;
  187.   u32  RESERVED3;
  188.   vu32 FFA1R;
  189.   u32  RESERVED4;
  190.   vu32 FA1R;
  191.   u32  RESERVED5[8];
  192.   CAN_FilterRegister_TypeDef sFilterRegister[14];
  193. } CAN_TypeDef;
  194. /*------------------------ CRC calculation unit ------------------------------*/
  195. typedef struct
  196. {
  197.   vu32 DR;
  198.   vu8  IDR;
  199.   u8   RESERVED0;
  200.   u16  RESERVED1;
  201.   vu32 CR;
  202. } CRC_TypeDef;
  203. /*------------------------ Digital to Analog Converter -----------------------*/
  204. typedef struct
  205. {
  206.   vu32 CR;
  207.   vu32 SWTRIGR;
  208.   vu32 DHR12R1;
  209.   vu32 DHR12L1;
  210.   vu32 DHR8R1;
  211.   vu32 DHR12R2;
  212.   vu32 DHR12L2;
  213.   vu32 DHR8R2;
  214.   vu32 DHR12RD;
  215.   vu32 DHR12LD;
  216.   vu32 DHR8RD;
  217.   vu32 DOR1;
  218.   vu32 DOR2;
  219. } DAC_TypeDef;
  220. /*------------------------ Debug MCU -----------------------------------------*/
  221. typedef struct
  222. {
  223.   vu32 IDCODE;
  224.   vu32 CR;
  225. }DBGMCU_TypeDef;
  226. /*------------------------ DMA Controller ------------------------------------*/
  227. typedef struct
  228. {
  229.   vu32 CCR;
  230.   vu32 CNDTR;
  231.   vu32 CPAR;
  232.   vu32 CMAR;
  233. } DMA_Channel_TypeDef;
  234. typedef struct
  235. {
  236.   vu32 ISR;
  237.   vu32 IFCR;
  238. } DMA_TypeDef;
  239. /*------------------------ External Interrupt/Event Controller ---------------*/
  240. typedef struct
  241. {
  242.   vu32 IMR;
  243.   vu32 EMR;
  244.   vu32 RTSR;
  245.   vu32 FTSR;
  246.   vu32 SWIER;
  247.   vu32 PR;
  248. } EXTI_TypeDef;
  249. /*------------------------ FLASH and Option Bytes Registers ------------------*/
  250. typedef struct
  251. {
  252.   vu32 ACR;
  253.   vu32 KEYR;
  254.   vu32 OPTKEYR;
  255.   vu32 SR;
  256.   vu32 CR;
  257.   vu32 AR;
  258.   vu32 RESERVED;
  259.   vu32 OBR;
  260.   vu32 WRPR;
  261. } FLASH_TypeDef;
  262. typedef struct
  263. {
  264.   vu16 RDP;
  265.   vu16 USER;
  266.   vu16 Data0;
  267.   vu16 Data1;
  268.   vu16 WRP0;
  269.   vu16 WRP1;
  270.   vu16 WRP2;
  271.   vu16 WRP3;
  272. } OB_TypeDef;
  273. /*------------------------ Flexible Static Memory Controller -----------------*/
  274. typedef struct
  275. {
  276.   vu32 BTCR[8];   
  277. } FSMC_Bank1_TypeDef; 
  278. typedef struct
  279. {
  280.   vu32 BWTR[7];
  281. } FSMC_Bank1E_TypeDef;
  282. typedef struct
  283. {
  284.   vu32 PCR2;
  285.   vu32 SR2;
  286.   vu32 PMEM2;
  287.   vu32 PATT2;
  288.   u32  RESERVED0;   
  289.   vu32 ECCR2; 
  290. } FSMC_Bank2_TypeDef;  
  291. typedef struct
  292. {
  293.   vu32 PCR3;
  294.   vu32 SR3;
  295.   vu32 PMEM3;
  296.   vu32 PATT3;
  297.   u32  RESERVED0;   
  298.   vu32 ECCR3; 
  299. } FSMC_Bank3_TypeDef; 
  300. typedef struct
  301. {
  302.   vu32 PCR4;
  303.   vu32 SR4;
  304.   vu32 PMEM4;
  305.   vu32 PATT4;
  306.   vu32 PIO4; 
  307. } FSMC_Bank4_TypeDef; 
  308. /*------------------------ General Purpose and Alternate Function IO ---------*/
  309. typedef struct
  310. {
  311.   vu32 CRL;
  312.   vu32 CRH;
  313.   vu32 IDR;
  314.   vu32 ODR;
  315.   vu32 BSRR;
  316.   vu32 BRR;
  317.   vu32 LCKR;
  318. } GPIO_TypeDef;
  319. typedef struct
  320. {
  321.   vu32 EVCR;
  322.   vu32 MAPR;
  323.   vu32 EXTICR[4];
  324. } AFIO_TypeDef;
  325. /*------------------------ Inter-integrated Circuit Interface ----------------*/
  326. typedef struct
  327. {
  328.   vu16 CR1;
  329.   u16  RESERVED0;
  330.   vu16 CR2;
  331.   u16  RESERVED1;
  332.   vu16 OAR1;
  333.   u16  RESERVED2;
  334.   vu16 OAR2;
  335.   u16  RESERVED3;
  336.   vu16 DR;
  337.   u16  RESERVED4;
  338.   vu16 SR1;
  339.   u16  RESERVED5;
  340.   vu16 SR2;
  341.   u16  RESERVED6;
  342.   vu16 CCR;
  343.   u16  RESERVED7;
  344.   vu16 TRISE;
  345.   u16  RESERVED8;
  346. } I2C_TypeDef;
  347. /*------------------------ Independent WATCHDOG ------------------------------*/
  348. typedef struct
  349. {
  350.   vu32 KR;
  351.   vu32 PR;
  352.   vu32 RLR;
  353.   vu32 SR;
  354. } IWDG_TypeDef;
  355. /*------------------------ Nested Vectored Interrupt Controller --------------*/
  356. typedef struct
  357. {
  358.   vu32 ISER[2];
  359.   u32  RESERVED0[30];
  360.   vu32 ICER[2];
  361.   u32  RSERVED1[30];
  362.   vu32 ISPR[2];
  363.   u32  RESERVED2[30];
  364.   vu32 ICPR[2];
  365.   u32  RESERVED3[30];
  366.   vu32 IABR[2];
  367.   u32  RESERVED4[62];
  368.   vu32 IPR[15];
  369. } NVIC_TypeDef;
  370. typedef struct
  371. {
  372.   vuc32 CPUID;
  373.   vu32 ICSR;
  374.   vu32 VTOR;
  375.   vu32 AIRCR;
  376.   vu32 SCR;
  377.   vu32 CCR;
  378.   vu32 SHPR[3];
  379.   vu32 SHCSR;
  380.   vu32 CFSR;
  381.   vu32 HFSR;
  382.   vu32 DFSR;
  383.   vu32 MMFAR;
  384.   vu32 BFAR;
  385.   vu32 AFSR;
  386. } SCB_TypeDef;
  387. /*------------------------ Power Control -------------------------------------*/
  388. typedef struct
  389. {
  390.   vu32 CR;
  391.   vu32 CSR;
  392. } PWR_TypeDef;
  393. /*------------------------ Reset and Clock Control ---------------------------*/
  394. typedef struct
  395. {
  396.   vu32 CR;
  397.   vu32 CFGR;
  398.   vu32 CIR;
  399.   vu32 APB2RSTR;
  400.   vu32 APB1RSTR;
  401.   vu32 AHBENR;
  402.   vu32 APB2ENR;
  403.   vu32 APB1ENR;
  404.   vu32 BDCR;
  405.   vu32 CSR;
  406. } RCC_TypeDef;
  407. /*------------------------ Real-Time Clock -----------------------------------*/
  408. typedef struct
  409. {
  410.   vu16 CRH;
  411.   u16  RESERVED0;
  412.   vu16 CRL;
  413.   u16  RESERVED1;
  414.   vu16 PRLH;
  415.   u16  RESERVED2;
  416.   vu16 PRLL;
  417.   u16  RESERVED3;
  418.   vu16 DIVH;
  419.   u16  RESERVED4;
  420.   vu16 DIVL;
  421.   u16  RESERVED5;
  422.   vu16 CNTH;
  423.   u16  RESERVED6;
  424.   vu16 CNTL;
  425.   u16  RESERVED7;
  426.   vu16 ALRH;
  427.   u16  RESERVED8;
  428.   vu16 ALRL;
  429.   u16  RESERVED9;
  430. } RTC_TypeDef;
  431. /*------------------------ SD host Interface ---------------------------------*/
  432. typedef struct
  433. {
  434.   vu32 POWER;
  435.   vu32 CLKCR;
  436.   vu32 ARG;
  437.   vu32 CMD;
  438.   vuc32 RESPCMD;
  439.   vuc32 RESP1;
  440.   vuc32 RESP2;
  441.   vuc32 RESP3;
  442.   vuc32 RESP4;
  443.   vu32 DTIMER;
  444.   vu32 DLEN;
  445.   vu32 DCTRL;
  446.   vuc32 DCOUNT;
  447.   vuc32 STA;
  448.   vu32 ICR;
  449.   vu32 MASK;
  450.   u32  RESERVED0[2];
  451.   vuc32 FIFOCNT;
  452.   u32  RESERVED1[13];
  453.   vu32 FIFO;
  454. } SDIO_TypeDef;
  455. /*------------------------ Serial Peripheral Interface -----------------------*/
  456. typedef struct
  457. {
  458.   vu16 CR1;
  459.   u16  RESERVED0;
  460.   vu16 CR2;
  461.   u16  RESERVED1;
  462.   vu16 SR;
  463.   u16  RESERVED2;
  464.   vu16 DR;
  465.   u16  RESERVED3;
  466.   vu16 CRCPR;
  467.   u16  RESERVED4;
  468.   vu16 RXCRCR;
  469.   u16  RESERVED5;
  470.   vu16 TXCRCR;
  471.   u16  RESERVED6;
  472.   vu16 I2SCFGR;
  473.   u16  RESERVED7;
  474.   vu16 I2SPR;
  475.   u16  RESERVED8;  
  476. } SPI_TypeDef;
  477. /*------------------------ SystemTick ----------------------------------------*/
  478. typedef struct
  479. {
  480.   vu32 CTRL;
  481.   vu32 LOAD;
  482.   vu32 VAL;
  483.   vuc32 CALIB;
  484. } SysTick_TypeDef;
  485. /*------------------------ TIM -----------------------------------------------*/
  486. typedef struct
  487. {
  488.   vu16 CR1;
  489.   u16  RESERVED0;
  490.   vu16 CR2;
  491.   u16  RESERVED1;
  492.   vu16 SMCR;
  493.   u16  RESERVED2;
  494.   vu16 DIER;
  495.   u16  RESERVED3;
  496.   vu16 SR;
  497.   u16  RESERVED4;
  498.   vu16 EGR;
  499.   u16  RESERVED5;
  500.   vu16 CCMR1;
  501.   u16  RESERVED6;
  502.   vu16 CCMR2;
  503.   u16  RESERVED7;
  504.   vu16 CCER;
  505.   u16  RESERVED8;
  506.   vu16 CNT;
  507.   u16  RESERVED9;
  508.   vu16 PSC;
  509.   u16  RESERVED10;
  510.   vu16 ARR;
  511.   u16  RESERVED11;
  512.   vu16 RCR;
  513.   u16  RESERVED12;
  514.   vu16 CCR1;
  515.   u16  RESERVED13;
  516.   vu16 CCR2;
  517.   u16  RESERVED14;
  518.   vu16 CCR3;
  519.   u16  RESERVED15;
  520.   vu16 CCR4;
  521.   u16  RESERVED16;
  522.   vu16 BDTR;
  523.   u16  RESERVED17;
  524.   vu16 DCR;
  525.   u16  RESERVED18;
  526.   vu16 DMAR;
  527.   u16  RESERVED19;
  528. } TIM_TypeDef;
  529. /*----------------- Universal Synchronous Asynchronous Receiver Transmitter --*/
  530. typedef struct
  531. {
  532.   vu16 SR;
  533.   u16  RESERVED0;
  534.   vu16 DR;
  535.   u16  RESERVED1;
  536.   vu16 BRR;
  537.   u16  RESERVED2;
  538.   vu16 CR1;
  539.   u16  RESERVED3;
  540.   vu16 CR2;
  541.   u16  RESERVED4;
  542.   vu16 CR3;
  543.   u16  RESERVED5;
  544.   vu16 GTPR;
  545.   u16  RESERVED6;
  546. } USART_TypeDef;
  547. /*------------------------ Window WATCHDOG -----------------------------------*/
  548. typedef struct
  549. {
  550.   vu32 CR;
  551.   vu32 CFR;
  552.   vu32 SR;
  553. } WWDG_TypeDef;
  554. /******************************************************************************/
  555. /*                         Peripheral memory map                              */
  556. /******************************************************************************/
  557. /* Peripheral and SRAM base address in the alias region */
  558. #define PERIPH_BB_BASE        ((u32)0x42000000)
  559. #define SRAM_BB_BASE          ((u32)0x22000000)
  560. /* Peripheral and SRAM base address in the bit-band region */
  561. #define SRAM_BASE             ((u32)0x20000000)
  562. #define PERIPH_BASE           ((u32)0x40000000)
  563. /* FSMC registers base address */
  564. #define FSMC_R_BASE           ((u32)0xA0000000)
  565. /* Peripheral memory map */
  566. #define APB1PERIPH_BASE       PERIPH_BASE
  567. #define APB2PERIPH_BASE       (PERIPH_BASE + 0x10000)
  568. #define AHBPERIPH_BASE        (PERIPH_BASE + 0x20000)
  569. #define TIM2_BASE             (APB1PERIPH_BASE + 0x0000)
  570. #define TIM3_BASE             (APB1PERIPH_BASE + 0x0400)
  571. #define TIM4_BASE             (APB1PERIPH_BASE + 0x0800)
  572. #define TIM5_BASE             (APB1PERIPH_BASE + 0x0C00)
  573. #define TIM6_BASE             (APB1PERIPH_BASE + 0x1000)
  574. #define TIM7_BASE             (APB1PERIPH_BASE + 0x1400)
  575. #define RTC_BASE              (APB1PERIPH_BASE + 0x2800)
  576. #define WWDG_BASE             (APB1PERIPH_BASE + 0x2C00)
  577. #define IWDG_BASE             (APB1PERIPH_BASE + 0x3000)
  578. #define SPI2_BASE             (APB1PERIPH_BASE + 0x3800)
  579. #define SPI3_BASE             (APB1PERIPH_BASE + 0x3C00)
  580. #define USART2_BASE           (APB1PERIPH_BASE + 0x4400)
  581. #define USART3_BASE           (APB1PERIPH_BASE + 0x4800)
  582. #define UART4_BASE            (APB1PERIPH_BASE + 0x4C00)
  583. #define UART5_BASE            (APB1PERIPH_BASE + 0x5000)
  584. #define I2C1_BASE             (APB1PERIPH_BASE + 0x5400)
  585. #define I2C2_BASE             (APB1PERIPH_BASE + 0x5800)
  586. #define CAN_BASE              (APB1PERIPH_BASE + 0x6400)
  587. #define BKP_BASE              (APB1PERIPH_BASE + 0x6C00)
  588. #define PWR_BASE              (APB1PERIPH_BASE + 0x7000)
  589. #define DAC_BASE              (APB1PERIPH_BASE + 0x7400)
  590. #define AFIO_BASE             (APB2PERIPH_BASE + 0x0000)
  591. #define EXTI_BASE             (APB2PERIPH_BASE + 0x0400)
  592. #define GPIOA_BASE            (APB2PERIPH_BASE + 0x0800)
  593. #define GPIOB_BASE            (APB2PERIPH_BASE + 0x0C00)
  594. #define GPIOC_BASE            (APB2PERIPH_BASE + 0x1000)
  595. #define GPIOD_BASE            (APB2PERIPH_BASE + 0x1400)
  596. #define GPIOE_BASE            (APB2PERIPH_BASE + 0x1800)
  597. #define GPIOF_BASE            (APB2PERIPH_BASE + 0x1C00)
  598. #define GPIOG_BASE            (APB2PERIPH_BASE + 0x2000)
  599. #define ADC1_BASE             (APB2PERIPH_BASE + 0x2400)
  600. #define ADC2_BASE             (APB2PERIPH_BASE + 0x2800)
  601. #define TIM1_BASE             (APB2PERIPH_BASE + 0x2C00)
  602. #define SPI1_BASE             (APB2PERIPH_BASE + 0x3000)
  603. #define TIM8_BASE             (APB2PERIPH_BASE + 0x3400)
  604. #define USART1_BASE           (APB2PERIPH_BASE + 0x3800)
  605. #define ADC3_BASE             (APB2PERIPH_BASE + 0x3C00)
  606. #define SDIO_BASE             (PERIPH_BASE + 0x18000)
  607. #define DMA1_BASE             (AHBPERIPH_BASE + 0x0000)
  608. #define DMA1_Channel1_BASE    (AHBPERIPH_BASE + 0x0008)
  609. #define DMA1_Channel2_BASE    (AHBPERIPH_BASE + 0x001C)
  610. #define DMA1_Channel3_BASE    (AHBPERIPH_BASE + 0x0030)
  611. #define DMA1_Channel4_BASE    (AHBPERIPH_BASE + 0x0044)
  612. #define DMA1_Channel5_BASE    (AHBPERIPH_BASE + 0x0058)
  613. #define DMA1_Channel6_BASE    (AHBPERIPH_BASE + 0x006C)
  614. #define DMA1_Channel7_BASE    (AHBPERIPH_BASE + 0x0080)
  615. #define DMA2_BASE             (AHBPERIPH_BASE + 0x0400)
  616. #define DMA2_Channel1_BASE    (AHBPERIPH_BASE + 0x0408)
  617. #define DMA2_Channel2_BASE    (AHBPERIPH_BASE + 0x041C)
  618. #define DMA2_Channel3_BASE    (AHBPERIPH_BASE + 0x0430)
  619. #define DMA2_Channel4_BASE    (AHBPERIPH_BASE + 0x0444)
  620. #define DMA2_Channel5_BASE    (AHBPERIPH_BASE + 0x0458)
  621. #define RCC_BASE              (AHBPERIPH_BASE + 0x1000)
  622. #define CRC_BASE              (AHBPERIPH_BASE + 0x3000)
  623. /* Flash registers base address */
  624. #define FLASH_R_BASE          (AHBPERIPH_BASE + 0x2000)
  625. /* Flash Option Bytes base address */
  626. #define OB_BASE               ((u32)0x1FFFF800)
  627. /* FSMC Bankx registers base address */
  628. #define FSMC_Bank1_R_BASE     (FSMC_R_BASE + 0x0000)
  629. #define FSMC_Bank1E_R_BASE    (FSMC_R_BASE + 0x0104)
  630. #define FSMC_Bank2_R_BASE     (FSMC_R_BASE + 0x0060)
  631. #define FSMC_Bank3_R_BASE     (FSMC_R_BASE + 0x0080)
  632. #define FSMC_Bank4_R_BASE     (FSMC_R_BASE + 0x00A0)
  633. /* Debug MCU registers base address */
  634. #define DBGMCU_BASE          ((u32)0xE0042000)
  635. /* System Control Space memory map */
  636. #define SCS_BASE              ((u32)0xE000E000)
  637. #define SysTick_BASE          (SCS_BASE + 0x0010)
  638. #define NVIC_BASE             (SCS_BASE + 0x0100)
  639. #define SCB_BASE              (SCS_BASE + 0x0D00)
  640. /******************************************************************************/
  641. /*                         Peripheral declaration                             */
  642. /******************************************************************************/
  643. /*------------------------ Non Debug Mode ------------------------------------*/
  644. #ifndef DEBUG
  645. #ifdef _TIM2
  646.   #define TIM2                ((TIM_TypeDef *) TIM2_BASE)
  647. #endif /*_TIM2 */
  648. #ifdef _TIM3
  649.   #define TIM3                ((TIM_TypeDef *) TIM3_BASE)
  650. #endif /*_TIM3 */
  651. #ifdef _TIM4
  652.   #define TIM4                ((TIM_TypeDef *) TIM4_BASE)
  653. #endif /*_TIM4 */
  654. #ifdef _TIM5
  655.   #define TIM5                ((TIM_TypeDef *) TIM5_BASE)
  656. #endif /*_TIM5 */
  657. #ifdef _TIM6
  658.   #define TIM6                ((TIM_TypeDef *) TIM6_BASE)
  659. #endif /*_TIM6 */
  660. #ifdef _TIM7
  661.   #define TIM7                ((TIM_TypeDef *) TIM7_BASE)
  662. #endif /*_TIM7 */
  663. #ifdef _RTC
  664.   #define RTC                 ((RTC_TypeDef *) RTC_BASE)
  665. #endif /*_RTC */
  666. #ifdef _WWDG
  667.   #define WWDG                ((WWDG_TypeDef *) WWDG_BASE)
  668. #endif /*_WWDG */
  669. #ifdef _IWDG
  670.   #define IWDG                ((IWDG_TypeDef *) IWDG_BASE)
  671. #endif /*_IWDG */
  672. #ifdef _SPI2
  673.   #define SPI2                ((SPI_TypeDef *) SPI2_BASE)
  674. #endif /*_SPI2 */
  675. #ifdef _SPI3
  676.   #define SPI3                ((SPI_TypeDef *) SPI3_BASE)
  677. #endif /*_SPI3 */
  678. #ifdef _USART2
  679.   #define USART2              ((USART_TypeDef *) USART2_BASE)
  680. #endif /*_USART2 */
  681. #ifdef _USART3
  682.   #define USART3              ((USART_TypeDef *) USART3_BASE)
  683. #endif /*_USART3 */
  684. #ifdef _UART4
  685.   #define UART4              ((USART_TypeDef *) UART4_BASE)
  686. #endif /*_UART4 */
  687. #ifdef _UART5
  688.   #define UART5              ((USART_TypeDef *) UART5_BASE)
  689. #endif /*_USART5 */
  690. #ifdef _I2C1
  691.   #define I2C1                ((I2C_TypeDef *) I2C1_BASE)
  692. #endif /*_I2C1 */
  693. #ifdef _I2C2
  694.   #define I2C2                ((I2C_TypeDef *) I2C2_BASE)
  695. #endif /*_I2C2 */
  696. #ifdef _CAN
  697.   #define CAN                 ((CAN_TypeDef *) CAN_BASE)
  698. #endif /*_CAN */
  699. #ifdef _BKP
  700.   #define BKP                 ((BKP_TypeDef *) BKP_BASE)
  701. #endif /*_BKP */
  702. #ifdef _PWR
  703.   #define PWR                 ((PWR_TypeDef *) PWR_BASE)
  704. #endif /*_PWR */
  705. #ifdef _DAC
  706.   #define DAC                 ((DAC_TypeDef *) DAC_BASE)
  707. #endif /*_DAC */
  708. #ifdef _AFIO
  709.   #define AFIO                ((AFIO_TypeDef *) AFIO_BASE)
  710. #endif /*_AFIO */
  711. #ifdef _EXTI
  712.   #define EXTI                ((EXTI_TypeDef *) EXTI_BASE)
  713. #endif /*_EXTI */
  714. #ifdef _GPIOA
  715.   #define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE)
  716. #endif /*_GPIOA */
  717. #ifdef _GPIOB
  718.   #define GPIOB               ((GPIO_TypeDef *) GPIOB_BASE)
  719. #endif /*_GPIOB */
  720. #ifdef _GPIOC
  721.   #define GPIOC               ((GPIO_TypeDef *) GPIOC_BASE)
  722. #endif /*_GPIOC */
  723. #ifdef _GPIOD
  724.   #define GPIOD               ((GPIO_TypeDef *) GPIOD_BASE)
  725. #endif /*_GPIOD */
  726. #ifdef _GPIOE
  727.   #define GPIOE               ((GPIO_TypeDef *) GPIOE_BASE)
  728. #endif /*_GPIOE */
  729. #ifdef _GPIOF
  730.   #define GPIOF               ((GPIO_TypeDef *) GPIOF_BASE)
  731. #endif /*_GPIOF */
  732. #ifdef _GPIOG
  733.   #define GPIOG               ((GPIO_TypeDef *) GPIOG_BASE)
  734. #endif /*_GPIOG */
  735. #ifdef _ADC1
  736.   #define ADC1                ((ADC_TypeDef *) ADC1_BASE)
  737. #endif /*_ADC1 */
  738. #ifdef _ADC2
  739.   #define ADC2                ((ADC_TypeDef *) ADC2_BASE)
  740. #endif /*_ADC2 */
  741. #ifdef _TIM1
  742.   #define TIM1                ((TIM_TypeDef *) TIM1_BASE)
  743. #endif /*_TIM1 */
  744. #ifdef _SPI1
  745.   #define SPI1                ((SPI_TypeDef *) SPI1_BASE)
  746. #endif /*_SPI1 */
  747. #ifdef _TIM8
  748.   #define TIM8                ((TIM_TypeDef *) TIM8_BASE)
  749. #endif /*_TIM8 */
  750. #ifdef _USART1
  751.   #define USART1              ((USART_TypeDef *) USART1_BASE)
  752. #endif /*_USART1 */
  753. #ifdef _ADC3
  754.   #define ADC3                ((ADC_TypeDef *) ADC3_BASE)
  755. #endif /*_ADC3 */
  756. #ifdef _SDIO
  757.   #define SDIO                ((SDIO_TypeDef *) SDIO_BASE)
  758. #endif /*_SDIO */
  759. #ifdef _DMA
  760.   #define DMA1                ((DMA_TypeDef *) DMA1_BASE)
  761.   #define DMA2                ((DMA_TypeDef *) DMA2_BASE)
  762. #endif /*_DMA */
  763. #ifdef _DMA1_Channel1
  764.   #define DMA1_Channel1       ((DMA_Channel_TypeDef *) DMA1_Channel1_BASE)
  765. #endif /*_DMA1_Channel1 */
  766. #ifdef _DMA1_Channel2
  767.   #define DMA1_Channel2       ((DMA_Channel_TypeDef *) DMA1_Channel2_BASE)
  768. #endif /*_DMA1_Channel2 */
  769. #ifdef _DMA1_Channel3
  770.   #define DMA1_Channel3       ((DMA_Channel_TypeDef *) DMA1_Channel3_BASE)
  771. #endif /*_DMA1_Channel3 */
  772. #ifdef _DMA1_Channel4
  773.   #define DMA1_Channel4       ((DMA_Channel_TypeDef *) DMA1_Channel4_BASE)
  774. #endif /*_DMA1_Channel4 */
  775. #ifdef _DMA1_Channel5
  776.   #define DMA1_Channel5       ((DMA_Channel_TypeDef *) DMA1_Channel5_BASE)
  777. #endif /*_DMA1_Channel5 */
  778. #ifdef _DMA1_Channel6
  779.   #define DMA1_Channel6       ((DMA_Channel_TypeDef *) DMA1_Channel6_BASE)
  780. #endif /*_DMA1_Channel6 */
  781. #ifdef _DMA1_Channel7
  782.   #define DMA1_Channel7       ((DMA_Channel_TypeDef *) DMA1_Channel7_BASE)
  783. #endif /*_DMA1_Channel7 */
  784. #ifdef _DMA2_Channel1
  785.   #define DMA2_Channel1       ((DMA_Channel_TypeDef *) DMA2_Channel1_BASE)
  786. #endif /*_DMA2_Channel1 */
  787. #ifdef _DMA2_Channel2
  788.   #define DMA2_Channel2       ((DMA_Channel_TypeDef *) DMA2_Channel2_BASE)
  789. #endif /*_DMA2_Channel2 */
  790. #ifdef _DMA2_Channel3
  791.   #define DMA2_Channel3       ((DMA_Channel_TypeDef *) DMA2_Channel3_BASE)
  792. #endif /*_DMA2_Channel3 */
  793. #ifdef _DMA2_Channel4
  794.   #define DMA2_Channel4       ((DMA_Channel_TypeDef *) DMA2_Channel4_BASE)
  795. #endif /*_DMA2_Channel4 */
  796. #ifdef _DMA2_Channel5
  797.   #define DMA2_Channel5       ((DMA_Channel_TypeDef *) DMA2_Channel5_BASE)
  798. #endif /*_DMA2_Channel5 */
  799. #ifdef _RCC
  800.   #define RCC                 ((RCC_TypeDef *) RCC_BASE)
  801. #endif /*_RCC */
  802. #ifdef _CRC
  803.   #define CRC                 ((CRC_TypeDef *) CRC_BASE)
  804. #endif /*_CRC */
  805. #ifdef _FLASH
  806.   #define FLASH               ((FLASH_TypeDef *) FLASH_R_BASE)
  807.   #define OB                  ((OB_TypeDef *) OB_BASE) 
  808. #endif /*_FLASH */
  809. #ifdef _FSMC
  810.   #define FSMC_Bank1          ((FSMC_Bank1_TypeDef *) FSMC_Bank1_R_BASE)
  811.   #define FSMC_Bank1E         ((FSMC_Bank1E_TypeDef *) FSMC_Bank1E_R_BASE)
  812.   #define FSMC_Bank2          ((FSMC_Bank2_TypeDef *) FSMC_Bank2_R_BASE)
  813.   #define FSMC_Bank3          ((FSMC_Bank3_TypeDef *) FSMC_Bank3_R_BASE)
  814.   #define FSMC_Bank4          ((FSMC_Bank4_TypeDef *) FSMC_Bank4_R_BASE)
  815. #endif /*_FSMC */
  816. #ifdef _DBGMCU
  817.   #define DBGMCU              ((DBGMCU_TypeDef *) DBGMCU_BASE)
  818. #endif /*_DBGMCU */
  819. #ifdef _SysTick
  820.   #define SysTick             ((SysTick_TypeDef *) SysTick_BASE)
  821. #endif /*_SysTick */
  822. #ifdef _NVIC
  823.   #define NVIC                ((NVIC_TypeDef *) NVIC_BASE)
  824.   #define SCB                 ((SCB_TypeDef *) SCB_BASE)  
  825. #endif /*_NVIC */
  826. /*------------------------ Debug Mode ----------------------------------------*/
  827. #else   /* DEBUG */
  828. #ifdef _TIM2
  829.   EXT TIM_TypeDef             *TIM2;
  830. #endif /*_TIM2 */
  831. #ifdef _TIM3
  832.   EXT TIM_TypeDef             *TIM3;
  833. #endif /*_TIM3 */
  834. #ifdef _TIM4
  835.   EXT TIM_TypeDef             *TIM4;
  836. #endif /*_TIM4 */
  837. #ifdef _TIM5
  838.   EXT TIM_TypeDef             *TIM5;
  839. #endif /*_TIM5 */
  840. #ifdef _TIM6
  841.   EXT TIM_TypeDef             *TIM6;
  842. #endif /*_TIM6 */
  843. #ifdef _TIM7
  844.   EXT TIM_TypeDef             *TIM7;
  845. #endif /*_TIM7 */
  846. #ifdef _RTC
  847.   EXT RTC_TypeDef             *RTC;
  848. #endif /*_RTC */
  849. #ifdef _WWDG
  850.   EXT WWDG_TypeDef            *WWDG;
  851. #endif /*_WWDG */
  852. #ifdef _IWDG
  853.   EXT IWDG_TypeDef            *IWDG;
  854. #endif /*_IWDG */
  855. #ifdef _SPI2
  856.   EXT SPI_TypeDef             *SPI2;
  857. #endif /*_SPI2 */
  858. #ifdef _SPI3
  859.   EXT SPI_TypeDef             *SPI3;
  860. #endif /*_SPI3 */
  861. #ifdef _USART2
  862.   EXT USART_TypeDef           *USART2;
  863. #endif /*_USART2 */
  864. #ifdef _USART3
  865.   EXT USART_TypeDef           *USART3;
  866. #endif /*_USART3 */
  867. #ifdef _UART4
  868.   EXT USART_TypeDef           *UART4;
  869. #endif /*_UART4 */
  870. #ifdef _UART5
  871.   EXT USART_TypeDef           *UART5;
  872. #endif /*_UART5 */
  873. #ifdef _I2C1
  874.   EXT I2C_TypeDef             *I2C1;
  875. #endif /*_I2C1 */
  876. #ifdef _I2C2
  877.   EXT I2C_TypeDef             *I2C2;
  878. #endif /*_I2C2 */
  879. #ifdef _CAN
  880.   EXT CAN_TypeDef             *CAN;
  881. #endif /*_CAN */
  882. #ifdef _BKP
  883.   EXT BKP_TypeDef             *BKP;
  884. #endif /*_BKP */
  885. #ifdef _PWR
  886.   EXT PWR_TypeDef             *PWR;
  887. #endif /*_PWR */
  888. #ifdef _DAC
  889.   EXT DAC_TypeDef             *DAC;
  890. #endif /*_DAC */
  891. #ifdef _AFIO
  892.   EXT AFIO_TypeDef            *AFIO;
  893. #endif /*_AFIO */
  894. #ifdef _EXTI
  895.   EXT EXTI_TypeDef            *EXTI;
  896. #endif /*_EXTI */
  897. #ifdef _GPIOA
  898.   EXT GPIO_TypeDef            *GPIOA;
  899. #endif /*_GPIOA */
  900. #ifdef _GPIOB
  901.   EXT GPIO_TypeDef            *GPIOB;
  902. #endif /*_GPIOB */
  903. #ifdef _GPIOC
  904.   EXT GPIO_TypeDef            *GPIOC;
  905. #endif /*_GPIOC */
  906. #ifdef _GPIOD
  907.   EXT GPIO_TypeDef            *GPIOD;
  908. #endif /*_GPIOD */
  909. #ifdef _GPIOE
  910.   EXT GPIO_TypeDef            *GPIOE;
  911. #endif /*_GPIOE */
  912. #ifdef _GPIOF
  913.   EXT GPIO_TypeDef            *GPIOF;
  914. #endif /*_GPIOF */
  915. #ifdef _GPIOG
  916.   EXT GPIO_TypeDef            *GPIOG;
  917. #endif /*_GPIOG */
  918. #ifdef _ADC1
  919.   EXT ADC_TypeDef             *ADC1;
  920. #endif /*_ADC1 */
  921. #ifdef _ADC2
  922.   EXT ADC_TypeDef             *ADC2;
  923. #endif /*_ADC2 */
  924. #ifdef _TIM1
  925.   EXT TIM_TypeDef             *TIM1;
  926. #endif /*_TIM1 */
  927. #ifdef _SPI1
  928.   EXT SPI_TypeDef             *SPI1;
  929. #endif /*_SPI1 */
  930. #ifdef _TIM8
  931.   EXT TIM_TypeDef             *TIM8;
  932. #endif /*_TIM8 */
  933. #ifdef _USART1
  934.   EXT USART_TypeDef           *USART1;
  935. #endif /*_USART1 */
  936. #ifdef _ADC3
  937.   EXT ADC_TypeDef             *ADC3;
  938. #endif /*_ADC3 */
  939. #ifdef _SDIO
  940.   EXT SDIO_TypeDef            *SDIO;
  941. #endif /*_SDIO */
  942. #ifdef _DMA
  943.   EXT DMA_TypeDef             *DMA1;
  944.   EXT DMA_TypeDef             *DMA2;
  945. #endif /*_DMA */
  946. #ifdef _DMA1_Channel1
  947.   EXT DMA_Channel_TypeDef     *DMA1_Channel1;
  948. #endif /*_DMA1_Channel1 */
  949. #ifdef _DMA1_Channel2
  950.   EXT DMA_Channel_TypeDef     *DMA1_Channel2;
  951. #endif /*_DMA1_Channel2 */
  952. #ifdef _DMA1_Channel3
  953.   EXT DMA_Channel_TypeDef     *DMA1_Channel3;
  954. #endif /*_DMA1_Channel3 */
  955. #ifdef _DMA1_Channel4
  956.   EXT DMA_Channel_TypeDef     *DMA1_Channel4;
  957. #endif /*_DMA1_Channel4 */
  958. #ifdef _DMA1_Channel5
  959.   EXT DMA_Channel_TypeDef     *DMA1_Channel5;
  960. #endif /*_DMA1_Channel5 */
  961. #ifdef _DMA1_Channel6
  962.   EXT DMA_Channel_TypeDef     *DMA1_Channel6;
  963. #endif /*_DMA1_Channel6 */
  964. #ifdef _DMA1_Channel7
  965.   EXT DMA_Channel_TypeDef     *DMA1_Channel7;
  966. #endif /*_DMA1_Channel7 */
  967. #ifdef _DMA2_Channel1
  968.   EXT DMA_Channel_TypeDef     *DMA2_Channel1;
  969. #endif /*_DMA2_Channel1 */
  970. #ifdef _DMA2_Channel2
  971.   EXT DMA_Channel_TypeDef     *DMA2_Channel2;
  972. #endif /*_DMA2_Channel2 */
  973. #ifdef _DMA2_Channel3
  974.   EXT DMA_Channel_TypeDef     *DMA2_Channel3;
  975. #endif /*_DMA2_Channel3 */
  976. #ifdef _DMA2_Channel4
  977.   EXT DMA_Channel_TypeDef     *DMA2_Channel4;
  978. #endif /*_DMA2_Channel4 */
  979. #ifdef _DMA2_Channel5
  980.   EXT DMA_Channel_TypeDef     *DMA2_Channel5;
  981. #endif /*_DMA2_Channel5 */
  982. #ifdef _RCC
  983.   EXT RCC_TypeDef             *RCC;
  984. #endif /*_RCC */
  985. #ifdef _CRC
  986.   EXT CRC_TypeDef             *CRC;
  987. #endif /*_CRC */
  988. #ifdef _FLASH
  989.   EXT FLASH_TypeDef            *FLASH;
  990.   EXT OB_TypeDef               *OB;  
  991. #endif /*_FLASH */
  992. #ifdef _FSMC
  993.   EXT FSMC_Bank1_TypeDef      *FSMC_Bank1;
  994.   EXT FSMC_Bank1E_TypeDef     *FSMC_Bank1E;
  995.   EXT FSMC_Bank2_TypeDef      *FSMC_Bank2;
  996.   EXT FSMC_Bank3_TypeDef      *FSMC_Bank3;
  997.   EXT FSMC_Bank4_TypeDef      *FSMC_Bank4;
  998. #endif /*_FSMC */
  999. #ifdef _DBGMCU
  1000.   EXT DBGMCU_TypeDef          *DBGMCU;
  1001. #endif /*_DBGMCU */
  1002. #ifdef _SysTick
  1003.   EXT SysTick_TypeDef         *SysTick;
  1004. #endif /*_SysTick */
  1005. #ifdef _NVIC
  1006.   EXT NVIC_TypeDef            *NVIC;
  1007.   EXT SCB_TypeDef             *SCB;
  1008. #endif /*_NVIC */
  1009. #endif  /* DEBUG */
  1010. /* Exported constants --------------------------------------------------------*/
  1011. /* Exported macro ------------------------------------------------------------*/
  1012. /* Exported functions ------------------------------------------------------- */
  1013. #endif /* __STM32F10x_MAP_H */
  1014. /******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/