1 /******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
\r
2 * File Name : stm32f10x_map.h
\r
3 * Author : MCD Application Team
\r
4 * Date First Issued : 09/29/2006
\r
5 * Description : This file contains all the peripheral register's definitions
\r
6 * and memory mapping.
\r
7 ********************************************************************************
\r
12 ********************************************************************************
\r
13 * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
\r
14 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
\r
15 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
\r
16 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
\r
17 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
\r
18 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
\r
19 *******************************************************************************/
\r
21 /* Define to prevent recursive inclusion -------------------------------------*/
\r
22 #ifndef __STM32F10x_MAP_H
\r
23 #define __STM32F10x_MAP_H
\r
29 /* Includes ------------------------------------------------------------------*/
\r
30 #include "stm32f10x_conf.h"
\r
31 #include "stm32f10x_type.h"
\r
32 #include "cortexm3_macro.h"
\r
34 /* Exported types ------------------------------------------------------------*/
\r
35 /******************************************************************************/
\r
36 /* IP registers structures */
\r
37 /******************************************************************************/
\r
39 /*------------------------ Analog to Digital Converter -----------------------*/
\r
64 /*------------------------ Backup Registers ----------------------------------*/
\r
96 /*------------------------ Controller Area Network ---------------------------*/
\r
103 } CAN_TxMailBox_TypeDef;
\r
111 } CAN_FIFOMailBox_TypeDef;
\r
117 } CAN_FilterRegister_TypeDef;
\r
130 CAN_TxMailBox_TypeDef sTxMailBox[3];
\r
131 CAN_FIFOMailBox_TypeDef sFIFOMailBox[2];
\r
142 CAN_FilterRegister_TypeDef sFilterRegister[14];
\r
145 /*------------------------ DMA Controller ------------------------------------*/
\r
152 } DMA_Channel_TypeDef;
\r
160 /*------------------------ External Interrupt/Event Controller ---------------*/
\r
171 /*------------------------ FLASH and Option Bytes Registers ------------------*/
\r
197 /*------------------------ General Purpose and Alternate Function IO ---------*/
\r
216 /*------------------------ Inter-integrated Circuit Interface ----------------*/
\r
239 /*------------------------ Independent WATCHDOG ------------------------------*/
\r
248 /*------------------------ Nested Vectored Interrupt Controller --------------*/
\r
267 vu32 IRQControlState;
\r
268 vu32 ExceptionTableOffset;
\r
272 vu32 SystemPriority[3];
\r
273 vu32 SysHandlerCtrl;
\r
274 vu32 ConfigFaultStatus;
\r
275 vu32 HardFaultStatus;
\r
276 vu32 DebugFaultStatus;
\r
277 vu32 MemoryManageFaultAddr;
\r
281 /*------------------------ Power Controller ----------------------------------*/
\r
288 /*------------------------ Reset and Clock Controller ------------------------*/
\r
303 /*------------------------ Real-Time Clock -----------------------------------*/
\r
328 /*------------------------ Serial Peripheral Interface -----------------------*/
\r
352 /*------------------------ SystemTick ----------------------------------------*/
\r
361 /*------------------------ Advanced Control Timer ----------------------------*/
\r
406 /*------------------------ General Purpose Timer -----------------------------*/
\r
447 /*----------------- Universal Synchronous Asynchronous Receiver Transmitter --*/
\r
466 /*------------------------ Window WATCHDOG -----------------------------------*/
\r
474 /******************************************************************************/
\r
475 /* Peripheral memory map */
\r
476 /******************************************************************************/
\r
477 /* Peripheral and SRAM base address in the alias region */
\r
478 #define PERIPH_BB_BASE ((u32)0x42000000)
\r
479 #define SRAM_BB_BASE ((u32)0x22000000)
\r
481 /* Peripheral and SRAM base address in the bit-band region */
\r
482 #define SRAM_BASE ((u32)0x20000000)
\r
483 #define PERIPH_BASE ((u32)0x40000000)
\r
485 /* Flash refisters base address */
\r
486 #define FLASH_BASE ((u32)0x40022000)
\r
487 /* Flash Option Bytes base address */
\r
488 #define OB_BASE ((u32)0x1FFFF800)
\r
490 /* Peripheral memory map */
\r
491 #define APB1PERIPH_BASE PERIPH_BASE
\r
492 #define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
\r
493 #define AHBPERIPH_BASE (PERIPH_BASE + 0x20000)
\r
495 #define TIM2_BASE (APB1PERIPH_BASE + 0x0000)
\r
496 #define TIM3_BASE (APB1PERIPH_BASE + 0x0400)
\r
497 #define TIM4_BASE (APB1PERIPH_BASE + 0x0800)
\r
498 #define RTC_BASE (APB1PERIPH_BASE + 0x2800)
\r
499 #define WWDG_BASE (APB1PERIPH_BASE + 0x2C00)
\r
500 #define IWDG_BASE (APB1PERIPH_BASE + 0x3000)
\r
501 #define SPI2_BASE (APB1PERIPH_BASE + 0x3800)
\r
502 #define USART2_BASE (APB1PERIPH_BASE + 0x4400)
\r
503 #define USART3_BASE (APB1PERIPH_BASE + 0x4800)
\r
504 #define I2C1_BASE (APB1PERIPH_BASE + 0x5400)
\r
505 #define I2C2_BASE (APB1PERIPH_BASE + 0x5800)
\r
506 #define CAN_BASE (APB1PERIPH_BASE + 0x6400)
\r
507 #define BKP_BASE (APB1PERIPH_BASE + 0x6C00)
\r
508 #define PWR_BASE (APB1PERIPH_BASE + 0x7000)
\r
510 #define AFIO_BASE (APB2PERIPH_BASE + 0x0000)
\r
511 #define EXTI_BASE (APB2PERIPH_BASE + 0x0400)
\r
512 #define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)
\r
513 #define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00)
\r
514 #define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)
\r
515 #define GPIOD_BASE (APB2PERIPH_BASE + 0x1400)
\r
516 #define GPIOE_BASE (APB2PERIPH_BASE + 0x1800)
\r
517 #define ADC1_BASE (APB2PERIPH_BASE + 0x2400)
\r
518 #define ADC2_BASE (APB2PERIPH_BASE + 0x2800)
\r
519 #define TIM1_BASE (APB2PERIPH_BASE + 0x2C00)
\r
520 #define SPI1_BASE (APB2PERIPH_BASE + 0x3000)
\r
521 #define USART1_BASE (APB2PERIPH_BASE + 0x3800)
\r
523 #define DMA_BASE (AHBPERIPH_BASE + 0x0000)
\r
524 #define DMA_Channel1_BASE (AHBPERIPH_BASE + 0x0008)
\r
525 #define DMA_Channel2_BASE (AHBPERIPH_BASE + 0x001C)
\r
526 #define DMA_Channel3_BASE (AHBPERIPH_BASE + 0x0030)
\r
527 #define DMA_Channel4_BASE (AHBPERIPH_BASE + 0x0044)
\r
528 #define DMA_Channel5_BASE (AHBPERIPH_BASE + 0x0058)
\r
529 #define DMA_Channel6_BASE (AHBPERIPH_BASE + 0x006C)
\r
530 #define DMA_Channel7_BASE (AHBPERIPH_BASE + 0x0080)
\r
531 #define RCC_BASE (AHBPERIPH_BASE + 0x1000)
\r
533 /* System Control Space memory map */
\r
534 #define SCS_BASE ((u32)0xE000E000)
\r
536 #define SysTick_BASE (SCS_BASE + 0x0010)
\r
537 #define NVIC_BASE (SCS_BASE + 0x0100)
\r
538 #define SCB_BASE (SCS_BASE + 0x0D00)
\r
541 /******************************************************************************/
\r
542 /* IPs' declaration */
\r
543 /******************************************************************************/
\r
545 /*------------------- Non Debug Mode -----------------------------------------*/
\r
548 #define TIM2 ((TIM_TypeDef *) TIM2_BASE)
\r
552 #define TIM3 ((TIM_TypeDef *) TIM3_BASE)
\r
556 #define TIM4 ((TIM_TypeDef *) TIM4_BASE)
\r
560 #define RTC ((RTC_TypeDef *) RTC_BASE)
\r
564 #define WWDG ((WWDG_TypeDef *) WWDG_BASE)
\r
568 #define IWDG ((IWDG_TypeDef *) IWDG_BASE)
\r
572 #define SPI2 ((SPI_TypeDef *) SPI2_BASE)
\r
576 #define USART2 ((USART_TypeDef *) USART2_BASE)
\r
577 #endif /*_USART2 */
\r
580 #define USART3 ((USART_TypeDef *) USART3_BASE)
\r
581 #endif /*_USART3 */
\r
584 #define I2C1 ((I2C_TypeDef *) I2C1_BASE)
\r
588 #define I2C2 ((I2C_TypeDef *) I2C2_BASE)
\r
592 #define CAN ((CAN_TypeDef *) CAN_BASE)
\r
596 #define BKP ((BKP_TypeDef *) BKP_BASE)
\r
600 #define PWR ((PWR_TypeDef *) PWR_BASE)
\r
604 #define AFIO ((AFIO_TypeDef *) AFIO_BASE)
\r
608 #define EXTI ((EXTI_TypeDef *) EXTI_BASE)
\r
612 #define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)
\r
616 #define GPIOB ((GPIO_TypeDef *) GPIOB_BASE)
\r
620 #define GPIOC ((GPIO_TypeDef *) GPIOC_BASE)
\r
624 #define GPIOD ((GPIO_TypeDef *) GPIOD_BASE)
\r
628 #define GPIOE ((GPIO_TypeDef *) GPIOE_BASE)
\r
632 #define ADC1 ((ADC_TypeDef *) ADC1_BASE)
\r
636 #define ADC2 ((ADC_TypeDef *) ADC2_BASE)
\r
640 #define TIM1 ((TIM1_TypeDef *) TIM1_BASE)
\r
644 #define SPI1 ((SPI_TypeDef *) SPI1_BASE)
\r
648 #define USART1 ((USART_TypeDef *) USART1_BASE)
\r
649 #endif /*_USART1 */
\r
652 #define DMA ((DMA_TypeDef *) DMA_BASE)
\r
655 #ifdef _DMA_Channel1
\r
656 #define DMA_Channel1 ((DMA_Channel_TypeDef *) DMA_Channel1_BASE)
\r
657 #endif /*_DMA_Channel1 */
\r
659 #ifdef _DMA_Channel2
\r
660 #define DMA_Channel2 ((DMA_Channel_TypeDef *) DMA_Channel2_BASE)
\r
661 #endif /*_DMA_Channel2 */
\r
663 #ifdef _DMA_Channel3
\r
664 #define DMA_Channel3 ((DMA_Channel_TypeDef *) DMA_Channel3_BASE)
\r
665 #endif /*_DMA_Channel3 */
\r
667 #ifdef _DMA_Channel4
\r
668 #define DMA_Channel4 ((DMA_Channel_TypeDef *) DMA_Channel4_BASE)
\r
669 #endif /*_DMA_Channel4 */
\r
671 #ifdef _DMA_Channel5
\r
672 #define DMA_Channel5 ((DMA_Channel_TypeDef *) DMA_Channel5_BASE)
\r
673 #endif /*_DMA_Channel5 */
\r
675 #ifdef _DMA_Channel6
\r
676 #define DMA_Channel6 ((DMA_Channel_TypeDef *) DMA_Channel6_BASE)
\r
677 #endif /*_DMA_Channel6 */
\r
679 #ifdef _DMA_Channel7
\r
680 #define DMA_Channel7 ((DMA_Channel_TypeDef *) DMA_Channel7_BASE)
\r
681 #endif /*_DMA_Channel7 */
\r
684 #define FLASH ((FLASH_TypeDef *) FLASH_BASE)
\r
685 #define OB ((OB_TypeDef *) OB_BASE)
\r
689 #define RCC ((RCC_TypeDef *) RCC_BASE)
\r
693 #define SysTick ((SysTick_TypeDef *) SysTick_BASE)
\r
694 #endif /*_SysTick */
\r
697 #define NVIC ((NVIC_TypeDef *) NVIC_BASE)
\r
701 #define SCB ((SCB_TypeDef *) SCB_BASE)
\r
703 /*---------------------- Debug Mode -----------------------------------------*/
\r
706 EXT TIM_TypeDef *TIM2;
\r
710 EXT TIM_TypeDef *TIM3;
\r
714 EXT TIM_TypeDef *TIM4;
\r
718 EXT RTC_TypeDef *RTC;
\r
722 EXT WWDG_TypeDef *WWDG;
\r
726 EXT IWDG_TypeDef *IWDG;
\r
730 EXT SPI_TypeDef *SPI2;
\r
734 EXT USART_TypeDef *USART2;
\r
735 #endif /*_USART2 */
\r
738 EXT USART_TypeDef *USART3;
\r
739 #endif /*_USART3 */
\r
742 EXT I2C_TypeDef *I2C1;
\r
746 EXT I2C_TypeDef *I2C2;
\r
750 EXT CAN_TypeDef *CAN;
\r
754 EXT BKP_TypeDef *BKP;
\r
758 EXT PWR_TypeDef *PWR;
\r
762 EXT AFIO_TypeDef *AFIO;
\r
766 EXT EXTI_TypeDef *EXTI;
\r
770 EXT GPIO_TypeDef *GPIOA;
\r
774 EXT GPIO_TypeDef *GPIOB;
\r
778 EXT GPIO_TypeDef *GPIOC;
\r
782 EXT GPIO_TypeDef *GPIOD;
\r
786 EXT GPIO_TypeDef *GPIOE;
\r
790 EXT ADC_TypeDef *ADC1;
\r
794 EXT ADC_TypeDef *ADC2;
\r
798 EXT TIM1_TypeDef *TIM1;
\r
802 EXT SPI_TypeDef *SPI1;
\r
806 EXT USART_TypeDef *USART1;
\r
807 #endif /*_USART1 */
\r
810 EXT DMA_TypeDef *DMA;
\r
813 #ifdef _DMA_Channel1
\r
814 EXT DMA_Channel_TypeDef *DMA_Channel1;
\r
815 #endif /*_DMA_Channel1 */
\r
817 #ifdef _DMA_Channel2
\r
818 EXT DMA_Channel_TypeDef *DMA_Channel2;
\r
819 #endif /*_DMA_Channel2 */
\r
821 #ifdef _DMA_Channel3
\r
822 EXT DMA_Channel_TypeDef *DMA_Channel3;
\r
823 #endif /*_DMA_Channel3 */
\r
825 #ifdef _DMA_Channel4
\r
826 EXT DMA_Channel_TypeDef *DMA_Channel4;
\r
827 #endif /*_DMA_Channel4 */
\r
829 #ifdef _DMA_Channel5
\r
830 EXT DMA_Channel_TypeDef *DMA_Channel5;
\r
831 #endif /*_DMA_Channel5 */
\r
833 #ifdef _DMA_Channel6
\r
834 EXT DMA_Channel_TypeDef *DMA_Channel6;
\r
835 #endif /*_DMA_Channel6 */
\r
837 #ifdef _DMA_Channel7
\r
838 EXT DMA_Channel_TypeDef *DMA_Channel7;
\r
839 #endif /*_DMA_Channel7 */
\r
842 EXT FLASH_TypeDef *FLASH;
\r
843 EXT OB_TypeDef *OB;
\r
847 EXT RCC_TypeDef *RCC;
\r
851 EXT SysTick_TypeDef *SysTick;
\r
852 #endif /*_SysTick */
\r
855 EXT NVIC_TypeDef *NVIC;
\r
859 EXT SCB_TypeDef *SCB;
\r
864 /* Exported constants --------------------------------------------------------*/
\r
865 /* Exported macro ------------------------------------------------------------*/
\r
866 /* Exported functions ------------------------------------------------------- */
\r
868 #endif /* __STM32F10x_MAP_H */
\r
870 /******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/
\r