{$IFNDEF FPC_DOTTEDUNITS} unit stm32f401xe; {$ENDIF FPC_DOTTEDUNITS} (** ****************************************************************************** * @file stm32f401xe.h * @author MCD Application Team * @brief CMSIS STM32F401xE Device Peripheral Access Layer Header File. * * This file contains: * - Data structures and the address mapping for all peripherals * - peripherals registers declarations and bits definition * - Macros to access peripheral’s registers hardware * ****************************************************************************** * @attention * *

© Copyright (c) 2017 STMicroelectronics. * All rights reserved.

* * This software component is licensed by ST under BSD 3-Clause license, * the "License"; You may not use this file except in compliance with the * License. You may obtain a copy of the License at: * opensource.org/licenses/BSD-3-Clause * ****************************************************************************** *) interface {$PACKRECORDS C} {$GOTO ON} {$SCOPEDENUMS ON} type TIRQn_Enum = ( NonMaskableInt_IRQn = -14, MemoryManagement_IRQn = -12, BusFault_IRQn = -11, UsageFault_IRQn = -10, SVCall_IRQn = -5, DebugMonitor_IRQn = -4, PendSV_IRQn = -2, SysTick_IRQn = -1, WWDG_IRQn = 0, PVD_IRQn = 1, TAMP_STAMP_IRQn = 2, RTC_WKUP_IRQn = 3, FLASH_IRQn = 4, RCC_IRQn = 5, EXTI0_IRQn = 6, EXTI1_IRQn = 7, EXTI2_IRQn = 8, EXTI3_IRQn = 9, EXTI4_IRQn = 10, DMA1_Stream0_IRQn = 11, DMA1_Stream1_IRQn = 12, DMA1_Stream2_IRQn = 13, DMA1_Stream3_IRQn = 14, DMA1_Stream4_IRQn = 15, DMA1_Stream5_IRQn = 16, DMA1_Stream6_IRQn = 17, ADC_IRQn = 18, EXTI9_5_IRQn = 23, TIM1_BRK_TIM9_IRQn = 24, TIM1_UP_TIM10_IRQn = 25, TIM1_TRG_COM_TIM11_IRQn = 26, TIM1_CC_IRQn = 27, TIM2_IRQn = 28, TIM3_IRQn = 29, TIM4_IRQn = 30, I2C1_EV_IRQn = 31, I2C1_ER_IRQn = 32, I2C2_EV_IRQn = 33, I2C2_ER_IRQn = 34, SPI1_IRQn = 35, SPI2_IRQn = 36, USART1_IRQn = 37, USART2_IRQn = 38, EXTI15_10_IRQn = 40, RTC_Alarm_IRQn = 41, OTG_FS_WKUP_IRQn = 42, DMA1_Stream7_IRQn = 47, SDIO_IRQn = 49, TIM5_IRQn = 50, SPI3_IRQn = 51, DMA2_Stream0_IRQn = 56, DMA2_Stream1_IRQn = 57, DMA2_Stream2_IRQn = 58, DMA2_Stream3_IRQn = 59, DMA2_Stream4_IRQn = 60, OTG_FS_IRQn = 67, DMA2_Stream5_IRQn = 68, DMA2_Stream6_IRQn = 69, DMA2_Stream7_IRQn = 70, USART6_IRQn = 71, I2C3_EV_IRQn = 72, I2C3_ER_IRQn = 73, FPU_IRQn = 81, SPI4_IRQn = 84 ); TADC_Registers = record SR : longword; CR1 : longword; CR2 : longword; SMPR1 : longword; SMPR2 : longword; JOFR1 : longword; JOFR2 : longword; JOFR3 : longword; JOFR4 : longword; HTR : longword; LTR : longword; SQR1 : longword; SQR2 : longword; SQR3 : longword; JSQR : longword; JDR1 : longword; JDR2 : longword; JDR3 : longword; JDR4 : longword; DR : longword; end; TADC_Common_Registers = record CSR : longword; CCR : longword; CDR : longword; end; TCRC_Registers = record DR : longword; IDR : byte; RESERVED0 : byte; RESERVED1 : word; CR : longword; end; TDBGMCU_Registers = record IDCODE : longword; CR : longword; APB1FZ : longword; APB2FZ : longword; end; TDMA_Stream_Registers = record CR : longword; NDTR : longword; PAR : longword; M0AR : longword; M1AR : longword; FCR : longword; end; TDMA_Registers = record LISR : longword; HISR : longword; LIFCR : longword; HIFCR : longword; end; TEXTI_Registers = record IMR : longword; EMR : longword; RTSR : longword; FTSR : longword; SWIER : longword; PR : longword; end; TFLASH_Registers = record ACR : longword; KEYR : longword; OPTKEYR : longword; SR : longword; CR : longword; OPTCR : longword; OPTCR1 : longword; end; TGPIO_Registers = record MODER : longword; OTYPER : longword; OSPEEDR : longword; PUPDR : longword; IDR : longword; ODR : longword; BSRR : longword; LCKR : longword; AFR : array[0..1] of longword; end; TSYSCFG_Registers = record MEMRMP : longword; PMC : longword; EXTICR : array[0..3] of longword; RESERVED : array[0..1] of longword; CMPCR : longword; end; TI2C_Registers = record CR1 : longword; CR2 : longword; OAR1 : longword; OAR2 : longword; DR : longword; SR1 : longword; SR2 : longword; CCR : longword; TRISE : longword; FLTR : longword; end; TIWDG_Registers = record KR : longword; PR : longword; RLR : longword; SR : longword; end; TPWR_Registers = record CR : longword; CSR : longword; end; TRCC_Registers = record CR : longword; PLLCFGR : longword; CFGR : longword; CIR : longword; AHB1RSTR : longword; AHB2RSTR : longword; AHB3RSTR : longword; RESERVED0 : longword; APB1RSTR : longword; APB2RSTR : longword; RESERVED1 : array[0..1] of longword; AHB1ENR : longword; AHB2ENR : longword; AHB3ENR : longword; RESERVED2 : longword; APB1ENR : longword; APB2ENR : longword; RESERVED3 : array[0..1] of longword; AHB1LPENR : longword; AHB2LPENR : longword; AHB3LPENR : longword; RESERVED4 : longword; APB1LPENR : longword; APB2LPENR : longword; RESERVED5 : array[0..1] of longword; BDCR : longword; CSR : longword; RESERVED6 : array[0..1] of longword; SSCGR : longword; PLLI2SCFGR : longword; RESERVED7 : longword; DCKCFGR : longword; end; TRTC_Registers = record TR : longword; DR : longword; CR : longword; ISR : longword; PRER : longword; WUTR : longword; CALIBR : longword; ALRMAR : longword; ALRMBR : longword; WPR : longword; SSR : longword; SHIFTR : longword; TSTR : longword; TSDR : longword; TSSSR : longword; CALR : longword; TAFCR : longword; ALRMASSR : longword; ALRMBSSR : longword; RESERVED7 : longword; BKP0R : longword; BKP1R : longword; BKP2R : longword; BKP3R : longword; BKP4R : longword; BKP5R : longword; BKP6R : longword; BKP7R : longword; BKP8R : longword; BKP9R : longword; BKP10R : longword; BKP11R : longword; BKP12R : longword; BKP13R : longword; BKP14R : longword; BKP15R : longword; BKP16R : longword; BKP17R : longword; BKP18R : longword; BKP19R : longword; end; TSDIO_Registers = record POWER : longword; CLKCR : longword; ARG : longword; CMD : longword; RESPCMD : longword; RESP1 : longword; RESP2 : longword; RESP3 : longword; RESP4 : longword; DTIMER : longword; DLEN : longword; DCTRL : longword; DCOUNT : longword; STA : longword; ICR : longword; MASK : longword; RESERVED0 : array[0..1] of longword; FIFOCNT : longword; RESERVED1 : array[0..12] of longword; FIFO : longword; end; TSPI_Registers = record CR1 : longword; CR2 : longword; SR : longword; DR : longword; CRCPR : longword; RXCRCR : longword; TXCRCR : longword; I2SCFGR : longword; I2SPR : longword; end; TTIM_Registers = record CR1 : longword; CR2 : longword; SMCR : longword; DIER : longword; SR : longword; EGR : longword; CCMR1 : longword; CCMR2 : longword; CCER : longword; CNT : longword; PSC : longword; ARR : longword; RCR : longword; CCR1 : longword; CCR2 : longword; CCR3 : longword; CCR4 : longword; BDTR : longword; DCR : longword; DMAR : longword; &OR : longword; end; TUSART_Registers = record SR : longword; DR : longword; BRR : longword; CR1 : longword; CR2 : longword; CR3 : longword; GTPR : longword; end; TWWDG_Registers = record CR : longword; CFR : longword; SR : longword; end; TUSB_OTG_Global_Registers = record GOTGCTL : longword; GOTGINT : longword; GAHBCFG : longword; GUSBCFG : longword; GRSTCTL : longword; GINTSTS : longword; GINTMSK : longword; GRXSTSR : longword; GRXSTSP : longword; GRXFSIZ : longword; DIEPTXF0_HNPTXFSIZ : longword; HNPTXSTS : longword; Reserved30 : array[0..1] of longword; GCCFG : longword; CID : longword; Reserved40 : array[0..47] of longword; HPTXFSIZ : longword; DIEPTXF : array[0..14] of longword; end; TUSB_OTG_Device_Registers = record DCFG : longword; DCTL : longword; DSTS : longword; Reserved0C : longword; DIEPMSK : longword; DOEPMSK : longword; DAINT : longword; DAINTMSK : longword; Reserved20 : longword; Reserved9 : longword; DVBUSDIS : longword; DVBUSPULSE : longword; DTHRCTL : longword; DIEPEMPMSK : longword; DEACHINT : longword; DEACHMSK : longword; Reserved40 : longword; DINEP1MSK : longword; Reserved44 : array[0..14] of longword; DOUTEP1MSK : longword; end; TUSB_OTG_INEndpoint_Registers = record DIEPCTL : longword; Reserved04 : longword; DIEPINT : longword; Reserved0C : longword; DIEPTSIZ : longword; DIEPDMA : longword; DTXFSTS : longword; Reserved18 : longword; end; TUSB_OTG_OUTEndpoint_Registers = record DOEPCTL : longword; Reserved04 : longword; DOEPINT : longword; Reserved0C : longword; DOEPTSIZ : longword; DOEPDMA : longword; Reserved18 : array[0..1] of longword; end; TUSB_OTG_Host_Registers = record HCFG : longword; HFIR : longword; HFNUM : longword; Reserved40C : longword; HPTXSTS : longword; HAINT : longword; HAINTMSK : longword; end; TUSB_OTG_HostChannel_Registers = record HCCHAR : longword; HCSPLT : longword; HCINT : longword; HCINTMSK : longword; HCTSIZ : longword; HCDMA : longword; Reserved : array[0..1] of longword; end; const FLASH_BASE = $08000000; SRAM1_BASE = $20000000; PERIPH_BASE = $40000000; SRAM1_BB_BASE = $22000000; PERIPH_BB_BASE= $42000000; BKPSRAM_BB_BASE= $42480000; FLASH_OTP_BASE= $1FFF7800; SRAM_BASE = SRAM1_BASE; SRAM_BB_BASE = SRAM1_BB_BASE; APB1PERIPH_BASE= PERIPH_BASE; APB2PERIPH_BASE= PERIPH_BASE + $00010000; AHB1PERIPH_BASE= PERIPH_BASE + $00020000; AHB2PERIPH_BASE= PERIPH_BASE + $10000000; TIM2_BASE = APB1PERIPH_BASE + $0000; TIM3_BASE = APB1PERIPH_BASE + $0400; TIM4_BASE = APB1PERIPH_BASE + $0800; TIM5_BASE = APB1PERIPH_BASE + $0C00; RTC_BASE = APB1PERIPH_BASE + $2800; WWDG_BASE = APB1PERIPH_BASE + $2C00; IWDG_BASE = APB1PERIPH_BASE + $3000; I2S2ext_BASE = APB1PERIPH_BASE + $3400; SPI2_BASE = APB1PERIPH_BASE + $3800; SPI3_BASE = APB1PERIPH_BASE + $3C00; I2S3ext_BASE = APB1PERIPH_BASE + $4000; USART2_BASE = APB1PERIPH_BASE + $4400; I2C1_BASE = APB1PERIPH_BASE + $5400; I2C2_BASE = APB1PERIPH_BASE + $5800; I2C3_BASE = APB1PERIPH_BASE + $5C00; PWR_BASE = APB1PERIPH_BASE + $7000; TIM1_BASE = APB2PERIPH_BASE + $0000; USART1_BASE = APB2PERIPH_BASE + $1000; USART6_BASE = APB2PERIPH_BASE + $1400; ADC1_BASE = APB2PERIPH_BASE + $2000; ADC1_COMMON_BASE= APB2PERIPH_BASE + $2300; ADC_BASE = ADC1_COMMON_BASE; SDIO_BASE = APB2PERIPH_BASE + $2C00; SPI1_BASE = APB2PERIPH_BASE + $3000; SPI4_BASE = APB2PERIPH_BASE + $3400; SYSCFG_BASE = APB2PERIPH_BASE + $3800; EXTI_BASE = APB2PERIPH_BASE + $3C00; TIM9_BASE = APB2PERIPH_BASE + $4000; TIM10_BASE = APB2PERIPH_BASE + $4400; TIM11_BASE = APB2PERIPH_BASE + $4800; GPIOA_BASE = AHB1PERIPH_BASE + $0000; GPIOB_BASE = AHB1PERIPH_BASE + $0400; GPIOC_BASE = AHB1PERIPH_BASE + $0800; GPIOD_BASE = AHB1PERIPH_BASE + $0C00; GPIOE_BASE = AHB1PERIPH_BASE + $1000; GPIOH_BASE = AHB1PERIPH_BASE + $1C00; CRC_BASE = AHB1PERIPH_BASE + $3000; RCC_BASE = AHB1PERIPH_BASE + $3800; FLASH_R_BASE = AHB1PERIPH_BASE + $3C00; DMA1_BASE = AHB1PERIPH_BASE + $6000; DMA1_Stream0_BASE= DMA1_BASE + $010; DMA1_Stream1_BASE= DMA1_BASE + $028; DMA1_Stream2_BASE= DMA1_BASE + $040; DMA1_Stream3_BASE= DMA1_BASE + $058; DMA1_Stream4_BASE= DMA1_BASE + $070; DMA1_Stream5_BASE= DMA1_BASE + $088; DMA1_Stream6_BASE= DMA1_BASE + $0A0; DMA1_Stream7_BASE= DMA1_BASE + $0B8; DMA2_BASE = AHB1PERIPH_BASE + $6400; DMA2_Stream0_BASE= DMA2_BASE + $010; DMA2_Stream1_BASE= DMA2_BASE + $028; DMA2_Stream2_BASE= DMA2_BASE + $040; DMA2_Stream3_BASE= DMA2_BASE + $058; DMA2_Stream4_BASE= DMA2_BASE + $070; DMA2_Stream5_BASE= DMA2_BASE + $088; DMA2_Stream6_BASE= DMA2_BASE + $0A0; DMA2_Stream7_BASE= DMA2_BASE + $0B8; DBGMCU_BASE = $E0042000; USB_OTG_FS_PERIPH_BASE= $50000000; USB_OTG_GLOBAL_BASE= $000; USB_OTG_DEVICE_BASE= $800; USB_OTG_IN_ENDPOINT_BASE= $900; USB_OTG_OUT_ENDPOINT_BASE= $B00; USB_OTG_HOST_BASE= $400; USB_OTG_HOST_PORT_BASE= $440; USB_OTG_HOST_CHANNEL_BASE= $500; USB_OTG_PCGCCTL_BASE= $E00; USB_OTG_FIFO_BASE= $1000; UID_BASE = $1FFF7A10; FLASHSIZE_BASE= $1FFF7A22; PACKAGE_BASE = $1FFF7BF0; var TIM2 : TTIM_Registers absolute TIM2_BASE; TIM3 : TTIM_Registers absolute TIM3_BASE; TIM4 : TTIM_Registers absolute TIM4_BASE; TIM5 : TTIM_Registers absolute TIM5_BASE; RTC : TRTC_Registers absolute RTC_BASE; WWDG : TWWDG_Registers absolute WWDG_BASE; IWDG : TIWDG_Registers absolute IWDG_BASE; I2S2ext : TSPI_Registers absolute I2S2ext_BASE; SPI2 : TSPI_Registers absolute SPI2_BASE; SPI3 : TSPI_Registers absolute SPI3_BASE; I2S3ext : TSPI_Registers absolute I2S3ext_BASE; USART2 : TUSART_Registers absolute USART2_BASE; I2C1 : TI2C_Registers absolute I2C1_BASE; I2C2 : TI2C_Registers absolute I2C2_BASE; I2C3 : TI2C_Registers absolute I2C3_BASE; PWR : TPWR_Registers absolute PWR_BASE; TIM1 : TTIM_Registers absolute TIM1_BASE; USART1 : TUSART_Registers absolute USART1_BASE; USART6 : TUSART_Registers absolute USART6_BASE; ADC1 : TADC_Registers absolute ADC1_BASE; ADC1_COMMON : TADC_Common_Registers absolute ADC1_COMMON_BASE; SDIO : TSDIO_Registers absolute SDIO_BASE; SPI1 : TSPI_Registers absolute SPI1_BASE; SPI4 : TSPI_Registers absolute SPI4_BASE; SYSCFG : TSYSCFG_Registers absolute SYSCFG_BASE; EXTI : TEXTI_Registers absolute EXTI_BASE; TIM9 : TTIM_Registers absolute TIM9_BASE; TIM10 : TTIM_Registers absolute TIM10_BASE; TIM11 : TTIM_Registers absolute TIM11_BASE; GPIOA : TGPIO_Registers absolute GPIOA_BASE; GPIOB : TGPIO_Registers absolute GPIOB_BASE; GPIOC : TGPIO_Registers absolute GPIOC_BASE; GPIOD : TGPIO_Registers absolute GPIOD_BASE; GPIOE : TGPIO_Registers absolute GPIOE_BASE; GPIOH : TGPIO_Registers absolute GPIOH_BASE; CRC : TCRC_Registers absolute CRC_BASE; RCC : TRCC_Registers absolute RCC_BASE; FLASH : TFLASH_Registers absolute FLASH_R_BASE; DMA1 : TDMA_Registers absolute DMA1_BASE; DMA1_Stream0 : TDMA_Stream_Registers absolute DMA1_Stream0_BASE; DMA1_Stream1 : TDMA_Stream_Registers absolute DMA1_Stream1_BASE; DMA1_Stream2 : TDMA_Stream_Registers absolute DMA1_Stream2_BASE; DMA1_Stream3 : TDMA_Stream_Registers absolute DMA1_Stream3_BASE; DMA1_Stream4 : TDMA_Stream_Registers absolute DMA1_Stream4_BASE; DMA1_Stream5 : TDMA_Stream_Registers absolute DMA1_Stream5_BASE; DMA1_Stream6 : TDMA_Stream_Registers absolute DMA1_Stream6_BASE; DMA1_Stream7 : TDMA_Stream_Registers absolute DMA1_Stream7_BASE; DMA2 : TDMA_Registers absolute DMA2_BASE; DMA2_Stream0 : TDMA_Stream_Registers absolute DMA2_Stream0_BASE; DMA2_Stream1 : TDMA_Stream_Registers absolute DMA2_Stream1_BASE; DMA2_Stream2 : TDMA_Stream_Registers absolute DMA2_Stream2_BASE; DMA2_Stream3 : TDMA_Stream_Registers absolute DMA2_Stream3_BASE; DMA2_Stream4 : TDMA_Stream_Registers absolute DMA2_Stream4_BASE; DMA2_Stream5 : TDMA_Stream_Registers absolute DMA2_Stream5_BASE; DMA2_Stream6 : TDMA_Stream_Registers absolute DMA2_Stream6_BASE; DMA2_Stream7 : TDMA_Stream_Registers absolute DMA2_Stream7_BASE; DBGMCU : TDBGMCU_Registers absolute DBGMCU_BASE; implementation procedure NonMaskableInt_Handler; external name 'NonMaskableInt_Handler'; procedure MemoryManagement_Handler; external name 'MemoryManagement_Handler'; procedure BusFault_Handler; external name 'BusFault_Handler'; procedure UsageFault_Handler; external name 'UsageFault_Handler'; procedure SVCall_Handler; external name 'SVCall_Handler'; procedure DebugMonitor_Handler; external name 'DebugMonitor_Handler'; procedure PendSV_Handler; external name 'PendSV_Handler'; procedure SysTick_Handler; external name 'SysTick_Handler'; procedure WWDG_Handler; external name 'WWDG_Handler'; procedure PVD_Handler; external name 'PVD_Handler'; procedure TAMP_STAMP_Handler; external name 'TAMP_STAMP_Handler'; procedure RTC_WKUP_Handler; external name 'RTC_WKUP_Handler'; procedure FLASH_Handler; external name 'FLASH_Handler'; procedure RCC_Handler; external name 'RCC_Handler'; procedure EXTI0_Handler; external name 'EXTI0_Handler'; procedure EXTI1_Handler; external name 'EXTI1_Handler'; procedure EXTI2_Handler; external name 'EXTI2_Handler'; procedure EXTI3_Handler; external name 'EXTI3_Handler'; procedure EXTI4_Handler; external name 'EXTI4_Handler'; procedure DMA1_Stream0_Handler; external name 'DMA1_Stream0_Handler'; procedure DMA1_Stream1_Handler; external name 'DMA1_Stream1_Handler'; procedure DMA1_Stream2_Handler; external name 'DMA1_Stream2_Handler'; procedure DMA1_Stream3_Handler; external name 'DMA1_Stream3_Handler'; procedure DMA1_Stream4_Handler; external name 'DMA1_Stream4_Handler'; procedure DMA1_Stream5_Handler; external name 'DMA1_Stream5_Handler'; procedure DMA1_Stream6_Handler; external name 'DMA1_Stream6_Handler'; procedure ADC_Handler; external name 'ADC_Handler'; procedure EXTI9_5_Handler; external name 'EXTI9_5_Handler'; procedure TIM1_BRK_TIM9_Handler; external name 'TIM1_BRK_TIM9_Handler'; procedure TIM1_UP_TIM10_Handler; external name 'TIM1_UP_TIM10_Handler'; procedure TIM1_TRG_COM_TIM11_Handler; external name 'TIM1_TRG_COM_TIM11_Handler'; procedure TIM1_CC_Handler; external name 'TIM1_CC_Handler'; procedure TIM2_Handler; external name 'TIM2_Handler'; procedure TIM3_Handler; external name 'TIM3_Handler'; procedure TIM4_Handler; external name 'TIM4_Handler'; procedure I2C1_EV_Handler; external name 'I2C1_EV_Handler'; procedure I2C1_ER_Handler; external name 'I2C1_ER_Handler'; procedure I2C2_EV_Handler; external name 'I2C2_EV_Handler'; procedure I2C2_ER_Handler; external name 'I2C2_ER_Handler'; procedure SPI1_Handler; external name 'SPI1_Handler'; procedure SPI2_Handler; external name 'SPI2_Handler'; procedure USART1_Handler; external name 'USART1_Handler'; procedure USART2_Handler; external name 'USART2_Handler'; procedure EXTI15_10_Handler; external name 'EXTI15_10_Handler'; procedure RTC_Alarm_Handler; external name 'RTC_Alarm_Handler'; procedure OTG_FS_WKUP_Handler; external name 'OTG_FS_WKUP_Handler'; procedure DMA1_Stream7_Handler; external name 'DMA1_Stream7_Handler'; procedure SDIO_Handler; external name 'SDIO_Handler'; procedure TIM5_Handler; external name 'TIM5_Handler'; procedure SPI3_Handler; external name 'SPI3_Handler'; procedure DMA2_Stream0_Handler; external name 'DMA2_Stream0_Handler'; procedure DMA2_Stream1_Handler; external name 'DMA2_Stream1_Handler'; procedure DMA2_Stream2_Handler; external name 'DMA2_Stream2_Handler'; procedure DMA2_Stream3_Handler; external name 'DMA2_Stream3_Handler'; procedure DMA2_Stream4_Handler; external name 'DMA2_Stream4_Handler'; procedure OTG_FS_Handler; external name 'OTG_FS_Handler'; procedure DMA2_Stream5_Handler; external name 'DMA2_Stream5_Handler'; procedure DMA2_Stream6_Handler; external name 'DMA2_Stream6_Handler'; procedure DMA2_Stream7_Handler; external name 'DMA2_Stream7_Handler'; procedure USART6_Handler; external name 'USART6_Handler'; procedure I2C3_EV_Handler; external name 'I2C3_EV_Handler'; procedure I2C3_ER_Handler; external name 'I2C3_ER_Handler'; procedure FPU_Handler; external name 'FPU_Handler'; procedure SPI4_Handler; external name 'SPI4_Handler'; {$i cortexm4f_start.inc} procedure Vectors; assembler; nostackframe; label interrupt_vectors; asm .section ".init.interrupt_vectors" interrupt_vectors: .long _stack_top .long Startup .long NonMaskableInt_Handler .long 0 .long MemoryManagement_Handler .long BusFault_Handler .long UsageFault_Handler .long 0 .long 0 .long 0 .long 0 .long SVCall_Handler .long DebugMonitor_Handler .long 0 .long PendSV_Handler .long SysTick_Handler .long WWDG_Handler .long PVD_Handler .long TAMP_STAMP_Handler .long RTC_WKUP_Handler .long FLASH_Handler .long RCC_Handler .long EXTI0_Handler .long EXTI1_Handler .long EXTI2_Handler .long EXTI3_Handler .long EXTI4_Handler .long DMA1_Stream0_Handler .long DMA1_Stream1_Handler .long DMA1_Stream2_Handler .long DMA1_Stream3_Handler .long DMA1_Stream4_Handler .long DMA1_Stream5_Handler .long DMA1_Stream6_Handler .long ADC_Handler .long 0 .long 0 .long 0 .long 0 .long EXTI9_5_Handler .long TIM1_BRK_TIM9_Handler .long TIM1_UP_TIM10_Handler .long TIM1_TRG_COM_TIM11_Handler .long TIM1_CC_Handler .long TIM2_Handler .long TIM3_Handler .long TIM4_Handler .long I2C1_EV_Handler .long I2C1_ER_Handler .long I2C2_EV_Handler .long I2C2_ER_Handler .long SPI1_Handler .long SPI2_Handler .long USART1_Handler .long USART2_Handler .long 0 .long EXTI15_10_Handler .long RTC_Alarm_Handler .long OTG_FS_WKUP_Handler .long 0 .long 0 .long 0 .long 0 .long DMA1_Stream7_Handler .long 0 .long SDIO_Handler .long TIM5_Handler .long SPI3_Handler .long 0 .long 0 .long 0 .long 0 .long DMA2_Stream0_Handler .long DMA2_Stream1_Handler .long DMA2_Stream2_Handler .long DMA2_Stream3_Handler .long DMA2_Stream4_Handler .long 0 .long 0 .long 0 .long 0 .long 0 .long 0 .long OTG_FS_Handler .long DMA2_Stream5_Handler .long DMA2_Stream6_Handler .long DMA2_Stream7_Handler .long USART6_Handler .long I2C3_EV_Handler .long I2C3_ER_Handler .long 0 .long 0 .long 0 .long 0 .long 0 .long 0 .long 0 .long FPU_Handler .long 0 .long 0 .long SPI4_Handler .weak NonMaskableInt_Handler .weak MemoryManagement_Handler .weak BusFault_Handler .weak UsageFault_Handler .weak SVCall_Handler .weak DebugMonitor_Handler .weak PendSV_Handler .weak SysTick_Handler .weak WWDG_Handler .weak PVD_Handler .weak TAMP_STAMP_Handler .weak RTC_WKUP_Handler .weak FLASH_Handler .weak RCC_Handler .weak EXTI0_Handler .weak EXTI1_Handler .weak EXTI2_Handler .weak EXTI3_Handler .weak EXTI4_Handler .weak DMA1_Stream0_Handler .weak DMA1_Stream1_Handler .weak DMA1_Stream2_Handler .weak DMA1_Stream3_Handler .weak DMA1_Stream4_Handler .weak DMA1_Stream5_Handler .weak DMA1_Stream6_Handler .weak ADC_Handler .weak EXTI9_5_Handler .weak TIM1_BRK_TIM9_Handler .weak TIM1_UP_TIM10_Handler .weak TIM1_TRG_COM_TIM11_Handler .weak TIM1_CC_Handler .weak TIM2_Handler .weak TIM3_Handler .weak TIM4_Handler .weak I2C1_EV_Handler .weak I2C1_ER_Handler .weak I2C2_EV_Handler .weak I2C2_ER_Handler .weak SPI1_Handler .weak SPI2_Handler .weak USART1_Handler .weak USART2_Handler .weak EXTI15_10_Handler .weak RTC_Alarm_Handler .weak OTG_FS_WKUP_Handler .weak DMA1_Stream7_Handler .weak SDIO_Handler .weak TIM5_Handler .weak SPI3_Handler .weak DMA2_Stream0_Handler .weak DMA2_Stream1_Handler .weak DMA2_Stream2_Handler .weak DMA2_Stream3_Handler .weak DMA2_Stream4_Handler .weak OTG_FS_Handler .weak DMA2_Stream5_Handler .weak DMA2_Stream6_Handler .weak DMA2_Stream7_Handler .weak USART6_Handler .weak I2C3_EV_Handler .weak I2C3_ER_Handler .weak FPU_Handler .weak SPI4_Handler .set NonMaskableInt_Handler, Haltproc .set MemoryManagement_Handler, Haltproc .set BusFault_Handler, Haltproc .set UsageFault_Handler, Haltproc .set SVCall_Handler, Haltproc .set DebugMonitor_Handler, Haltproc .set PendSV_Handler, Haltproc .set SysTick_Handler, Haltproc .set WWDG_Handler, Haltproc .set PVD_Handler, Haltproc .set TAMP_STAMP_Handler, Haltproc .set RTC_WKUP_Handler, Haltproc .set FLASH_Handler, Haltproc .set RCC_Handler, Haltproc .set EXTI0_Handler, Haltproc .set EXTI1_Handler, Haltproc .set EXTI2_Handler, Haltproc .set EXTI3_Handler, Haltproc .set EXTI4_Handler, Haltproc .set DMA1_Stream0_Handler, Haltproc .set DMA1_Stream1_Handler, Haltproc .set DMA1_Stream2_Handler, Haltproc .set DMA1_Stream3_Handler, Haltproc .set DMA1_Stream4_Handler, Haltproc .set DMA1_Stream5_Handler, Haltproc .set DMA1_Stream6_Handler, Haltproc .set ADC_Handler, Haltproc .set EXTI9_5_Handler, Haltproc .set TIM1_BRK_TIM9_Handler, Haltproc .set TIM1_UP_TIM10_Handler, Haltproc .set TIM1_TRG_COM_TIM11_Handler, Haltproc .set TIM1_CC_Handler, Haltproc .set TIM2_Handler, Haltproc .set TIM3_Handler, Haltproc .set TIM4_Handler, Haltproc .set I2C1_EV_Handler, Haltproc .set I2C1_ER_Handler, Haltproc .set I2C2_EV_Handler, Haltproc .set I2C2_ER_Handler, Haltproc .set SPI1_Handler, Haltproc .set SPI2_Handler, Haltproc .set USART1_Handler, Haltproc .set USART2_Handler, Haltproc .set EXTI15_10_Handler, Haltproc .set RTC_Alarm_Handler, Haltproc .set OTG_FS_WKUP_Handler, Haltproc .set DMA1_Stream7_Handler, Haltproc .set SDIO_Handler, Haltproc .set TIM5_Handler, Haltproc .set SPI3_Handler, Haltproc .set DMA2_Stream0_Handler, Haltproc .set DMA2_Stream1_Handler, Haltproc .set DMA2_Stream2_Handler, Haltproc .set DMA2_Stream3_Handler, Haltproc .set DMA2_Stream4_Handler, Haltproc .set OTG_FS_Handler, Haltproc .set DMA2_Stream5_Handler, Haltproc .set DMA2_Stream6_Handler, Haltproc .set DMA2_Stream7_Handler, Haltproc .set USART6_Handler, Haltproc .set I2C3_EV_Handler, Haltproc .set I2C3_ER_Handler, Haltproc .set FPU_Handler, Haltproc .set SPI4_Handler, Haltproc .text end; end.