/******************** (C) COPYRIGHT 2006 STMicroelectronics ******************** * File Name : 91x_map.h * Author : MCD Application Team * Date First Issued : 05/18/2006 : Version 1.0 * Description : Peripherals registers definition and memory mapping. ******************************************************************************** * History: * 05/24/2006 : Version 1.1 * 05/18/2006 : Version 1.0 ******************************************************************************** * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH * CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS * A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT * OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT * OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION * CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. *******************************************************************************/ /* Define to prevent recursive inclusion ------------------------------------ */ #ifndef __91x_MAP_H #define __91x_MAP_H #ifndef EXT #define EXT extern #endif /* EXT */ /* Includes ------------------------------------------------------------------*/ #include "91x_conf.h" #include "91x_type.h" /******************************************************************************/ /* IP registers structures */ /******************************************************************************/ /*------------------------------------ FMI -----------------------------------*/ typedef struct { vu32 BBSR; /* Boot Bank Size Register */ vu32 NBBSR; /* Non-Boot Bank Size Register */ vu32 EMPTY1; vu32 BBADR; /* Boot Bank Base Address Register */ vu32 NBBADR; /* Non-Boot Bank Base Address Register */ vu32 EMPTY2; vu32 CR; /* Control Register */ vu32 SR; /* Status Register */ vu32 BCE5ADDR; /* BC Fifth Entry Target Address Register */ } FMI_TypeDef; /*---------------------- Analog to Digital Convertor ------------------------*/ typedef struct { vu16 CR; /* Control Register */ vu16 EMPTY1; vu16 CCR; /* Channel Configuration Register */ vu16 EMPTY2; vu16 HTR; /* Higher Threshold Register */ vu16 EMPTY3; vu16 LTR; /* Lower Threshold Register */ vu16 EMPTY4; vu16 CRR; /* Compare Result Register */ vu16 EMPTY5; vu16 DR0; /* Data Register for Channel 0 */ vu16 EMPTY6; vu16 DR1; /* Data Register for Channel 1 */ vu16 EMPTY7; vu16 DR2; /* Data Register for Channel 2 */ vu16 EMPTY8; vu16 DR3; /* Data Register for Channel 3 */ vu16 EMPTY9; vu16 DR4; /* Data Register for Channel 4 */ vu16 EMPTY10; vu16 DR5; /* Data Register for Channel 5 */ vu16 EMPTY11; vu16 DR6; /* Data Register for Channel 6 */ vu16 EMPTY12; vu16 DR7; /* Data Register for Channel 7 */ vu16 EMPTY13; vu16 PRS; /* Prescaler Value Register */ vu16 EMPTY14; } ADC_TypeDef; /*--------------------- AHB APB BRIDGE registers strcture --------------------*/ typedef struct { vu32 BSR; /* Bridge Status Register */ vu32 BCR; /* Bridge Configuration Register */ vu32 PAER; /* Peripheral Address Error register */ } AHBAPB_TypeDef; /*--------------- Controller Area Network Interface Register -----------------*/ typedef struct { vu16 CRR; /* IFn Command request Register */ vu16 EMPTY1; vu16 CMR; /* IFn Command Mask Register */ vu16 EMPTY2; vu16 M1R; /* IFn Message Mask 1 Register */ vu16 EMPTY3; vu16 M2R; /* IFn Message Mask 2 Register */ vu16 EMPTY4; vu16 A1R; /* IFn Message Arbitration 1 Register */ vu16 EMPTY5; vu16 A2R; /* IFn Message Arbitration 2 Register */ vu16 EMPTY6; vu16 MCR; /* IFn Message Control Register */ vu16 EMPTY7; vu16 DA1R; /* IFn DATA A 1 Register */ vu16 EMPTY8; vu16 DA2R; /* IFn DATA A 2 Register */ vu16 EMPTY9; vu16 DB1R; /* IFn DATA B 1 Register */ vu16 EMPTY10; vu16 DB2R; /* IFn DATA B 2 Register */ vu16 EMPTY11[27]; } CAN_MsgObj_TypeDef; typedef struct { vu16 CR; /* Control Register */ vu16 EMPTY1; vu16 SR; /* Status Register */ vu16 EMPTY2; vu16 ERR; /* Error counter Register */ vu16 EMPTY3; vu16 BTR; /* Bit Timing Register */ vu16 EMPTY4; vu16 IDR; /* Interrupt Identifier Register */ vu16 EMPTY5; vu16 TESTR; /* Test Register */ vu16 EMPTY6; vu16 BRPR; /* BRP Extension Register */ vu16 EMPTY7[3]; CAN_MsgObj_TypeDef sMsgObj[2]; vu16 EMPTY8[16]; vu16 TXR1R; /* Transmission request 1 Register */ vu16 EMPTY9; vu16 TXR2R; /* Transmission Request 2 Register */ vu16 EMPTY10[13]; vu16 ND1R; /* New Data 1 Register */ vu16 EMPTY11; vu16 ND2R; /* New Data 2 Register */ vu16 EMPTY12[13]; vu16 IP1R; /* Interrupt Pending 1 Register */ vu16 EMPTY13; vu16 IP2R; /* Interrupt Pending 2 Register */ vu16 EMPTY14[13]; vu16 MV1R; /* Message Valid 1 Register */ vu16 EMPTY15; vu16 MV2R; /* Message VAlid 2 Register */ vu16 EMPTY16; } CAN_TypeDef; /*----------------------- System Control Unit---------------------------------*/ typedef struct { vu32 CLKCNTR; /* Clock Control Register */ vu32 PLLCONF; /* PLL Configuration Register */ vu32 SYSSTATUS; /* System Status Register */ vu32 PWRMNG; /* Power Management Register */ vu32 ITCMSK; /* Interrupt Mask Register */ vu32 PCGRO; /* Peripheral Clock Gating Register 0 */ vu32 PCGR1; /* Peripheral Clock Gating Register 1 */ vu32 PRR0; /* Peripheral Reset Register 0 */ vu32 PRR1; /* Peripheral Reset Register 1 */ vu32 MGR0; /* Idle Mode Mask Gating Register 0 */ vu32 MGR1; /* Idle Mode Mask Gating Register 1 */ vu32 PECGR0; /* Peripheral Emulation Clock Gating Register 0 */ vu32 PECGR1; /* Peripheral Emulation Clock Gating Register 1 */ vu32 SCR0; /* System Configuration Register 0 */ vu32 SCR1; /* System Configuration Register 1 */ vu32 SCR2; /* System Configuration Register 2 */ u32 EMPTY1; vu32 GPIOOUT[8]; /* GPIO Output Registers */ vu32 GPIOIN[8]; /* GPIO Input Registers */ vu32 GPIOTYPE[10];/* GPIO Type Registers */ vu32 GPIOEMI; /* GPIO EMI Selector Register */ vu32 WKUPSEL; /* Wake-Up Selection Register */ u32 EMPTY2[2]; vu32 GPIOANA; /* GPIO Analag mode Register */ } SCU_TypeDef; /*------------------------- DMA Channelx Registers ---------------------------*/ typedef struct { vu32 SRC; /* Channelx Source Address Register */ vu32 DES; /* Channelx Destination Address Register */ vu32 LLI; /* Channelx Lincked List Item Register */ vu32 CC; /* Channelx Contol Register */ vu32 CCNF; /* Channelx Configuration Register */ } DMA_Channel_TypeDef; /* x can be ,0,1,2,3,4,5,6 or 7. There are eight Channels AHB BUS Master */ /*----------------------------- DMA Controller -------------------------------*/ typedef struct { vu32 ISR; /* Interrupt Status Register */ vu32 TCISR; /* Terminal Count Interrupt Status Register */ vu32 TCICR; /* Terminal CountInterrupt Clear Register */ vu32 EISR; /* Error Interrupt Status Register */ vu32 EICR; /* Error Interrupt Clear Register */ vu32 TCRISR; /* Terminal Count Raw Interrupt Status Register */ vu32 ERISR; /* Raw Error Interrupt Status Register */ vu32 ENCSR; /* Enabled Channel Status Register */ vu32 SBRR; /* Software Burst Request Register */ vu32 SSRR; /* Software Single Request Register */ vu32 SLBRR; /* Software Last Burst Request Register */ vu32 SLSRR; /* Software Last Single Request Register */ vu32 CNFR; /* Configuration Register */ vu32 SYNR; /* Syncronization Register */ } DMA_TypeDef; /*--------------------------------- TIM Timer --------------------------------*/ typedef struct { vu16 IC1R; /* Input Capture 1 Register */ vu16 EMPTY1; vu16 IC2R; /* Input Capture 2 Register */ vu16 EMPTY2; vu16 OC1R; /* Output Compare 1 Register */ vu16 EMPTY3; vu16 OC2R; /* Output Compare 2 Register */ vu16 EMPTY4; vu16 CNTR; /* Counter Register */ vu16 EMPTY5; vu16 CR1; /* Control Register 1 */ vu16 EMPTY6; vu16 CR2; /* Control Register 2 */ vu16 EMPTY7; vu16 SR; /* Status Register */ vu16 EMPTY8; } TIM_TypeDef; /*---------------------------- EMI Bankx Registers ---------------------------*/ typedef struct { vu32 ICR; /* Bankx Idle Cycle Control Register */ vu32 RCR; /* Bankx Read Wait State Control Register */ vu32 WCR; /* Bankx Write Wait State Control Register */ vu32 OECR; /* Bankx Output Enable Assertion Delay Control Register */ vu32 WECR; /* Bankx Write Enable Assertion Delay Control Register */ vu32 BCR; /* Bankx Control Register */ } EMI_Bank_TypeDef; /*---------------------------- Ethernet Controller ---------------------------*/ /* MAC Registers */ typedef struct { vu32 MCR; /* ENET Control Register */ vu32 MAH; /* ENET Address High Register */ vu32 MAL; /* ENET Address Low Register */ vu32 MCHA; /* Multicast Address High Register */ vu32 MCLA; /* Multicast Address Low Register */ vu32 MIIA; /* MII Address Register */ vu32 MIID; /* MII Data Register */ vu32 MCF; /* ENET Control Frame Register */ vu32 VL1; /* VLAN1 Register */ vu32 VL2; /* VLAN2 register */ vu32 MTS; /* ENET Transmission Status Register */ vu32 MRS; /* ENET Reception Status Register */ } ENET_MAC_TypeDef; /* DMA Registers */ typedef struct { vu32 SCR; /* DMA Status and Control Register */ vu32 IER; /* DMA Interrupt Sources Enable Register */ vu32 ISR; /* DMA Interrupt Status Register */ vu32 CCR; /* Clock Control Relation : HCLK, PCLK and ENET_CLK phase relations */ vu32 RXSTR; /* Rx DMA start Register */ vu32 RXCR; /* Rx DMA Control Register */ vu32 RXSAR; /* Rx DMA Base Address Register */ vu32 RXNDAR; /* Rx DMA Next Descriptor Address Register */ vu32 RXCAR; /* Rx DMA Current Address Register */ vu32 RXCTCR; /* Rx DMA Current Transfer Count Register */ vu32 RXTOR; /* Rx DMA FIFO Time Out Register */ vu32 RXSR; /* Rx DMA FIFO Status Register */ vu32 TXSTR; /* Tx DMA start Register */ vu32 TXCR; /* Tx DMA Control Register */ vu32 TXSAR; /* Tx DMA Base Address Register */ vu32 TXNDAR; /* Tx DMA Next Descriptor Address Register */ vu32 TXCAR; /* Tx DMA Current Address Register */ vu32 TXTCR; /* Tx DMA Current Transfer Count Register */ vu32 TXTOR; /* Tx DMA FIFO Time Out Register */ vu32 TXSR; /* Tx DMA FIFO Status Register */ } ENET_DMA_TypeDef; /*------------------------------------- GPIO ---------------------------------*/ typedef struct { vu8 DR[1021]; /* Data Register */ vu32 DDR; /* Data Direction Register */ } GPIO_TypeDef; /*-------------------------------- I2C interface -----------------------------*/ typedef struct { vu8 CR; /* Control Register */ vu8 EMPTY1[3]; vu8 SR1; /* Status Register 1 */ vu8 EMPTY2[3]; vu8 SR2; /* Status Register 2 */ vu8 EMPTY3[3]; vu8 CCR; /* Clock Control Register */ vu8 EMPTY4[3]; vu8 OAR1; /* Own Address Register 1 */ vu8 EMPTY5[3]; vu8 OAR2; /* Own Address Register 2 */ vu8 EMPTY6[3]; vu8 DR; /* Data Register */ vu8 EMPTY7[3]; vu8 ECCR; /* Extended Clock Control Register */ vu8 EMPTY8[3]; } I2C_TypeDef; /*------------------------------------- VIC ----------------------------------*/ typedef struct { vu32 ISR; /* IRQ Status Register */ vu32 FSR; /* FIQ Status Register */ vu32 RINTSR; /* Raw Interrupt Status Register */ vu32 INTSR; /* Interrupt Select Register */ vu32 INTER; /* Interrupt Enable Register */ vu32 INTECR; /* Interrupt Enable Clear Register */ vu32 SWINTR; /* Software Interrupt Register */ vu32 SWINTCR; /* Software Interrupt clear Register */ vu32 PER; /* Protection Enable Register */ vu32 EMPTY1[3]; vu32 VAR; /* Vector Address Register */ vu32 DVAR; /* Default Vector Address Register */ vu32 EMPTY2[50]; vu32 VAiR[16]; /* Vector Address 0-15 Register */ vu32 EMPTY3[48]; vu32 VCiR[16]; /* Vector Control 0-15 Register */ } VIC_TypeDef; /*-------------------------------- Motor Control -----------------------------*/ typedef struct { vu16 TCPT; /* Tacho Capture Register */ vu16 EMPTY1; vu16 TCMP; /* Tacho Compare Register */ vu16 EMPTY2; vu16 IPR; /* Input Pending Register */ vu16 EMPTY3; vu16 TPRS; /* Tacho Prescaler Register */ vu16 EMPTY4; vu16 CPRS; /* PWM Counter Prescaler Register */ vu16 EMPTY5; vu16 REP; /* Repetition Counter Register */ vu16 EMPTY6; vu16 CMPW; /* Compare Phase W Preload Register */ vu16 EMPTY7; vu16 CMPV; /* Compare Phase V Preload Register */ vu16 EMPTY8; vu16 CMPU; /* Compare Phase U Preload Register */ vu16 EMPTY9; vu16 CMP0; /* Compare 0 Preload Register */ vu16 EMPTY10; vu16 PCR0; /* Peripheral Control Register 0 */ vu16 EMPTY11; vu16 PCR1; /* Peripheral Control Register 1 */ vu16 EMPTY12; vu16 PCR2; /* Peripheral Control Register 2 */ vu16 EMPTY13; vu16 PSR; /* Polarity Selection Register */ vu16 EMPTY14; vu16 OPR; /* Output Peripheral Register */ vu16 EMPTY15; vu16 IMR; /* Interrupt Mask Register */ vu16 EMPTY16; vu16 DTG; /* Dead Time Generator Register */ vu16 EMPTY17; vu16 ESC; /* Emergency Stop Clear Register */ vu16 EMPTY18; }MC_TypeDef; /*------------------------------------- RTC ----------------------------------*/ typedef struct { vu32 TR; /* Time Register */ vu32 DTR; /* Date Register */ vu32 ATR; /* Alarm time Register */ vu32 CR; /* Control Register */ vu32 SR; /* Status Register */ vu32 MILR; /* Millisec Register */ }RTC_TypeDef; /*------------------------------------- SSP ----------------------------------*/ typedef struct { vu16 CR0; /* Control Register 1 */ vu16 EMPTY1; vu16 CR1; /* Control Register 2 */ vu16 EMPTY2; vu16 DR; /* Data Register */ vu16 EMPTY3; vu16 SR; /* Status Register */ vu16 EMPTY4; vu16 PR; /* Clock Prescale Register */ vu16 EMPTY5; vu16 IMSCR; /* Interrupt Mask Set or Clear Register */ vu16 EMPTY6; vu16 RISR; /* Raw Interrupt Status Register */ vu16 EMPTY7; vu16 MISR; /* Masked Interrupt Status Register */ vu16 EMPTY8; vu16 ICR; /* Interrupt Clear Register */ vu16 EMPTY9; vu16 DMACR; /* DMA Control Register */ vu16 EMPTY10; }SSP_TypeDef; /*------------------------------------ UART ----------------------------------*/ typedef struct { vu16 DR; /* Data Register */ vu16 EMPTY1; vu16 RSECR; /* Receive Status Register (read)/Error Clear Register (write) */ vu16 EMPTY2[9]; vu16 FR; /* Flag Register */ vu16 EMPTY3[3]; vu16 ILPR; /* IrDA Low-Power counter Register */ vu16 EMPTY4; vu16 IBRD; /* Integer Baud Rate Divisor Register */ vu16 EMPTY5; vu16 FBRD; /* Fractional Baud Rate Divisor Register */ vu16 EMPTY6; vu16 LCR; /* Line Control Register, High byte */ vu16 EMPTY7; vu16 CR; /* Control Register */ vu16 EMPTY8; vu16 IFLS; /* Interrupt FIFO Level Select Register */ vu16 EMPTY9; vu16 IMSC; /* Interrupt Mask Set/Clear Register */ vu16 EMPTY10; vu16 RIS; /* Raw Interrupt Status Register */ vu16 EMPTY11; vu16 MIS; /* Masked Interrupt Status Register */ vu16 EMPTY12; vu16 ICR; /* Interrupt Clear Register */ vu16 EMPTY13; vu16 DMACR; /* DMA Control Register */ vu16 EMPTY14; }UART_TypeDef; /*------------------------------- Wake-up System -----------------------------*/ typedef struct { vu32 CTRL; /* Control Register */ vu32 MR; /* Mask Register */ vu32 TR; /* Trigger Register */ vu32 PR; /* Pending Register */ vu32 INTR; /* Software Interrupt Register */ } WIU_TypeDef; /*------------------------------- WatchDog Timer -----------------------------*/ typedef struct { vu16 CR; /* Control Register */ vu16 EMPTY1; vu16 PR; /* Presclar Register */ vu16 EMPTY2; vu16 VR; /* Pre-load Value Register */ vu16 EMPTY3; vu16 CNT; /* Counter Register */ vu16 EMPTY4; vu16 SR; /* Status Register */ vu16 EMPTY5; vu16 MR; /* Mask Register */ vu16 EMPTY6; vu16 KR; /* Key Register */ vu16 EMPTY7; } WDG_TypeDef; /******************************************************************************* * Memory Mapping of STR91x * *******************************************************************************/ #define AHB_APB_BRDG0_U (0x58000000) /* AHB/APB Bridge 0 UnBuffered Space */ #define AHB_APB_BRDG0_B (0x48000000) /* AHB/APB Bridge 0 Buffered Space */ #define AHB_APB_BRDG1_U (0x5C000000) /* AHB/APB Bridge 1 UnBuffered Space */ #define AHB_APB_BRDG1_B (0x4C000000) /* AHB/APB Bridge 1 Buffered Space */ #define AHB_EMI_U (0x74000000) /* EMI UnBuffered Space */ #define AHB_EMI_B (0x64000000) /* EMI Buffered Space */ #define AHB_DMA_U (0x78000000) /* DMA UnBuffered Space */ #define AHB_DMA_B (0x68000000) /* DMA Buffered Space */ #define AHB_ENET_MAC_U (0x7C000400) /* ENET_MAC UnBuffered Space */ #define AHB_ENET_MAC_B (0x6C000000) /* ENET_MAC Buffered Space */ #define AHB_ENET_DMA_U (0x7C000000) /* ENET_DMA Unbuffered Space */ #define AHB_ENET_DMA_B (0x6C000400) /* ENET_DMA Buffered Space */ #define AHB_VIC1_U (0xFC000000) /* Secondary VIC1 UnBuffered Space */ #define AHB_VIC0_U (0xFFFFF000) /* Primary VIC0 UnBuffered Space */ #define AHB_FMI_U (0x54000000) /* FMI Unbuffered Space */ #define AHB_FMI_B (0x44000000) /* FMI buffered Space */ /******************************************************************************* * Addresses related to the VICs' peripherals * *******************************************************************************/ #define VIC0_BASE (AHB_VIC0_U) #define VIC1_BASE (AHB_VIC1_U) /******************************************************************************* * Addresses related to the EMI banks * *******************************************************************************/ #define AHB_EMIB3_OFST (0x00000040) /* Offset of EMI bank3 */ #define AHB_EMIB2_OFST (0x00000020) /* Offset of EMI bank2 */ #define AHB_EMIB1_OFST (0x00000000) /* Offset of EMI bank1 */ #define AHB_EMIB0_OFST (0x000000E0) /* Offset of EMI bank0 */ /******************************************************************************* * Addresses related to the DMA peripheral * *******************************************************************************/ #define AHB_DMA_Channel0_OFST (0x00000100) /* Offset of Channel 0 */ #define AHB_DMA_Channel1_OFST (0x00000120) /* Offset of Channel 1 */ #define AHB_DMA_Channel2_OFST (0x00000140) /* Offset of Channel 2 */ #define AHB_DMA_Channel3_OFST (0x00000160) /* Offset of Channel 3 */ #define AHB_DMA_Channel4_OFST (0x00000180) /* Offset of Channel 4 */ #define AHB_DMA_Channel5_OFST (0x000001A0) /* Offset of Channel 5 */ #define AHB_DMA_Channel6_OFST (0x000001C0) /* Offset of Channel 6 */ #define AHB_DMA_Channel7_OFST (0x000001E0) /* Offset of Channel 7 */ /******************************************************************************* * Addresses related to the APB0 sub-system * *******************************************************************************/ #define APB_WIU_OFST (0x00001000) /* Offset of WIU */ #define APB_TIM0_OFST (0x00002000) /* Offset of TIM0 */ #define APB_TIM1_OFST (0x00003000) /* Offset of TIM1 */ #define APB_TIM2_OFST (0x00004000) /* Offset of TIM2 */ #define APB_TIM3_OFST (0x00005000) /* Offset of TIM3 */ #define APB_GPIO0_OFST (0x00006000) /* Offset of GPIO0 */ #define APB_GPIO1_OFST (0x00007000) /* Offset of GPIO1 */ #define APB_GPIO2_OFST (0x00008000) /* Offset of GPIO2 */ #define APB_GPIO3_OFST (0x00009000) /* Offset of GPIO3 */ #define APB_GPIO4_OFST (0x0000A000) /* Offset of GPIO4 */ #define APB_GPIO5_OFST (0x0000B000) /* Offset of GPIO5 */ #define APB_GPIO6_OFST (0x0000C000) /* Offset of GPIO6 */ #define APB_GPIO7_OFST (0x0000D000) /* Offset of GPIO7 */ #define APB_GPIO8_OFST (0x0000E000) /* Offset of GPIO8 */ #define APB_GPIO9_OFST (0x0000F000) /* Offset of GPIO9 */ /******************************************************************************* * Addresses related to the APB1 sub-system * *******************************************************************************/ #define APB_RTC_OFST (0x00001000) /* Offset of RTC */ #define APB_SCU_OFST (0x00002000) /* Offset of System Controller */ #define APB_MC_OFST (0x00003000) /* Offset of Motor Control */ #define APB_UART0_OFST (0x00004000) /* Offset of UART0 */ #define APB_UART1_OFST (0x00005000) /* Offset of UART1 */ #define APB_UART2_OFST (0x00006000) /* Offset of UART2 */ #define APB_SSP0_OFST (0x00007000) /* Offset of SSP0 */ #define APB_SSP1_OFST (0x00008000) /* Offset of SSPI */ #define APB_CAN_OFST (0x00009000) /* Offset of CAN */ #define APB_ADC_OFST (0x0000A000) /* Offset of ADC */ #define APB_WDG_OFST (0x0000B000) /* Offset of WDG */ #define APB_I2C0_OFST (0x0000C000) /* Offset of I2C0 */ #define APB_I2C1_OFST (0x0000D000) /* Offset of I2C1 */ /*----------------------------------------------------------------------------*/ /*----------------------------- Unbuffered Mode ------------------------------*/ /*----------------------------------------------------------------------------*/ #ifndef Buffered /******************************************************************************* * AHBAPB peripheral Unbuffered Base Address * *******************************************************************************/ #define AHBAPB0_BASE (AHB_APB_BRDG0_U) #define AHBAPB1_BASE (AHB_APB_BRDG1_U) /******************************************************************************* * ENET peripheral Unbuffered Base Address * *******************************************************************************/ #define ENET_MAC_BASE (AHB_ENET_MAC_U) #define ENET_DMA_BASE (AHB_ENET_DMA_U) /******************************************************************************* * DMA peripheral Unbuffered Base Address * *******************************************************************************/ #define DMA_BASE (AHB_DMA_U) /******************************************************************************* * EMI peripheral Unbuffered Base Address * *******************************************************************************/ #define EMI_BASE (AHB_EMI_U) /******************************************************************************* * FMI peripheral Unbuffered Base Address * *******************************************************************************/ #define FMI_BASE (AHB_FMI_U) #else /* Buffered */ /*----------------------------------------------------------------------------*/ /*------------------------------ Buffered Mode -------------------------------*/ /*----------------------------------------------------------------------------*/ /******************************************************************************* * AHBAPB peripheral Buffered Base Address * *******************************************************************************/ #define AHBAPB0_BASE (AHB_APB_BRDG0_B) #define AHBAPB1_BASE (AHB_APB_BRDG1_B) /******************************************************************************* * ENET peripheral Unbuffered Base Address * *******************************************************************************/ #define ENET_MAC_BASE (AHB_ENET_MAC_B) #define ENET_DMA_BASE (AHB_ENET_DMA_B) /******************************************************************************* * DMA peripheral Buffered Base Address * *******************************************************************************/ #define DMA_BASE (AHB_DMA_B) /******************************************************************************* * EMI peripheral Buffered Base Address * *******************************************************************************/ #define EMI_BASE (AHB_EMI_B) /******************************************************************************* * FMI peripheral Buffered Base Address * *******************************************************************************/ #define FMI_BASE (AHB_FMI_B) #endif /* Buffered */ /******************************************************************************* * DMA channels Base Address * *******************************************************************************/ #define DMA_Channel0_BASE (DMA_BASE + AHB_DMA_Channel0_OFST) #define DMA_Channel1_BASE (DMA_BASE + AHB_DMA_Channel1_OFST) #define DMA_Channel2_BASE (DMA_BASE + AHB_DMA_Channel2_OFST) #define DMA_Channel3_BASE (DMA_BASE + AHB_DMA_Channel3_OFST) #define DMA_Channel4_BASE (DMA_BASE + AHB_DMA_Channel4_OFST) #define DMA_Channel5_BASE (DMA_BASE + AHB_DMA_Channel5_OFST) #define DMA_Channel6_BASE (DMA_BASE + AHB_DMA_Channel6_OFST) #define DMA_Channel7_BASE (DMA_BASE + AHB_DMA_Channel7_OFST) /******************************************************************************* * EMI Banks peripheral Base Address * *******************************************************************************/ #define EMI_Bank0_BASE (EMI_BASE + AHB_EMIB0_OFST) #define EMI_Bank1_BASE (EMI_BASE + AHB_EMIB1_OFST) #define EMI_Bank2_BASE (EMI_BASE + AHB_EMIB2_OFST) #define EMI_Bank3_BASE (EMI_BASE + AHB_EMIB3_OFST) /******************************************************************************* * APB0 Peripherals' Base addresses * *******************************************************************************/ #define WIU_BASE (AHBAPB0_BASE + APB_WIU_OFST) #define TIM0_BASE (AHBAPB0_BASE + APB_TIM0_OFST) #define TIM1_BASE (AHBAPB0_BASE + APB_TIM1_OFST) #define TIM2_BASE (AHBAPB0_BASE + APB_TIM2_OFST) #define TIM3_BASE (AHBAPB0_BASE + APB_TIM3_OFST) #define GPIO0_BASE (AHBAPB0_BASE + APB_GPIO0_OFST) #define GPIO1_BASE (AHBAPB0_BASE + APB_GPIO1_OFST) #define GPIO2_BASE (AHBAPB0_BASE + APB_GPIO2_OFST) #define GPIO3_BASE (AHBAPB0_BASE + APB_GPIO3_OFST) #define GPIO4_BASE (AHBAPB0_BASE + APB_GPIO4_OFST) #define GPIO5_BASE (AHBAPB0_BASE + APB_GPIO5_OFST) #define GPIO6_BASE (AHBAPB0_BASE + APB_GPIO6_OFST) #define GPIO7_BASE (AHBAPB0_BASE + APB_GPIO7_OFST) #define GPIO8_BASE (AHBAPB0_BASE + APB_GPIO8_OFST) #define GPIO9_BASE (AHBAPB0_BASE + APB_GPIO9_OFST) /******************************************************************************* * APB1 Peripherals' Base addresses * *******************************************************************************/ #define RTC_BASE (AHBAPB1_BASE + APB_RTC_OFST) #define SCU_BASE (AHBAPB1_BASE + APB_SCU_OFST) #define MC_BASE (AHBAPB1_BASE + APB_MC_OFST) #define UART0_BASE (AHBAPB1_BASE + APB_UART0_OFST) #define UART1_BASE (AHBAPB1_BASE + APB_UART1_OFST) #define UART2_BASE (AHBAPB1_BASE + APB_UART2_OFST) #define SSP0_BASE (AHBAPB1_BASE + APB_SSP0_OFST) #define SSP1_BASE (AHBAPB1_BASE + APB_SSP1_OFST) #define CAN_BASE (AHBAPB1_BASE + APB_CAN_OFST) #define ADC_BASE (AHBAPB1_BASE + APB_ADC_OFST) #define WDG_BASE (AHBAPB1_BASE + APB_WDG_OFST) #define I2C0_BASE (AHBAPB1_BASE + APB_I2C0_OFST) #define I2C1_BASE (AHBAPB1_BASE + APB_I2C1_OFST) /******************************************************************************* * IPs' declaration * *******************************************************************************/ /*------------------------------ Non Debug Mode ------------------------------*/ #undef DEBUG #ifndef DEBUG /*********************************** AHBAPB ***********************************/ #define AHBAPB0 ((AHBAPB_TypeDef *)AHBAPB0_BASE) #define AHBAPB1 ((AHBAPB_TypeDef *)AHBAPB1_BASE) /************************************* EMI ************************************/ #define EMI ((EMI_TypeDef *)EMI_BASE) /************************************* DMA ************************************/ #define DMA ((DMA_TypeDef *)DMA_BASE) #define DMA_Channel0 ((DMA_Channel_TypeDef *)DMA_Channel0_BASE) #define DMA_Channel1 ((DMA_Channel_TypeDef *)DMA_Channel1_BASE) #define DMA_Channel2 ((DMA_Channel_TypeDef *)DMA_Channel2_BASE) #define DMA_Channel3 ((DMA_Channel_TypeDef *)DMA_Channel3_BASE) #define DMA_Channel4 ((DMA_Channel_TypeDef *)DMA_Channel4_BASE) #define DMA_Channel5 ((DMA_Channel_TypeDef *)DMA_Channel5_BASE) #define DMA_Channel6 ((DMA_Channel_TypeDef *)DMA_Channel6_BASE) #define DMA_Channel7 ((DMA_Channel_TypeDef *)DMA_Channel7_BASE) /************************************* EMI ************************************/ #define EMI_Bank0 ((EMI_Bank_TypeDef *)EMI_Bank0_BASE) #define EMI_Bank1 ((EMI_Bank_TypeDef *)EMI_Bank1_BASE) #define EMI_Bank2 ((EMI_Bank_TypeDef *)EMI_Bank2_BASE) #define EMI_Bank3 ((EMI_Bank_TypeDef *)EMI_Bank3_BASE) /************************************* ENET_MAC ************************************/ #define ENET_MAC ((ENET_MAC_TypeDef *)ENET_MAC_BASE) /************************************* ENET_DMA ************************************/ #define ENET_DMA ((ENET_DMA_TypeDef *)ENET_DMA_BASE) /************************************* FMI ************************************/ #define FMI ((FMI_TypeDef *)FMI_BASE) /************************************* VIC ************************************/ #define VIC0 ((VIC_TypeDef *)VIC0_BASE) #define VIC1 ((VIC_TypeDef *)VIC1_BASE) /******************************************************************************* * APB0 Peripherals' * *******************************************************************************/ #define WIU ((WIU_TypeDef *)WIU_BASE) #define TIM0 ((TIM_TypeDef *)TIM0_BASE) #define TIM1 ((TIM_TypeDef *)TIM1_BASE) #define TIM2 ((TIM_TypeDef *)TIM2_BASE) #define TIM3 ((TIM_TypeDef *)TIM3_BASE) #define GPIO0 ((GPIO_TypeDef *)GPIO0_BASE) #define GPIO1 ((GPIO_TypeDef *)GPIO1_BASE) #define GPIO2 ((GPIO_TypeDef *)GPIO2_BASE) #define GPIO3 ((GPIO_TypeDef *)GPIO3_BASE) #define GPIO4 ((GPIO_TypeDef *)GPIO4_BASE) #define GPIO5 ((GPIO_TypeDef *)GPIO5_BASE) #define GPIO6 ((GPIO_TypeDef *)GPIO6_BASE) #define GPIO7 ((GPIO_TypeDef *)GPIO7_BASE) #define GPIO8 ((GPIO_TypeDef *)GPIO8_BASE) #define GPIO9 ((GPIO_TypeDef *)GPIO9_BASE) /******************************************************************************* * APB1 Peripherals' * *******************************************************************************/ #define RTC ((RTC_TypeDef *)RTC_BASE) #define SCU ((SCU_TypeDef *)SCU_BASE) #define MC ((MC_TypeDef *)MC_BASE) #define UART0 ((UART_TypeDef *)UART0_BASE) #define UART1 ((UART_TypeDef *)UART1_BASE) #define UART2 ((UART_TypeDef *)UART2_BASE) #define SSP0 ((SSP_TypeDef *)SSP0_BASE) #define SSP1 ((SSP_TypeDef *)SSP1_BASE) #define CAN ((CAN_TypeDef *)CAN_BASE) #define ADC ((ADC_TypeDef *)ADC_BASE) #define WDG ((WDG_TypeDef *)WDG_BASE) #define I2C0 ((I2C_TypeDef *)I2C0_BASE) #define I2C1 ((I2C_TypeDef *)I2C1_BASE) #define ENET_MAC ((ENET_MAC_TypeDef *)ENET_MAC_BASE) #define ENET_DMA ((ENET_DMA_TypeDef *)ENET_DMA_BASE) #else /* DEBUG */ /*-------------------------------- Debug Mode --------------------------------*/ EXT AHBAPB_TypeDef *AHBAPB0; EXT AHBAPB_TypeDef *AHBAPB1; EXT DMA_TypeDef *DMA; EXT DMA_Channel_TypeDef *DMA_Channel0; EXT DMA_Channel_TypeDef *DMA_Channel1; EXT DMA_Channel_TypeDef *DMA_Channel2; EXT DMA_Channel_TypeDef *DMA_Channel3; EXT DMA_Channel_TypeDef *DMA_Channel4; EXT DMA_Channel_TypeDef *DMA_Channel5; EXT DMA_Channel_TypeDef *DMA_Channel6; EXT DMA_Channel_TypeDef *DMA_Channel7; EXT EMI_Bank_TypeDef *EMI_Bank0; EXT EMI_Bank_TypeDef *EMI_Bank1; EXT EMI_Bank_TypeDef *EMI_Bank2; EXT EMI_Bank_TypeDef *EMI_Bank3; EXT FMI_TypeDef *FMI; EXT VIC_TypeDef *VIC0; EXT VIC_TypeDef *VIC1; EXT WIU_TypeDef *WIU; EXT TIM_TypeDef *TIM0; EXT TIM_TypeDef *TIM1; EXT TIM_TypeDef *TIM2; EXT TIM_TypeDef *TIM3; EXT GPIO_TypeDef *GPIO0; EXT GPIO_TypeDef *GPIO1; EXT GPIO_TypeDef *GPIO2; EXT GPIO_TypeDef *GPIO3; EXT GPIO_TypeDef *GPIO4; EXT GPIO_TypeDef *GPIO5; EXT GPIO_TypeDef *GPIO6; EXT GPIO_TypeDef *GPIO7; EXT GPIO_TypeDef *GPIO8; EXT GPIO_TypeDef *GPIO9; EXT RTC_TypeDef *RTC; EXT SCU_TypeDef *SCU; EXT MC_TypeDef *MC; EXT UART_TypeDef *UART0; EXT UART_TypeDef *UART1; EXT UART_TypeDef *UART2; EXT SSP_TypeDef *SSP0; EXT SSP_TypeDef *SSP1; EXT CAN_TypeDef *CAN; EXT ADC_TypeDef *ADC; EXT WDG_TypeDef *WDG; EXT I2C_TypeDef *I2C0; EXT I2C_TypeDef *I2C1; EXT ENET_MAC_TypeDef *ENET_MAC; EXT ENET_DMA_TypeDef *ENET_DMA; #endif /* DEBUG */ #endif /* __91x_MAP_H*/ /******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/