#ifdef STM32F405 #define __HAVE_FSMC #endif #ifdef STM32F407 #define __HAVE_FSMC #define __HAVE_ETHERNET #define __HAVE_DCMI #endif #ifdef STM32F415 #define __HAVE_FSMC #define __HAVE_CRYPTO #endif #ifdef STM32F417 #define __HAVE_FSMC #define __HAVE_ETHERNET #define __HAVE_DCMI #define __HAVE_CRYPTO #endif #ifdef STM32F427 #define __HAVE_FMC #define __HAVE_ETHERNET #define __HAVE_DCMI #define __HAVE_SAI #define __HAVE_DMA2D #endif #ifdef STM32F437 #define __HAVE_FMC #define __HAVE_ETHERNET #define __HAVE_DCMI #define __HAVE_SAI #define __HAVE_DMA2D #define __HAVE_CRYPTO #endif #ifdef STM32F429 #define __HAVE_FMC #define __HAVE_ETHERNET #define __HAVE_DCMI #define __HAVE_SAI #define __HAVE_DMA2D #define __HAVE_LTDC #endif #ifdef STM32F439 #define __HAVE_FMC #define __HAVE_ETHERNET #define __HAVE_DCMI #define __HAVE_SAI #define __HAVE_DMA2D #define __HAVE_LTDC #define __HAVE_CRYPTO #endif #if defined(STM32F405) STM32F405 #elif defined(STM32F407) STM32F407 #elif defined(STM32F415) STM32F415 #elif defined(STM32F417) STM32F417 #elif defined(STM32F427) STM32F427 #elif defined(STM32F437) STM32F437 #elif defined(STM32F429) STM32F429 #elif defined(STM32F439) STM32F439 #else #warning "Generic 40x chosen" STM32F40x #endif CM4 r0p0 little true true true 4 false 1.5 #if defined(STM32F405) STM32F405 #elif defined(STM32F407) STM32F407 #elif defined(STM32F415) STM32F415 #elif defined(STM32F417) STM32F417 #elif defined(STM32F427) STM32F427 #elif defined(STM32F437) STM32F437 #elif defined(STM32F429) STM32F429 #elif defined(STM32F439) STM32F439 #else STM32F40x #endif 8 32 0x20 0x0 0xFFFFFFFF RNG 0x50060800 HASH_RNG Hash and RNG global interrupt 80 #include "rng.svd.frag" #ifdef __HAVE_CRYPTO HASH 0x50060400 HASH_RNG Hash and RNG global interrupt 80 #include "hash.svd.frag" CRYP 0x50060000 CRYP CRYP crypto global interrupt 79 #include "crypt.svd.frag" #endif #ifdef __HAVE_DCMI DCMI 0x50050000 DCMI DCMI global interrupt 78 #include "dcmi.svd.frag" #endif #ifdef __HAVE_FSMC FSMC 0xA0000000 FSMC FSMC global interrupt 48 #include "fmc.svd.frag" #endif #ifdef __HAVE_FMC FMC 0xA0000000 FMC FMC global interrupt 48 #define __FMC_HAVE_SDRAM #include "fmc.svd.frag" #endif DBG 0xE0042000 #include "dbg.svd.frag" DMA2 0x40026400 DMA2_Stream0 DMA2 Stream0 global interrupt 56 DMA2_Stream1 DMA2 Stream1 global interrupt 57 DMA2_Stream2 DMA2 Stream2 global interrupt 58 DMA2_Stream3 DMA2 Stream3 global interrupt 59 DMA2_Stream4 DMA2 Stream4 global interrupt 60 DMA2_Stream5 DMA2 Stream5 global interrupt 68 DMA2_Stream6 DMA2 Stream6 global interrupt 69 DMA2_Stream7 DMA2 Stream7 global interrupt 70 #include "dma.svd.frag" DMA1 0x40026000 DMA1_Stream0 DMA1 Stream0 global interrupt 11 DMA1_Stream1 DMA1 Stream1 global interrupt 12 DMA1_Stream2 DMA1 Stream2 global interrupt 13 DMA1_Stream3 DMA1 Stream3 global interrupt 14 DMA1_Stream4 DMA1 Stream4 global interrupt 15 DMA1_Stream5 DMA1 Stream5 global interrupt 16 DMA1_Stream6 DMA1 Stream6 global interrupt 17 DMA1_Stream7 DMA1 Stream7 global interrupt 47 RCC 0x40023800 RCC RCC global interrupt 5 #include "rcc.svd.frag" GPIOI 0x40022000 #include "gpio.svd.frag" GPIOH 0x40021C00 GPIOG 0x40021800 GPIOF 0x40021400 GPIOE 0x40021000 GPIOD 0X40020C00 GPIOC 0x40020800 #if defined(STM32F427) || defined(STM32F437) || defined(STM32F429) || defined(STM32F439) GPIOJ 0x40022400 GPIOK 0x40022800 #endif GPIOB 0x40020400 #define __GPIO_B #include "gpio.svd.frag" GPIOA 0x40020000 #define __GPIO_A #include "gpio.svd.frag" SYSCFG 0x40013800 #include "syscfg.svd.frag" SPI1 0x40013000 SPI1 SPI1 global interrupt 35 #include "spi.svd.frag" SPI2 0x40003800 SPI2 SPI2 global interrupt 36 SPI3 0x40003C00 SPI3 SPI3 global interrupt 51 I2S2ext 0x40003400 I2S3ext 0x40004000 #if defined(STM32F427) || defined(STM32F437) || defined(STM32F429) || defined(STM32F439) SPI4 0x40013400 SPI4 SPI 4 global interrupt 84 SPI5 0x40015000 SPI5 SPI 5 global interrupt 85 SPI6 0x40015400 SPI6 SPI 6 global interrupt 86 #endif SDIO 0x40012C00 SDIO SDIO global interrupt 49 #include "sdio.svd.frag" ADC1 0x40012000 ADC ADC1 global interrupt 18 #include "adc_n.svd.frag" ADC2 0x40012100 ADC ADC2 global interrupts 18 ADC3 0x40012200 ADC ADC3 global interrupts 18 USART6 0x40011400 USART6 USART6 global interrupt 71 #include "usart.svd.frag" USART1 0x40011000 USART1 USART1 global interrupt 37 USART2 0x40004400 USART2 USART2 global interrupt 38 USART3 0x40004800 USART3 USART3 global interrupt 39 #if defined(STM32F427) || defined(STM32F437) || defined(STM32F429) || defined(STM32F439) UART7 0x40007800 UART7 UART 7 global interrupt 82 UART8 0x40007C00 UART8 UART 8 global interrupt 83 #endif DAC 0x40007400 TIM6_DAC TIM6 global interrupt, DAC1 and DAC2 underrun error interrupt 54 #include "dac.svd.frag" PWR 0x40007000 PVD PVD through EXTI line detection interrupt 1 #include "pwr.svd.frag" I2C3 0x40005C00 I2C3_EV I2C3 event interrupt 72 I2C3_ER I2C3 error interrupt 73 #include "i2c.svd.frag" I2C2 0x40005800 I2C2_EV I2C2 event interrupt 33 I2C2_ER I2C2 error interrupt 34 I2C1 0x40005400 I2C1_EV I2C1 event interrupt 31 I2C1_ER I2C1 error interrupt 32 IWDG 0x40003000 #include "iwdg.svd.frag" WWDG 0x40002C00 WWDG Window Watchdog interrupt 0 #include "wwdg.svd.frag" RTC 0x40002800 RTC_WKUP RTC Wakeup interrupt through the EXTI line 3 RTC_Alarm RTC Alarms (A and B) through EXTI line interrupt 41 #include "rtc.svd.frag" UART4 0x40004C00 UART4 UART4 global interrupt 52 #define __USART_ASYNCHRONOUS_ONLY #include "usart.svd.frag" UART5 0x40005000 UART5 UART5 global interrupt 53 C_ADC 0x40012300 #include "adc_c.svd.frag" TIM1 Advanced-timers 0x40010000 TIM1_BRK_TIM9 TIM1 Break interrupt and TIM9 global interrupt 24 TIM1_UP_TIM10 TIM1 Update interrupt and TIM10 global interrupt 25 TIM1_TRG_COM_TIM11 TIM1 Trigger and Commutation interrupts and TIM11 global interrupt 26 TIM1_CC TIM1 Capture Compare interrupt 27 #define __TIMER_ADVANCED #include "timer.svd.frag" TIM8 0x40010400 TIM8_BRK_TIM12 TIM8 Break interrupt and TIM12 global interrupt 43 TIM8_UP_TIM13 TIM8 Update interrupt and TIM13 global interrupt 44 TIM8_TRG_COM_TIM14 TIM8 Trigger and Commutation interrupts and TIM14 global interrupt 45 TIM8_CC TIM8 Capture Compare interrupt 46 TIM2 General purpose timers 0x40000000 TIM2 TIM2 global interrupt 28 #define __TIMER_TIM2 #define __TIMER_GP_WITH_TRIG #include "timer.svd.frag" TIM3 General purpose timers 0x40000400 TIM3 TIM3 global interrupt 29 #define __TIMER_GP_WITH_TRIG #include "timer.svd.frag" TIM4 0x40000800 TIM4 TIM4 global interrupt 30 TIM5 General-purpose-timers 0x40000C00 TIM5 TIM5 global interrupt 50 #define __TIMER_TIM5 #define __TIMER_GP_WITH_TRIG #include "timer.svd.frag" TIM9 General purpose timers 0x40014000 TIM1_BRK_TIM9 TIM1 Break interrupt and TIM9 global interrupt 24 #define __TIMER_GP_WITH_SYNC #include "timer.svd.frag" TIM12 0x40001800 TIM8_BRK_TIM12 TIM8 Break interrupt and TIM12 global interrupt 43 TIM10 General-purpose-timers 0x40014400 TIM1_UP_TIM10 TIM1 Update interrupt and TIM10 global interrupt 25 #define __TIMER_GP #include "timer.svd.frag" TIM13 0x40001C00 TIM8_UP_TIM13 TIM8 Update interrupt and TIM13 global interrupt 44 TIM14 0x40002000 TIM8_TRG_COM_TIM14 TIM8 Trigger and Commutation interrupts and TIM14 global interrupt 45 TIM11 General-purpose-timers 0x40014800 TIM1_TRG_COM_TIM11 TIM1 Trigger and Commutation interrupts and TIM11 global interrupt 26 #define __TIMER_TIM11 #define __TIMER_GP #include "timer.svd.frag" TIM6 Basic timers 0x40001000 TIM6_DAC TIM6 global interrupt, DAC1 and DAC2 underrun error interrupt 54 #include "timer.svd.frag" TIM7 0x40001400 TIM7 TIM7 global interrupt 55 #ifdef __HAVE_ETHERNET Ethernet_MAC 0x40028000 ETH Ethernet global interrupt 61 ETH_WKUP Ethernet Wakeup through EXTI line interrupt 62 #include "enet_mac.svd.frag" Ethernet_MMC 0x40028100 0x0 0x400 registers #include "enet_mmc.svd.frag" Ethernet_PTP 0x40028700 0x0 0x400 registers #include "enet_ptp.svd.frag" Ethernet_DMA 0x40029000 0x0 0x400 registers #include "enet_dma.svd.frag" #endif CRC 0x40023000 #include "crc.svd.frag" OTG_FS_GLOBAL USB_OTG_FS 0x50000000 0x0 0x400 registers OTG_FS_WKUP USB On-The-Go FS Wakeup through EXTI line interrupt 42 OTG_FS USB On The Go FS global interrupt 67 #include "usbotg_global.svd.frag" OTG_FS_HOST USB_OTG_FS 0x50000400 #include "usbotg_host.svd.frag" OTG_FS_DEVICE USB_OTG_FS 0x50000800 #include "usbotg_device.svd.frag" OTG_FS_PWRCLK USB on the go full speed USB_OTG_FS 0x50000E00 0x0 0x400 registers #include "usbotg_pwrclk.svd.frag" CAN1 0x40006400 CAN1_TX CAN1 TX interrupts 19 CAN1_RX0 CAN1 RX0 interrupts 20 CAN1_RX1 CAN1 RX1 interrupts 21 CAN1_SCE CAN1 SCE interrupt 22 #include "can.svd.frag" CAN2 0x40006800 CAN2_TX CAN2 TX interrupts 63 CAN2_RX0 CAN2 RX0 interrupts 64 CAN2_RX1 CAN2 RX1 interrupts 65 CAN2_SCE CAN2 SCE interrupt 66 FLASH 0x40023C00 FLASH Flash global interrupt 4 #include "flash.svd.frag" EXTI 0x40013C00 TAMP_STAMP Tamper and TimeStamp interrupts through the EXTI line 2 EXTI0 EXTI Line0 interrupt 6 EXTI1 EXTI Line1 interrupt 7 EXTI2 EXTI Line2 interrupt 8 EXTI3 EXTI Line3 interrupt 9 EXTI4 EXTI Line4 interrupt 10 EXTI9_5 EXTI Line[9:5] interrupts 23 EXTI15_10 EXTI Line[15:10] interrupts 40 #include "exti.svd.frag" OTG_HS_GLOBAL USB_OTG_HS 0x40040000 0x0 0xFFFC0400 registers 0xFFFC0400 0x40000 reserved OTG_HS_EP1_OUT USB On The Go HS End Point 1 Out global interrupt 74 OTG_HS_EP1_IN USB On The Go HS End Point 1 In global interrupt 75 OTG_HS_WKUP USB On The Go HS Wakeup through EXTI interrupt 76 OTG_HS USB On The Go HS global interrupt 77 #define __USBOTG_HS #include "usbotg_global.svd.frag" OTG_HS_HOST USB_OTG_HS 0x40040400 #define __USBOTG_HS #include "usbotg_host.svd.frag" OTG_HS_DEVICE USB_OTG_HS 0x40040800 #define __USBOTG_HS #include "usbotg_device.svd.frag" OTG_HS_PWRCLK USB_OTG_HS 0x40040E00 0x0 0x3F200 registers 0x3F200 0xFFFC1200 reserved #define __USBOTG_HS #include "usbotg_pwrclk.svd.frag" #include "nvic.svd.frag" #ifdef __HAVE_SAI SAI 0x40015800 SAI1 SAI1 global interrupt 87 #include "sai.svd.frag" #endif #ifdef __HAVE_DMA2D DMA2D 0x4002B000 DMA2D DMA2D global interrupt 90 #include "dma2d.svd.frag" #endif #ifdef __HAVE_LTDC LTDC 0x40016800 LCD_TFT LTDC global interrupt 88 LCD_TFT_1 LTDC global error interrupt 89 #include "ltdc.svd.frag" #endif