71x_map.h
上传用户:yyyd609
上传日期:2022-07-18
资源大小:183k
文件大小:11k
源码类别:

微处理器开发

开发平台:

C/C++

  1. /******************** (C) COPYRIGHT 2003 STMicroelectronics ********************
  2. * File Name          : 71x_map.h
  3. * Author             : MCD Application Team
  4. * Date First Issued  : 05/16/2003
  5. * Description        : Peripherals memory mapping and registers structures
  6. ********************************************************************************
  7. * History:
  8. *  01/01/2004 : V1.2
  9. *  14/07/2004 : V1.3
  10. *******************************************************************************/
  11. #ifndef __71x_map_H
  12. #define __71x_map_H
  13. #ifndef EXT
  14.   #define EXT extern
  15. #endif
  16. #include "71x_conf.h"
  17. #include "71x_type.h"
  18. /* IP registers structures */
  19. typedef volatile struct
  20. {
  21.   vu16 DATA0;
  22.   vu16 EMPTY1[3];
  23.   vu16 DATA1;
  24.   vu16 EMPTY2[3];
  25.   vu16 DATA2;
  26.   vu16 EMPTY3[3];
  27.   vu16 DATA3;
  28.   vu16 EMPTY4[3];
  29.   vu16 CSR;
  30.   vu16 EMPTY5[7];
  31.   vu16 CPR;
  32. } ADC12_TypeDef;
  33. typedef volatile struct
  34. {
  35.   vu32 EMPTY[3];
  36.   vu32 CKDIS;
  37.   vu32 SWRES;
  38. } APB_TypeDef;
  39. typedef volatile struct
  40. {
  41.   vu16 RXR;
  42.   vu16 EMPTY1;
  43.   vu16 TXR;
  44.   vu16 EMPTY2;
  45.   vu16 CSR1;
  46.   vu16 EMPTY3;
  47.   vu16 CSR2;
  48.   vu16 EMPTY4;
  49.   vu16 CLK;
  50. } BSPI_TypeDef;
  51. typedef volatile struct
  52. {
  53.   vu16 CRR;
  54.   vu16 EMPTY1;
  55.   vu16 CMR;
  56.   vu16 EMPTY2;
  57.   vu16 M1R;
  58.   vu16 EMPTY3;
  59.   vu16 M2R;
  60.   vu16 EMPTY4;
  61.   vu16 A1R;
  62.   vu16 EMPTY5;
  63.   vu16 A2R;
  64.   vu16 EMPTY6;
  65.   vu16 MCR;
  66.   vu16 EMPTY7;
  67.   vu16 DA1R;
  68.   vu16 EMPTY8;
  69.   vu16 DA2R;
  70.   vu16 EMPTY9;
  71.   vu16 DB1R;
  72.   vu16 EMPTY10;
  73.   vu16 DB2R;
  74.   vu16 EMPTY11[27];
  75. } CAN_MsgObj_TypeDef;
  76. typedef volatile struct
  77. {
  78.   vu16 CR;
  79.   vu16 EMPTY1;
  80.   vu16 SR;
  81.   vu16 EMPTY2;
  82.   vu16 ERR;
  83.   vu16 EMPTY3;
  84.   vu16 BTR;
  85.   vu16 EMPTY4;
  86.   vu16 IDR;
  87.   vu16 EMPTY5;
  88.   vu16 TESTR;
  89.   vu16 EMPTY6;
  90.   vu16 BRPR;
  91.   vu16 EMPTY7[3];
  92.   CAN_MsgObj_TypeDef sMsgObj[2];
  93.   vu16 EMPTY8[16];
  94.   vu16 TR1R;
  95.   vu16 EMPTY9;
  96.   vu16 TR2R;
  97.   vu16 EMPTY10[13];
  98.   vu16 ND1R;
  99.   vu16 EMPTY11;
  100.   vu16 ND2R;
  101.   vu16 EMPTY12[13];
  102.   vu16 IP1R;
  103.   vu16 EMPTY13;
  104.   vu16 IP2R;
  105.   vu16 EMPTY14[13];
  106.   vu16 MV1R;
  107.   vu16 EMPTY15;
  108.   vu16 MV2R;
  109.   vu16 EMPTY16;
  110. } CAN_TypeDef;
  111. typedef volatile struct
  112. {
  113.   vu32 ICR;
  114.   vu32 CICR;
  115.   vu32 CIPR;
  116.   vu32 EMPTY1[3];
  117.   vu32 IVR;
  118.   vu32 FIR;
  119.   vu32 IER;
  120.   vu32 EMPTY2[7];
  121.   vu32 IPR;
  122.   vu32 EMPTY3[7];
  123.   vu32 SIR[32];
  124. } EIC_TypeDef;
  125. typedef volatile struct
  126. {
  127.   vu16 BCON0;
  128.   vu16 EMPTY1;
  129.   vu16 BCON1;
  130.   vu16 EMPTY2;
  131.   vu16 BCON2;
  132.   vu16 EMPTY3;
  133.   vu16 BCON3;
  134.   vu16 EMPTY4;
  135. } EMI_TypeDef;
  136. typedef volatile struct
  137. {
  138.   vu32 CR0;
  139.   vu32 CR1;
  140.   vu32 DR0;
  141.   vu32 DR1;
  142.   vu32 AR;
  143.   vu32 ER;
  144. } FLASHR_TypeDef;
  145. typedef volatile struct
  146. {
  147.   vu32 NVWPAR;
  148.   vu32 EMPTY;
  149.   vu32 NVAPR0;
  150.   vu32 NVAPR1;
  151. } FLASHPR_TypeDef;
  152. typedef volatile struct
  153. {
  154.   vu16 PC0;
  155.   vu16 EMPTY1;
  156.   vu16 PC1;
  157.   vu16 EMPTY2;
  158.   vu16 PC2;
  159.   vu16 EMPTY3;
  160.   vu16 PD;
  161.   vu16 EMPTY4;
  162. } GPIO_TypeDef;
  163. typedef volatile struct
  164. {
  165.   vu8  CR;
  166.   vu8  EMPTY1[3];
  167.   vu8  SR1;
  168.   vu8  EMPTY2[3];
  169.   vu8  SR2;
  170.   vu8  EMPTY3[3];
  171.   vu8  CCR;
  172.   vu8  EMPTY4[3];
  173.   vu8  OAR1;
  174.   vu8  EMPTY5[3];
  175.   vu8  OAR2;
  176.   vu8  EMPTY6[3];
  177.   vu8  DR;
  178.   vu8  EMPTY7[3];
  179.   vu8  ECCR;
  180. } I2C_TypeDef;
  181. typedef volatile struct
  182. {
  183.   vu32 CCR;
  184.   vu32 EMPTY1;
  185.   vu32 CFR;
  186.   vu32 EMPTY2[3];
  187.   vu32 PLL1CR;
  188.   vu32 PER;
  189.   vu32 SMR;
  190. } RCCU_TypeDef;
  191. typedef volatile struct
  192. {
  193.   vu16 MDIVR;
  194.   vu16 EMPTY1;
  195.   vu16 PDIVR;
  196.   vu16 EMPTY2;
  197.   vu16 RSTR;
  198.   vu16 EMPTY3;
  199.   vu16 PLL2CR;
  200.   vu16 EMPTY4;
  201.   vu16 BOOTCR;
  202.   vu16 EMPTY5;
  203.   vu16 PWRCR;
  204. } PCU_TypeDef;
  205. typedef volatile struct
  206. {
  207.   vu16 CRH;
  208.   vu16 EMPTY1;
  209.   vu16 CRL;
  210.   vu16 EMPTY2;
  211.   vu16 PRLH;
  212.   vu16 EMPTY3;
  213.   vu16 PRLL;
  214.   vu16 EMPTY4;
  215.   vu16 DIVH;
  216.   vu16 EMPTY5;
  217.   vu16 DIVL;
  218.   vu16 EMPTY6;
  219.   vu16 CNTH;
  220.   vu16 EMPTY7;
  221.   vu16 CNTL;
  222.   vu16 EMPTY8;
  223.   vu16 ALRH;
  224.   vu16 EMPTY9;
  225.   vu16 ALRL;
  226. } RTC_TypeDef;
  227. typedef volatile struct
  228. {
  229.   vu16 ICAR;
  230.   vu16 EMPTY1;
  231.   vu16 ICBR;
  232.   vu16 EMPTY2;
  233.   vu16 OCAR;
  234.   vu16 EMPTY3;
  235.   vu16 OCBR;
  236.   vu16 EMPTY4;
  237.   vu16 CNTR;
  238.   vu16 EMPTY5;
  239.   vu16 CR1;
  240.   vu16 EMPTY6;
  241.   vu16 CR2;
  242.   vu16 EMPTY7;
  243.   vu16 SR;
  244. } TIM_TypeDef;
  245. typedef volatile struct
  246. {
  247.   vu16 BR;
  248.   vu16 EMPTY1;
  249.   vu16 TxBUFR;
  250.   vu16 EMPTY2;
  251.   vu16 RxBUFR;
  252.   vu16 EMPTY3;
  253.   vu16 CR;
  254.   vu16 EMPTY4;
  255.   vu16 IER;
  256.   vu16 EMPTY5;
  257.   vu16 SR;
  258.   vu16 EMPTY6;
  259.   vu16 GTR;
  260.   vu16 EMPTY7;
  261.   vu16 TOR;
  262.   vu16 EMPTY8;
  263.   vu16 TxRSTR;
  264.   vu16 EMPTY9;
  265.   vu16 RxRSTR;
  266. } UART_TypeDef;
  267. typedef volatile struct
  268. {
  269.   vu32 EP0R;
  270.   vu32 EP1R;
  271.   vu32 EP2R;
  272.   vu32 EP3R;
  273.   vu32 EP4R;
  274.   vu32 EP5R;
  275.   vu32 EP6R;
  276.   vu32 EP7R;
  277.   vu32 EP8R;
  278.   vu32 EP9R;
  279.   vu32 EP10R;
  280.   vu32 EP11R;
  281.   vu32 EP12R;
  282.   vu32 EP13R;
  283.   vu32 EP14R;
  284.   vu32 EP15R;
  285.   vu32 CNTR;
  286.   vu32 ISTR;
  287.   vu32 FNR;
  288.   vu32 DADDR;
  289.   vu32 BTABLE;
  290. } USB_TypeDef;
  291. typedef volatile struct
  292. {
  293.   vu16 CR;
  294.   vu16 EMPTY1;
  295.   vu16 PR;
  296.   vu16 EMPTY2;
  297.   vu16 VR;
  298.   vu16 EMPTY3;
  299.   vu16 CNT;
  300.   vu16 EMPTY4;
  301.   vu16 SR;
  302.   vu16 EMPTY5;
  303.   vu16 MR;
  304.   vu16 EMPTY6;
  305.   vu16 KR;
  306. } WDG_TypeDef;
  307. typedef volatile struct
  308. {
  309.   vu8  SR;
  310.   vu8  EMPTY1[7];
  311.   vu8  CTRL;
  312.   vu8  EMPTY2[3];
  313.   vu8  MRH;
  314.   vu8  EMPTY3[3];
  315.   vu8  MRL;
  316.   vu8  EMPTY4[3];
  317.   vu8  TRH;
  318.   vu8  EMPTY5[3];
  319.   vu8  TRL;
  320.   vu8  EMPTY6[3];
  321.   vu8  PRH;
  322.   vu8  EMPTY7[3];
  323.   vu8  PRL;
  324. } XTI_TypeDef;
  325. /* IRQ vectors */
  326. typedef volatile struct
  327. {
  328.   vu32 T0TIMI_IRQHandler;
  329.   vu32 FLASH_IRQHandler;
  330.   vu32 RCCU_IRQHandler;
  331.   vu32 RTC_IRQHandler;
  332.   vu32 WDG_IRQHandler;
  333.   vu32 XTI_IRQHandler;
  334.   vu32 USBHP_IRQHandler;
  335.   vu32 I2C0ITERR_IRQHandler;
  336.   vu32 I2C1ITERR_IRQHandler;
  337.   vu32 UART0_IRQHandler;
  338.   vu32 UART1_IRQHandler;
  339.   vu32 UART2_IRQHandler;
  340.   vu32 UART3_IRQHandler;
  341.   vu32 BSPI0_IRQHandler;
  342.   vu32 BSPI1_IRQHandler;
  343.   vu32 I2C0_IRQHandler;
  344.   vu32 I2C1_IRQHandler;
  345.   vu32 CAN_IRQHandler;
  346.   vu32 ADC12_IRQHandler;
  347.   vu32 T1TIMI_IRQHandler;
  348.   vu32 T2TIMI_IRQHandler;
  349.   vu32 T3TIMI_IRQHandler;
  350.   vu32 EMPTY1[3];
  351.   vu32 HDLC_IRQHandler;
  352.   vu32 USBLP_IRQHandler;
  353.   vu32 EMPTY2[2];
  354.   vu32 T0TOI_IRQHandler;
  355.   vu32 T0OC1_IRQHandler;
  356.   vu32 T0OC2_IRQHandler;
  357. } IRQVectors_TypeDef;
  358. /*===================================================================*/
  359. /* Memory mapping */
  360. #define RAM_BASE        0x20000000
  361. #define FLASHR_BASE     0x40100000
  362. #define FLASHPR_BASE    0x4010DFB0
  363. #define EXTMEM_BASE     0x60000000
  364. #define RCCU_BASE       0xA0000000
  365. #define PCU_BASE        0xA0000040
  366. #define APB1_BASE       0xC0000000
  367. #define APB2_BASE       0xE0000000
  368. #define EIC_BASE        0xE000F800
  369. #define I2C0_BASE       (APB1_BASE + 0x1000)
  370. #define I2C1_BASE       (APB1_BASE + 0x2000)
  371. #define UART0_BASE      (APB1_BASE + 0x4000)
  372. #define UART1_BASE      (APB1_BASE + 0x5000)
  373. #define UART2_BASE      (APB1_BASE + 0x6000)
  374. #define UART3_BASE      (APB1_BASE + 0x7000)
  375. #define CAN_BASE        (APB1_BASE + 0x9000)
  376. #define BSPI0_BASE      (APB1_BASE + 0xA000)
  377. #define BSPI1_BASE      (APB1_BASE + 0xB000)
  378. #define USB_BASE        (APB1_BASE + 0x8800)
  379. #define XTI_BASE        (APB2_BASE + 0x101C)
  380. #define GPIO0_BASE      (APB2_BASE + 0x3000)
  381. #define GPIO1_BASE      (APB2_BASE + 0x4000)
  382. #define GPIO2_BASE      (APB2_BASE + 0x5000)
  383. #define ADC12_BASE      (APB2_BASE + 0x7000)
  384. #define TIM0_BASE       (APB2_BASE + 0x9000)
  385. #define TIM1_BASE       (APB2_BASE + 0xA000)
  386. #define TIM2_BASE       (APB2_BASE + 0xB000)
  387. #define TIM3_BASE       (APB2_BASE + 0xC000)
  388. #define RTC_BASE        (APB2_BASE + 0xD000)
  389. #define WDG_BASE        (APB2_BASE + 0xE000)
  390. #define EMI_BASE        (EXTMEM_BASE + 0x0C000000)
  391. /*===================================================================*/
  392. /* IP data access */
  393. #ifndef DEBUG
  394.   #define ADC12 ((ADC12_TypeDef *)ADC12_BASE)
  395.   #define APB1  ((APB_TypeDef *)APB1_BASE)
  396.   #define APB2  ((APB_TypeDef *)APB2_BASE)
  397.   #define BSPI0 ((BSPI_TypeDef *)BSPI0_BASE)
  398.   #define BSPI1 ((BSPI_TypeDef *)BSPI1_BASE)
  399.   #define CAN   ((CAN_TypeDef *)CAN_BASE)
  400.   #define EIC   ((EIC_TypeDef *)EIC_BASE)
  401.   #define EMI   ((EMI_TypeDef *)EMI_BASE)
  402.   #define FLASHR  ((FLASHR_TypeDef *)FLASHR_BASE)
  403.   #define FLASHPR ((FLASHPR_TypeDef *)FLASHPR_BASE)
  404.   #define GPIO0 ((GPIO_TypeDef *)GPIO0_BASE)
  405.   #define GPIO1 ((GPIO_TypeDef *)GPIO1_BASE)
  406.   #define GPIO2 ((GPIO_TypeDef *)GPIO2_BASE)
  407.   #define I2C0  ((I2C_TypeDef *)I2C0_BASE)
  408.   #define I2C1  ((I2C_TypeDef *)I2C1_BASE)
  409.   #define PCU   ((PCU_TypeDef *)PCU_BASE)
  410.   #define RCCU  ((RCCU_TypeDef *)RCCU_BASE)
  411.   #define RTC   ((RTC_TypeDef *)RTC_BASE)
  412.   #define TIM0  ((TIM_TypeDef *)TIM0_BASE)
  413.   #define TIM1  ((TIM_TypeDef *)TIM1_BASE)
  414.   #define TIM2  ((TIM_TypeDef *)TIM2_BASE)
  415.   #define TIM3  ((TIM_TypeDef *)TIM3_BASE)
  416.   #define UART0 ((UART_TypeDef *)UART0_BASE)
  417.   #define UART1 ((UART_TypeDef *)UART1_BASE)
  418.   #define UART2 ((UART_TypeDef *)UART2_BASE)
  419.   #define UART3 ((UART_TypeDef *)UART3_BASE)
  420.   #define USB   ((USB_TypeDef *)USB_BASE)
  421.   #define WDG   ((WDG_TypeDef *)WDG_BASE)
  422.   #define XTI   ((XTI_TypeDef *)XTI_BASE)
  423.   #define IRQVectors ((IRQVectors_TypeDef *)&T0TIMI_Addr)
  424. #else   /* DEBUG */
  425.   #ifdef _ADC12
  426.   EXT ADC12_TypeDef *ADC12;
  427.   #endif
  428.   #ifdef _APB
  429.   #ifdef _APB1
  430.   EXT APB_TypeDef *APB1;
  431.   #endif
  432.   #ifdef _APB2
  433.   EXT APB_TypeDef *APB2;
  434.   #endif
  435.   #endif
  436.   #ifdef _BSPI
  437.   #ifdef _BSPI0
  438.   EXT BSPI_TypeDef *BSPI0;
  439.   #endif
  440.   #ifdef _BSPI1
  441.   EXT BSPI_TypeDef *BSPI1;
  442.   #endif
  443.   #endif
  444.   #ifdef _CAN
  445.   EXT CAN_TypeDef *CAN;
  446.   #endif
  447.   #ifdef _EIC
  448.   EXT EIC_TypeDef *EIC;
  449.   #endif
  450.   #ifdef _EMI
  451.   EXT EMI_TypeDef *EMI;
  452.   #endif
  453.   #ifdef _FLASH
  454.   EXT FLASHR_TypeDef *FLASHR;
  455.   EXT FLASHPR_TypeDef *FLASHPR;
  456.   #endif
  457.   #ifdef _GPIO
  458.   #ifdef _GPIO0
  459.   EXT GPIO_TypeDef *GPIO0;
  460.   #endif
  461.   #ifdef _GPIO1
  462.   EXT GPIO_TypeDef *GPIO1;
  463.   #endif
  464.   #ifdef _GPIO2
  465.   EXT GPIO_TypeDef *GPIO2;
  466.   #endif
  467.   #endif
  468.   #ifdef _I2C
  469.   #ifdef _I2C0
  470.   EXT I2C_TypeDef *I2C0;
  471.   #endif
  472.   #ifdef _I2C1
  473.   EXT I2C_TypeDef *I2C1;
  474.   #endif
  475.   #endif
  476.   #ifdef _PCU
  477.   EXT PCU_TypeDef *PCU;
  478.   #endif
  479.   #ifdef _RCCU
  480.   EXT RCCU_TypeDef *RCCU;
  481.   #endif
  482.   #ifdef _RTC
  483.   EXT RTC_TypeDef *RTC;
  484.   #endif
  485.   #ifdef _TIM
  486.   #ifdef _TIM0
  487.   EXT TIM_TypeDef *TIM0;
  488.   #endif
  489.   #ifdef _TIM1
  490.   EXT TIM_TypeDef *TIM1;
  491.   #endif
  492.   #ifdef _TIM2
  493.   EXT TIM_TypeDef *TIM2;
  494.   #endif
  495.   #ifdef _TIM3
  496.   EXT TIM_TypeDef *TIM3;
  497.   #endif
  498.   #endif
  499.   #ifdef _UART
  500.   #ifdef _UART0
  501.   EXT UART_TypeDef *UART0;
  502.   #endif
  503.   #ifdef _UART1
  504.   EXT UART_TypeDef *UART1;
  505.   #endif
  506.   #ifdef _UART2
  507.   EXT UART_TypeDef *UART2;
  508.   #endif
  509.   #ifdef _UART3
  510.   EXT UART_TypeDef *UART3;
  511.   #endif
  512.   #endif
  513.   #ifdef _USB
  514.   EXT USB_TypeDef *USB;
  515.   #endif
  516.   #ifdef _WDG
  517.   EXT WDG_TypeDef *WDG;
  518.   #endif
  519.   #ifdef _XTI
  520.   EXT XTI_TypeDef *XTI;
  521.   #endif
  522.   #ifdef _IRQVectors
  523.   EXT IRQVectors_TypeDef *IRQVectors;
  524.   #endif
  525. #endif  /* DEBUG */
  526. #endif  /* __71x_map_H */
  527. /******************* (C) COPYRIGHT 2003 STMicroelectronics *****END OF FILE****/