unit stm32f407xx;
interface
{$PACKRECORDS 2}
{$GOTO ON}
{$MODESWITCH ADVANCEDRECORDS}
// *
// ******************************************************************************
// * @file stm32f407xx.h
// * @author MCD Application Team
// * @version V2.4.0
// * @date 14-August-2015
// CMSIS STM32F407xx Device Peripheral Access Layer Header File.
// *
// * This file contains:
// * - Data structures and the address mapping for all peripherals
// * - Peripheral's registers declarations and bits definition
// * - Macros to access peripheral’s registers hardware
// *
// ******************************************************************************
// * @attention
// *
// *
© COPYRIGHT(c) 2015 STMicroelectronics
// *
// * Redistribution and use in source and binary forms, with or without modification,
// * are permitted provided that the following conditions are met:
// * 1. Redistributions of source code must retain the above copyright notice,
// * this list of conditions and the following disclaimer.
// * 2. Redistributions in binary form must reproduce the above copyright notice,
// * this list of conditions and the following disclaimer in the documentation
// * and/or other materials provided with the distribution.
// * 3. Neither the name of STMicroelectronics nor the names of its contributors
// * may be used to endorse or promote products derived from this software
// * without specific prior written permission.
// *
// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
// * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
// * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// *
// ******************************************************************************
// Configuration of the Cortex-M4 Processor and Core Peripherals
// STM32F4XX Interrupt Number Definition, according to the selected device
// * in @ref Library_configuration_section
type
TIRQn_Enum = (
NonMaskableInt_IRQn = -14, // 2 Non Maskable Interrupt
MemoryManagement_IRQn = -12, // 4 Cortex-M4 Memory Management Interrupt
BusFault_IRQn = -11, // 5 Cortex-M4 Bus Fault Interrupt
UsageFault_IRQn = -10, // 6 Cortex-M4 Usage Fault Interrupt
SVCall_IRQn = -5, // 11 Cortex-M4 SV Call Interrupt
DebugMonitor_IRQn = -4, // 12 Cortex-M4 Debug Monitor Interrupt
PendSV_IRQn = -2, // 14 Cortex-M4 Pend SV Interrupt
SysTick_IRQn = -1, // 15 Cortex-M4 System Tick Interrupt
WWDG_IRQn = 0, // Window WatchDog Interrupt
PVD_IRQn = 1, // PVD through EXTI Line detection Interrupt
TAMP_STAMP_IRQn = 2, // Tamper and TimeStamp interrupts through the EXTI line
RTC_WKUP_IRQn = 3, // RTC Wakeup interrupt through the EXTI line
FLASH_IRQn = 4, // FLASH global Interrupt
RCC_IRQn = 5, // RCC global Interrupt
EXTI0_IRQn = 6, // EXTI Line0 Interrupt
EXTI1_IRQn = 7, // EXTI Line1 Interrupt
EXTI2_IRQn = 8, // EXTI Line2 Interrupt
EXTI3_IRQn = 9, // EXTI Line3 Interrupt
EXTI4_IRQn = 10, // EXTI Line4 Interrupt
DMA1_Stream0_IRQn = 11, // DMA1 Stream 0 global Interrupt
DMA1_Stream1_IRQn = 12, // DMA1 Stream 1 global Interrupt
DMA1_Stream2_IRQn = 13, // DMA1 Stream 2 global Interrupt
DMA1_Stream3_IRQn = 14, // DMA1 Stream 3 global Interrupt
DMA1_Stream4_IRQn = 15, // DMA1 Stream 4 global Interrupt
DMA1_Stream5_IRQn = 16, // DMA1 Stream 5 global Interrupt
DMA1_Stream6_IRQn = 17, // DMA1 Stream 6 global Interrupt
ADC_IRQn = 18, // ADC1, ADC2 and ADC3 global Interrupts
CAN1_TX_IRQn = 19, // CAN1 TX Interrupt
CAN1_RX0_IRQn = 20, // CAN1 RX0 Interrupt
CAN1_RX1_IRQn = 21, // CAN1 RX1 Interrupt
CAN1_SCE_IRQn = 22, // CAN1 SCE Interrupt
EXTI9_5_IRQn = 23, // External Line[9:5] Interrupts
TIM1_BRK_TIM9_IRQn = 24, // TIM1 Break interrupt and TIM9 global interrupt
TIM1_UP_TIM10_IRQn = 25, // TIM1 Update Interrupt and TIM10 global interrupt
TIM1_TRG_COM_TIM11_IRQn = 26, // TIM1 Trigger and Commutation Interrupt and TIM11 global interrupt
TIM1_CC_IRQn = 27, // TIM1 Capture Compare Interrupt
TIM2_IRQn = 28, // TIM2 global Interrupt
TIM3_IRQn = 29, // TIM3 global Interrupt
TIM4_IRQn = 30, // TIM4 global Interrupt
I2C1_EV_IRQn = 31, // I2C1 Event Interrupt
I2C1_ER_IRQn = 32, // I2C1 Error Interrupt
I2C2_EV_IRQn = 33, // I2C2 Event Interrupt
I2C2_ER_IRQn = 34, // I2C2 Error Interrupt
SPI1_IRQn = 35, // SPI1 global Interrupt
SPI2_IRQn = 36, // SPI2 global Interrupt
USART1_IRQn = 37, // USART1 global Interrupt
USART2_IRQn = 38, // USART2 global Interrupt
USART3_IRQn = 39, // USART3 global Interrupt
EXTI15_10_IRQn = 40, // External Line[15:10] Interrupts
RTC_Alarm_IRQn = 41, // RTC Alarm (A and B) through EXTI Line Interrupt
OTG_FS_WKUP_IRQn = 42, // USB OTG FS Wakeup through EXTI line interrupt
TIM8_BRK_TIM12_IRQn = 43, // TIM8 Break Interrupt and TIM12 global interrupt
TIM8_UP_TIM13_IRQn = 44, // TIM8 Update Interrupt and TIM13 global interrupt
TIM8_TRG_COM_TIM14_IRQn = 45, // TIM8 Trigger and Commutation Interrupt and TIM14 global interrupt
TIM8_CC_IRQn = 46, // TIM8 Capture Compare Interrupt
DMA1_Stream7_IRQn = 47, // DMA1 Stream7 Interrupt
FSMC_IRQn = 48, // FSMC global Interrupt
SDIO_IRQn = 49, // SDIO global Interrupt
TIM5_IRQn = 50, // TIM5 global Interrupt
SPI3_IRQn = 51, // SPI3 global Interrupt
UART4_IRQn = 52, // UART4 global Interrupt
UART5_IRQn = 53, // UART5 global Interrupt
TIM6_DAC_IRQn = 54, // TIM6 global and DAC1&2 underrun error interrupts
TIM7_IRQn = 55, // TIM7 global interrupt
DMA2_Stream0_IRQn = 56, // DMA2 Stream 0 global Interrupt
DMA2_Stream1_IRQn = 57, // DMA2 Stream 1 global Interrupt
DMA2_Stream2_IRQn = 58, // DMA2 Stream 2 global Interrupt
DMA2_Stream3_IRQn = 59, // DMA2 Stream 3 global Interrupt
DMA2_Stream4_IRQn = 60, // DMA2 Stream 4 global Interrupt
ETH_IRQn = 61, // Ethernet global Interrupt
ETH_WKUP_IRQn = 62, // Ethernet Wakeup through EXTI line Interrupt
CAN2_TX_IRQn = 63, // CAN2 TX Interrupt
CAN2_RX0_IRQn = 64, // CAN2 RX0 Interrupt
CAN2_RX1_IRQn = 65, // CAN2 RX1 Interrupt
CAN2_SCE_IRQn = 66, // CAN2 SCE Interrupt
OTG_FS_IRQn = 67, // USB OTG FS global Interrupt
DMA2_Stream5_IRQn = 68, // DMA2 Stream 5 global interrupt
DMA2_Stream6_IRQn = 69, // DMA2 Stream 6 global interrupt
DMA2_Stream7_IRQn = 70, // DMA2 Stream 7 global interrupt
USART6_IRQn = 71, // USART6 global interrupt
I2C3_EV_IRQn = 72, // I2C3 event interrupt
I2C3_ER_IRQn = 73, // I2C3 error interrupt
OTG_HS_EP1_OUT_IRQn = 74, // USB OTG HS End Point 1 Out global interrupt
OTG_HS_EP1_IN_IRQn = 75, // USB OTG HS End Point 1 In global interrupt
OTG_HS_WKUP_IRQn = 76, // USB OTG HS Wakeup through EXTI interrupt
OTG_HS_IRQn = 77, // USB OTG HS global interrupt
DCMI_IRQn = 78, // DCMI global interrupt
HASH_RNG_IRQn = 80, // Hash and RNG global interrupt
FPU_IRQn = 81 // FPU global interrupt
);
TADC_Registers = record
SR : longword; // ADC status register
CR1 : longword; // ADC control register 1
CR2 : longword; // ADC control register 2
SMPR1 : longword; // ADC sample time register 1
SMPR2 : longword; // ADC sample time register 2
JOFR1 : longword; // ADC injected channel data offset register 1
JOFR2 : longword; // ADC injected channel data offset register 2
JOFR3 : longword; // ADC injected channel data offset register 3
JOFR4 : longword; // ADC injected channel data offset register 4
HTR : longword; // ADC watchdog higher threshold register
LTR : longword; // ADC watchdog lower threshold register
SQR1 : longword; // ADC regular sequence register 1
SQR2 : longword; // ADC regular sequence register 2
SQR3 : longword; // ADC regular sequence register 3
JSQR : longword; // ADC injected sequence register
JDR1 : longword; // ADC injected data register 1
JDR2 : longword; // ADC injected data register 2
JDR3 : longword; // ADC injected data register 3
JDR4 : longword; // ADC injected data register 4
DR : longword; // ADC regular data register
end;
TADC_COMMON_Registers = record
CSR : longword; // ADC Common status register
CCR : longword; // ADC common control register
CDR : longword; // ADC common regular data register for dual
end;
TCAN_TXMAILBOX_Registers = record
TIR : longword; // CAN TX mailbox identifier register
TDTR : longword; // CAN mailbox data length control and time stamp register
TDLR : longword; // CAN mailbox data low register
TDHR : longword; // CAN mailbox data high register
end;
TCAN_FIFOMAILBOX_Registers = record
RIR : longword; // CAN receive FIFO mailbox identifier register
RDTR : longword; // CAN receive FIFO mailbox data length control and time stamp register
RDLR : longword; // CAN receive FIFO mailbox data low register
RDHR : longword; // CAN receive FIFO mailbox data high register
end;
TCAN_FILTERREGISTER_Registers = record
FR1 : longword; // CAN Filter bank register 1
FR2 : longword; // CAN Filter bank register 1
end;
TCAN_Registers = record
MCR : longword; // CAN master control register
MSR : longword; // CAN master status register
TSR : longword; // CAN transmit status register
RF0R : longword; // CAN receive FIFO 0 register
RF1R : longword; // CAN receive FIFO 1 register
IER : longword; // CAN interrupt enable register
ESR : longword; // CAN error status register
BTR : longword; // CAN bit timing register
RESERVED0 : array[0..87] of longword; // Reserved, 0x020 - 0x17F
sTxMailBox : array[0..2] of TCAN_TXMAILBOX_Registers; // CAN Tx MailBox
sFIFOMailBox : array[0..1] of TCAN_FIFOMAILBOX_Registers; // CAN FIFO MailBox
RESERVED1 : array[0..11] of longword; // Reserved, 0x1D0 - 0x1FF
FMR : longword; // CAN filter master register
FM1R : longword; // CAN filter mode register
RESERVED2 : longword; // Reserved, 0x208
FS1R : longword; // CAN filter scale register
RESERVED3 : longword; // Reserved, 0x210
FFA1R : longword; // CAN filter FIFO assignment register
RESERVED4 : longword; // Reserved, 0x218
FA1R : longword; // CAN filter activation register
RESERVED5 : array[0..7] of longword; // Reserved, 0x220-0x23F
sFilterRegister : array[0..27] of TCAN_FILTERREGISTER_Registers; // CAN Filter Register
end;
TCRC_Registers = record
DR : longword; // CRC Data register
IDR : byte; // CRC Independent data register
RESERVED0 : byte; // Reserved, 0x05
RESERVED1 : word; // Reserved, 0x06
CR : longword; // CRC Control register
end;
TDAC_Registers = record
CR : longword; // DAC control register
SWTRIGR : longword; // DAC software trigger register
DHR12R1 : longword; // DAC channel1 12-bit right-aligned data holding register
DHR12L1 : longword; // DAC channel1 12-bit left aligned data holding register
DHR8R1 : longword; // DAC channel1 8-bit right aligned data holding register
DHR12R2 : longword; // DAC channel2 12-bit right aligned data holding register
DHR12L2 : longword; // DAC channel2 12-bit left aligned data holding register
DHR8R2 : longword; // DAC channel2 8-bit right-aligned data holding register
DHR12RD : longword; // Dual DAC 12-bit right-aligned data holding register
DHR12LD : longword; // DUAL DAC 12-bit left aligned data holding register
DHR8RD : longword; // DUAL DAC 8-bit right aligned data holding register
DOR1 : longword; // DAC channel1 data output register
DOR2 : longword; // DAC channel2 data output register
SR : longword; // DAC status register
end;
TDBGMCU_Registers = record
IDCODE : longword; // MCU device ID code
CR : longword; // Debug MCU configuration register
APB1FZ : longword; // Debug MCU APB1 freeze register
APB2FZ : longword; // Debug MCU APB2 freeze register
end;
TDCMI_Registers = record
CR : longword; // DCMI control register 1
SR : longword; // DCMI status register
RISR : longword; // DCMI raw interrupt status register
IER : longword; // DCMI interrupt enable register
MISR : longword; // DCMI masked interrupt status register
ICR : longword; // DCMI interrupt clear register
ESCR : longword; // DCMI embedded synchronization code register
ESUR : longword; // DCMI embedded synchronization unmask register
CWSTRTR : longword; // DCMI crop window start
CWSIZER : longword; // DCMI crop window size
DR : longword; // DCMI data register
end;
TDMA_STREAM_Registers = record
CR : longword; // DMA stream x configuration register
NDTR : longword; // DMA stream x number of data register
PAR : longword; // DMA stream x peripheral address register
M0AR : longword; // DMA stream x memory 0 address register
M1AR : longword; // DMA stream x memory 1 address register
FCR : longword; // DMA stream x FIFO control register
end;
TDMA_Registers = record
LISR : longword; // DMA low interrupt status register
HISR : longword; // DMA high interrupt status register
LIFCR : longword; // DMA low interrupt flag clear register
HIFCR : longword; // DMA high interrupt flag clear register
end;
TETH_Registers = record
MACCR : longword;
MACFFR : longword;
MACHTHR : longword;
MACHTLR : longword;
MACMIIAR : longword;
MACMIIDR : longword;
MACFCR : longword;
MACVLANTR : longword; // 8
RESERVED0 : array[0..1] of longword;
MACRWUFFR : longword; // 11
MACPMTCSR : longword;
RESERVED1 : array[0..1] of longword;
MACSR : longword; // 15
MACIMR : longword;
MACA0HR : longword;
MACA0LR : longword;
MACA1HR : longword;
MACA1LR : longword;
MACA2HR : longword;
MACA2LR : longword;
MACA3HR : longword;
MACA3LR : longword; // 24
RESERVED2 : array[0..39] of longword;
MMCCR : longword; // 65
MMCRIR : longword;
MMCTIR : longword;
MMCRIMR : longword;
MMCTIMR : longword; // 69
RESERVED3 : array[0..13] of longword;
MMCTGFSCCR : longword; // 84
MMCTGFMSCCR : longword;
RESERVED4 : array[0..4] of longword;
MMCTGFCR : longword;
RESERVED5 : array[0..9] of longword;
MMCRFCECR : longword;
MMCRFAECR : longword;
RESERVED6 : array[0..9] of longword;
MMCRGUFCR : longword;
RESERVED7 : array[0..333] of longword;
PTPTSCR : longword;
PTPSSIR : longword;
PTPTSHR : longword;
PTPTSLR : longword;
PTPTSHUR : longword;
PTPTSLUR : longword;
PTPTSAR : longword;
PTPTTHR : longword;
PTPTTLR : longword;
RESERVED8 : longword;
PTPTSSR : longword;
RESERVED9 : array[0..564] of longword;
DMABMR : longword;
DMATPDR : longword;
DMARPDR : longword;
DMARDLAR : longword;
DMATDLAR : longword;
DMASR : longword;
DMAOMR : longword;
DMAIER : longword;
DMAMFBOCR : longword;
DMARSWTR : longword;
RESERVED10 : array[0..7] of longword;
DMACHTDR : longword;
DMACHRDR : longword;
DMACHTBAR : longword;
DMACHRBAR : longword;
end;
TEXTI_Registers = record
IMR : longword; // EXTI Interrupt mask register
EMR : longword; // EXTI Event mask register
RTSR : longword; // EXTI Rising trigger selection register
FTSR : longword; // EXTI Falling trigger selection register
SWIER : longword; // EXTI Software interrupt event register
PR : longword; // EXTI Pending register
end;
TFLASH_Registers = record
ACR : longword; // FLASH access control register
KEYR : longword; // FLASH key register
OPTKEYR : longword; // FLASH option key register
SR : longword; // FLASH status register
CR : longword; // FLASH control register
OPTCR : longword; // FLASH option control register
OPTCR1 : longword; // FLASH option control register 1
end;
TFSMC_BANK1_Registers = record
BTCR : array[0..7] of longword; // NOR/PSRAM chip-select control register(BCR) and chip-select timing register(BTR)
end;
TFSMC_BANK1E_Registers = record
BWTR : array[0..6] of longword; // NOR/PSRAM write timing registers
end;
TFSMC_BANK2_3_Registers = record
PCR2 : longword; // NAND Flash control register 2
SR2 : longword; // NAND Flash FIFO status and interrupt register 2
PMEM2 : longword; // NAND Flash Common memory space timing register 2
PATT2 : longword; // NAND Flash Attribute memory space timing register 2
RESERVED0 : longword; // Reserved, 0x70
ECCR2 : longword; // NAND Flash ECC result registers 2
RESERVED1 : longword; // Reserved, 0x78
RESERVED2 : longword; // Reserved, 0x7C
PCR3 : longword; // NAND Flash control register 3
SR3 : longword; // NAND Flash FIFO status and interrupt register 3
PMEM3 : longword; // NAND Flash Common memory space timing register 3
PATT3 : longword; // NAND Flash Attribute memory space timing register 3
RESERVED3 : longword; // Reserved, 0x90
ECCR3 : longword; // NAND Flash ECC result registers 3
end;
TFSMC_BANK4_Registers = record
PCR4 : longword; // PC Card control register 4
SR4 : longword; // PC Card FIFO status and interrupt register 4
PMEM4 : longword; // PC Card Common memory space timing register 4
PATT4 : longword; // PC Card Attribute memory space timing register 4
PIO4 : longword; // PC Card I/O space timing register 4
end;
TGPIO_Registers = record
MODER : longword; // GPIO port mode register
OTYPER : longword; // GPIO port output type register
OSPEEDR : longword; // GPIO port output speed register
PUPDR : longword; // GPIO port pull-up/pull-down register
IDR : longword; // GPIO port input data register
ODR : longword; // GPIO port output data register
BSRR : longword; // GPIO port bit set/reset register
LCKR : longword; // GPIO port configuration lock register
AFR : array[0..1] of longword; // GPIO alternate function registers
end;
TSYSCFG_Registers = record
MEMRMP : longword; // SYSCFG memory remap register
PMC : longword; // SYSCFG peripheral mode configuration register
EXTICR : array[0..3] of longword; // SYSCFG external interrupt configuration registers
RESERVED : array[0..1] of longword; // Reserved, 0x18-0x1C
CMPCR : longword; // SYSCFG Compensation cell control register
end;
TI2C_Registers = record
CR1 : longword; // I2C Control register 1
CR2 : longword; // I2C Control register 2
OAR1 : longword; // I2C Own address register 1
OAR2 : longword; // I2C Own address register 2
DR : longword; // I2C Data register
SR1 : longword; // I2C Status register 1
SR2 : longword; // I2C Status register 2
CCR : longword; // I2C Clock control register
TRISE : longword; // I2C TRISE register
FLTR : longword; // I2C FLTR register
end;
TIWDG_Registers = record
KR : longword; // IWDG Key register
PR : longword; // IWDG Prescaler register
RLR : longword; // IWDG Reload register
SR : longword; // IWDG Status register
end;
TPWR_Registers = record
CR : longword; // PWR power control register
CSR : longword; // PWR power control/status register
end;
TRCC_Registers = record
CR : longword; // RCC clock control register
PLLCFGR : longword; // RCC PLL configuration register
CFGR : longword; // RCC clock configuration register
CIR : longword; // RCC clock interrupt register
AHB1RSTR : longword; // RCC AHB1 peripheral reset register
AHB2RSTR : longword; // RCC AHB2 peripheral reset register
AHB3RSTR : longword; // RCC AHB3 peripheral reset register
RESERVED0 : longword; // Reserved, 0x1C
APB1RSTR : longword; // RCC APB1 peripheral reset register
APB2RSTR : longword; // RCC APB2 peripheral reset register
RESERVED1 : array[0..1] of longword; // Reserved, 0x28-0x2C
AHB1ENR : longword; // RCC AHB1 peripheral clock register
AHB2ENR : longword; // RCC AHB2 peripheral clock register
AHB3ENR : longword; // RCC AHB3 peripheral clock register
RESERVED2 : longword; // Reserved, 0x3C
APB1ENR : longword; // RCC APB1 peripheral clock enable register
APB2ENR : longword; // RCC APB2 peripheral clock enable register
RESERVED3 : array[0..1] of longword; // Reserved, 0x48-0x4C
AHB1LPENR : longword; // RCC AHB1 peripheral clock enable in low power mode register
AHB2LPENR : longword; // RCC AHB2 peripheral clock enable in low power mode register
AHB3LPENR : longword; // RCC AHB3 peripheral clock enable in low power mode register
RESERVED4 : longword; // Reserved, 0x5C
APB1LPENR : longword; // RCC APB1 peripheral clock enable in low power mode register
APB2LPENR : longword; // RCC APB2 peripheral clock enable in low power mode register
RESERVED5 : array[0..1] of longword; // Reserved, 0x68-0x6C
BDCR : longword; // RCC Backup domain control register
CSR : longword; // RCC clock control & status register
RESERVED6 : array[0..1] of longword; // Reserved, 0x78-0x7C
SSCGR : longword; // RCC spread spectrum clock generation register
PLLI2SCFGR : longword; // RCC PLLI2S configuration register
RESERVED7 : longword; // Reserved, 0x88
DCKCFGR : longWord; // RCC Dedicated Clocks Configuration Register
end;
TRTC_Registers = record
TR : longword; // RTC time register
DR : longword; // RTC date register
CR : longword; // RTC control register
ISR : longword; // RTC initialization and status register
PRER : longword; // RTC prescaler register
WUTR : longword; // RTC wakeup timer register
CALIBR : longword; // RTC calibration register
ALRMAR : longword; // RTC alarm A register
ALRMBR : longword; // RTC alarm B register
WPR : longword; // RTC write protection register
SSR : longword; // RTC sub second register
SHIFTR : longword; // RTC shift control register
TSTR : longword; // RTC time stamp time register
TSDR : longword; // RTC time stamp date register
TSSSR : longword; // RTC time-stamp sub second register
CALR : longword; // RTC calibration register
TAFCR : longword; // RTC tamper and alternate function configuration register
ALRMASSR : longword; // RTC alarm A sub second register
ALRMBSSR : longword; // RTC alarm B sub second register
RESERVED7 : longword; // Reserved, 0x4C
BKP0R : longword; // RTC backup register 1
BKP1R : longword; // RTC backup register 1
BKP2R : longword; // RTC backup register 2
BKP3R : longword; // RTC backup register 3
BKP4R : longword; // RTC backup register 4
BKP5R : longword; // RTC backup register 5
BKP6R : longword; // RTC backup register 6
BKP7R : longword; // RTC backup register 7
BKP8R : longword; // RTC backup register 8
BKP9R : longword; // RTC backup register 9
BKP10R : longword; // RTC backup register 10
BKP11R : longword; // RTC backup register 11
BKP12R : longword; // RTC backup register 12
BKP13R : longword; // RTC backup register 13
BKP14R : longword; // RTC backup register 14
BKP15R : longword; // RTC backup register 15
BKP16R : longword; // RTC backup register 16
BKP17R : longword; // RTC backup register 17
BKP18R : longword; // RTC backup register 18
BKP19R : longword; // RTC backup register 19
end;
TSDIO_Registers = record
POWER : longword; // SDIO power control register
CLKCR : longword; // SDI clock control register
ARG : longword; // SDIO argument register
CMD : longword; // SDIO command register
RESPCMD : longword; // SDIO command response register
RESP1 : longword; // SDIO response 1 register
RESP2 : longword; // SDIO response 2 register
RESP3 : longword; // SDIO response 3 register
RESP4 : longword; // SDIO response 4 register
DTIMER : longword; // SDIO data timer register
DLEN : longword; // SDIO data length register
DCTRL : longword; // SDIO data control register
DCOUNT : longword; // SDIO data counter register
STA : longword; // SDIO status register
ICR : longword; // SDIO interrupt clear register
MASK : longword; // SDIO mask register
RESERVED0 : array[0..1] of longword; // Reserved, 0x40-0x44
FIFOCNT : longword; // SDIO FIFO counter register
RESERVED1 : array[0..12] of longword; // Reserved, 0x4C-0x7C
FIFO : longword; // SDIO data FIFO register
end;
TSPI_Registers = record
CR1 : longword; // SPI control register 1 (not used in I2S mode)
CR2 : longword; // SPI control register 2
SR : longword; // SPI status register
DR : longword; // SPI data register
CRCPR : longword; // SPI CRC polynomial register (not used in I2S mode)
RXCRCR : longword; // SPI RX CRC register (not used in I2S mode)
TXCRCR : longword; // SPI TX CRC register (not used in I2S mode)
I2SCFGR : longword; // SPI_I2S configuration register
I2SPR : longword; // SPI_I2S prescaler register
end;
TTIM_Registers = record
CR1 : longword; // TIM control register 1
CR2 : longword; // TIM control register 2
SMCR : longword; // TIM slave mode control register
DIER : longword; // TIM DMA/interrupt enable register
SR : longword; // TIM status register
EGR : longword; // TIM event generation register
CCMR1 : longword; // TIM capture/compare mode register 1
CCMR2 : longword; // TIM capture/compare mode register 2
CCER : longword; // TIM capture/compare enable register
CNT : longword; // TIM counter register
PSC : longword; // TIM prescaler
ARR : longword; // TIM auto-reload register
RCR : longword; // TIM repetition counter register
CCR1 : longword; // TIM capture/compare register 1
CCR2 : longword; // TIM capture/compare register 2
CCR3 : longword; // TIM capture/compare register 3
CCR4 : longword; // TIM capture/compare register 4
BDTR : longword; // TIM break and dead-time register
DCR : longword; // TIM DMA control register
DMAR : longword; // TIM DMA address for full transfer
&OR : longword; // TIM option register
end;
TUSART_Registers = record
SR : longword; // USART Status register
DR : longword; // USART Data register
BRR : longword; // USART Baud rate register
CR1 : longword; // USART Control register 1
CR2 : longword; // USART Control register 2
CR3 : longword; // USART Control register 3
GTPR : longword; // USART Guard time and prescaler register
end;
TWWDG_Registers = record
CR : longword; // WWDG Control register
CFR : longword; // WWDG Configuration register
SR : longword; // WWDG Status register
end;
TRNG_Registers = record
CR : longword; // RNG control register
SR : longword; // RNG status register
DR : longword; // RNG data register
end;
TUSB_OTG_GLOBAL_Registers = record
GOTGCTL : longword; // USB_OTG Control and Status Register 000h
GOTGINT : longword; // USB_OTG Interrupt Register 004h
GAHBCFG : longword; // Core AHB Configuration Register 008h
GUSBCFG : longword; // Core USB Configuration Register 00Ch
GRSTCTL : longword; // Core Reset Register 010h
GINTSTS : longword; // Core Interrupt Register 014h
GINTMSK : longword; // Core Interrupt Mask Register 018h
GRXSTSR : longword; // Receive Sts Q Read Register 01Ch
GRXSTSP : longword; // Receive Sts Q Read & POP Register 020h
GRXFSIZ : longword; // Receive FIFO Size Register 024h
DIEPTXF0_HNPTXFSIZ : longword; // EP0 / Non Periodic Tx FIFO Size Register 028h
HNPTXSTS : longword; // Non Periodic Tx FIFO/Queue Sts reg 02Ch
RESERVED30 : array[0..1] of longword; // Reserved 030h
GCCFG : longword; // General Purpose IO Register 038h
CID : longword; // User ID Register 03Ch
RESERVED40 : array[0..47] of longword; // Reserved 040h-0FFh
HPTXFSIZ : longword; // Host Periodic Tx FIFO Size Reg 100h
DIEPTXF : array[0..14] of longword; // dev Periodic Transmit FIFO
end;
TUSB_OTG_DEVICE_Registers = record
DCFG : longword; // dev Configuration Register 800h
DCTL : longword; // dev Control Register 804h
DSTS : longword; // dev Status Register (RO) 808h
RESERVED0C : longword; // Reserved 80Ch
DIEPMSK : longword; // dev IN Endpoint Mask 810h
DOEPMSK : longword; // dev OUT Endpoint Mask 814h
DAINT : longword; // dev All Endpoints Itr Reg 818h
DAINTMSK : longword; // dev All Endpoints Itr Mask 81Ch
RESERVED20 : longword; // Reserved 820h
RESERVED9 : longword; // Reserved 824h
DVBUSDIS : longword; // dev VBUS discharge Register 828h
DVBUSPULSE : longword; // dev VBUS Pulse Register 82Ch
DTHRCTL : longword; // dev thr 830h
DIEPEMPMSK : longword; // dev empty msk 834h
DEACHINT : longword; // dedicated EP interrupt 838h
DEACHMSK : longword; // dedicated EP msk 83Ch
RESERVED40 : longword; // dedicated EP mask 840h
DINEP1MSK : longword; // dedicated EP mask 844h
RESERVED44 : array[0..14] of longword; // Reserved 844-87Ch
DOUTEP1MSK : longword; // dedicated EP msk 884h
end;
TUSB_OTG_INENDPOINT_Registers = record
DIEPCTL : longword; // dev IN Endpoint Control Reg 900h + (ep_num * 20h) + 00h
RESERVED04 : longword; // Reserved 900h + (ep_num * 20h) + 04h
DIEPINT : longword; // dev IN Endpoint Itr Reg 900h + (ep_num * 20h) + 08h
RESERVED0C : longword; // Reserved 900h + (ep_num * 20h) + 0Ch
DIEPTSIZ : longword; // IN Endpoint Txfer Size 900h + (ep_num * 20h) + 10h
DIEPDMA : longword; // IN Endpoint DMA Address Reg 900h + (ep_num * 20h) + 14h
DTXFSTS : longword; // IN Endpoint Tx FIFO Status Reg 900h + (ep_num * 20h) + 18h
RESERVED18 : longword; // Reserved 900h+(ep_num*20h)+1Ch-900h+ (ep_num * 20h) + 1Ch
end;
TUSB_OTG_OUTENDPOINT_Registers = record
DOEPCTL : longword; // dev OUT Endpoint Control Reg B00h + (ep_num * 20h) + 00h
RESERVED04 : longword; // Reserved B00h + (ep_num * 20h) + 04h
DOEPINT : longword; // dev OUT Endpoint Itr Reg B00h + (ep_num * 20h) + 08h
RESERVED0C : longword; // Reserved B00h + (ep_num * 20h) + 0Ch
DOEPTSIZ : longword; // dev OUT Endpoint Txfer Size B00h + (ep_num * 20h) + 10h
DOEPDMA : longword; // dev OUT Endpoint DMA Address B00h + (ep_num * 20h) + 14h
RESERVED18 : array[0..1] of longword; // Reserved B00h + (ep_num * 20h) + 18h - B00h + (ep_num * 20h) + 1Ch
end;
TUSB_OTG_HOST_Registers = record
HCFG : longword; // Host Configuration Register 400h
HFIR : longword; // Host Frame Interval Register 404h
HFNUM : longword; // Host Frame Nbr/Frame Remaining 408h
RESERVED40C : longword; // Reserved 40Ch
HPTXSTS : longword; // Host Periodic Tx FIFO/ Queue Status 410h
HAINT : longword; // Host All Channels Interrupt Register 414h
HAINTMSK : longword; // Host All Channels Interrupt Mask 418h
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; // FLASH(up to 1 MB) base address in the alias region
CCMDATARAM_BASE = $10000000; // CCM(core coupled memory) data RAM(64 KB) base address in the alias region
SRAM1_BASE = $20000000; // SRAM1(112 KB) base address in the alias region
SRAM2_BASE = $2001C000; // SRAM2(16 KB) base address in the alias region
PERIPH_BASE = $40000000; // Peripheral base address in the alias region
BKPSRAM_BASE = $40024000; // Backup SRAM(4 KB) base address in the alias region
FSMC_R_BASE = $A0000000; // FSMC registers base address
SRAM1_BB_BASE = $22000000; // SRAM1(112 KB) base address in the bit-band region
SRAM2_BB_BASE = $22380000; // SRAM2(16 KB) base address in the bit-band region
PERIPH_BB_BASE = $42000000; // Peripheral base address in the bit-band region
BKPSRAM_BB_BASE = $42480000; // Backup SRAM(4 KB) base address in the bit-band region
SRAM_BASE = $20000000;
SRAM_BB_BASE = $22000000;
APB1PERIPH_BASE = $40000000;
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;
TIM6_BASE = APB1PERIPH_BASE + $1000;
TIM7_BASE = APB1PERIPH_BASE + $1400;
TIM12_BASE = APB1PERIPH_BASE + $1800;
TIM13_BASE = APB1PERIPH_BASE + $1C00;
TIM14_BASE = APB1PERIPH_BASE + $2000;
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;
USART3_BASE = APB1PERIPH_BASE + $4800;
UART4_BASE = APB1PERIPH_BASE + $4C00;
UART5_BASE = APB1PERIPH_BASE + $5000;
I2C1_BASE = APB1PERIPH_BASE + $5400;
I2C2_BASE = APB1PERIPH_BASE + $5800;
I2C3_BASE = APB1PERIPH_BASE + $5C00;
CAN1_BASE = APB1PERIPH_BASE + $6400;
CAN2_BASE = APB1PERIPH_BASE + $6800;
PWR_BASE = APB1PERIPH_BASE + $7000;
DAC_BASE = APB1PERIPH_BASE + $7400;
TIM1_BASE = APB2PERIPH_BASE + $0000;
TIM8_BASE = APB2PERIPH_BASE + $0400;
USART1_BASE = APB2PERIPH_BASE + $1000;
USART6_BASE = APB2PERIPH_BASE + $1400;
ADC1_BASE = APB2PERIPH_BASE + $2000;
ADC2_BASE = APB2PERIPH_BASE + $2100;
ADC3_BASE = APB2PERIPH_BASE + $2200;
ADC_BASE = APB2PERIPH_BASE + $2300;
SDIO_BASE = APB2PERIPH_BASE + $2C00;
SPI1_BASE = APB2PERIPH_BASE + $3000;
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;
GPIOF_BASE = AHB1PERIPH_BASE + $1400;
GPIOG_BASE = AHB1PERIPH_BASE + $1800;
GPIOH_BASE = AHB1PERIPH_BASE + $1C00;
GPIOI_BASE = AHB1PERIPH_BASE + $2000;
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;
ETH_BASE = AHB1PERIPH_BASE + $8000;
ETH_MAC_BASE = AHB1PERIPH_BASE + $8000;
ETH_MMC_BASE = ETH_BASE + $0100;
ETH_PTP_BASE = ETH_BASE + $0700;
ETH_DMA_BASE = ETH_BASE + $1000;
DCMI_BASE = AHB2PERIPH_BASE + $50000;
RNG_BASE = AHB2PERIPH_BASE + $60800;
FSMC_Bank1_R_BASE = FSMC_R_BASE + $0000;
FSMC_Bank1E_R_BASE = FSMC_R_BASE + $0104;
FSMC_Bank2_3_R_BASE = FSMC_R_BASE + $0060;
FSMC_Bank4_R_BASE = FSMC_R_BASE + $00A0;
DBGMCU_BASE = $E0042000;
USB_OTG_HS_PERIPH_BASE = $40040000;
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;
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;
TIM6 : TTIM_Registers absolute TIM6_BASE;
TIM7 : TTIM_Registers absolute TIM7_BASE;
TIM12 : TTIM_Registers absolute TIM12_BASE;
TIM13 : TTIM_Registers absolute TIM13_BASE;
TIM14 : TTIM_Registers absolute TIM14_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;
USART3 : TUSART_Registers absolute USART3_BASE;
UART4 : TUSART_Registers absolute UART4_BASE;
UART5 : TUSART_Registers absolute UART5_BASE;
I2C1 : TI2C_Registers absolute I2C1_BASE;
I2C2 : TI2C_Registers absolute I2C2_BASE;
I2C3 : TI2C_Registers absolute I2C3_BASE;
CAN1 : TCAN_Registers absolute CAN1_BASE;
CAN2 : TCAN_Registers absolute CAN2_BASE;
PWR : TPWR_Registers absolute PWR_BASE;
DAC : TDAC_Registers absolute DAC_BASE;
TIM1 : TTIM_Registers absolute TIM1_BASE;
TIM8 : TTIM_Registers absolute TIM8_BASE;
USART1 : TUSART_Registers absolute USART1_BASE;
USART6 : TUSART_Registers absolute USART6_BASE;
ADC : TADC_Common_Registers absolute ADC_BASE;
ADC1 : TADC_Registers absolute ADC1_BASE;
ADC2 : TADC_Registers absolute ADC2_BASE;
ADC3 : TADC_Registers absolute ADC3_BASE;
SDIO : TSDIO_Registers absolute SDIO_BASE;
SPI1 : TSPI_Registers absolute SPI1_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;
GPIOF : TGPIO_Registers absolute GPIOF_BASE;
GPIOG : TGPIO_Registers absolute GPIOG_BASE;
GPIOH : TGPIO_Registers absolute GPIOH_BASE;
GPIOI : TGPIO_Registers absolute GPIOI_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;
ETH : TETH_Registers absolute ETH_BASE;
DCMI : TDCMI_Registers absolute DCMI_BASE;
RNG : TRNG_Registers absolute RNG_BASE;
FSMC_Bank1 : TFSMC_Bank1_Registers absolute FSMC_Bank1_R_BASE;
FSMC_Bank1E : TFSMC_Bank1E_Registers absolute FSMC_Bank1E_R_BASE;
FSMC_Bank2_3 : TFSMC_Bank2_3_Registers absolute FSMC_Bank2_3_R_BASE;
FSMC_Bank4 : TFSMC_Bank4_Registers absolute FSMC_Bank4_R_BASE;
DBGMCU : TDBGMCU_Registers absolute DBGMCU_BASE;
implementation
procedure NonMaskableInt_interrupt; external name 'NonMaskableInt_interrupt';
procedure MemoryManagement_interrupt; external name 'MemoryManagement_interrupt';
procedure BusFault_interrupt; external name 'BusFault_interrupt';
procedure UsageFault_interrupt; external name 'UsageFault_interrupt';
procedure SVCall_interrupt; external name 'SVCall_interrupt';
procedure DebugMonitor_interrupt; external name 'DebugMonitor_interrupt';
procedure PendSV_interrupt; external name 'PendSV_interrupt';
procedure SysTick_interrupt; external name 'SysTick_interrupt';
procedure WWDG_interrupt; external name 'WWDG_interrupt';
procedure PVD_interrupt; external name 'PVD_interrupt';
procedure TAMP_STAMP_interrupt; external name 'TAMP_STAMP_interrupt';
procedure RTC_WKUP_interrupt; external name 'RTC_WKUP_interrupt';
procedure FLASH_interrupt; external name 'FLASH_interrupt';
procedure RCC_interrupt; external name 'RCC_interrupt';
procedure EXTI0_interrupt; external name 'EXTI0_interrupt';
procedure EXTI1_interrupt; external name 'EXTI1_interrupt';
procedure EXTI2_interrupt; external name 'EXTI2_interrupt';
procedure EXTI3_interrupt; external name 'EXTI3_interrupt';
procedure EXTI4_interrupt; external name 'EXTI4_interrupt';
procedure DMA1_Stream0_interrupt; external name 'DMA1_Stream0_interrupt';
procedure DMA1_Stream1_interrupt; external name 'DMA1_Stream1_interrupt';
procedure DMA1_Stream2_interrupt; external name 'DMA1_Stream2_interrupt';
procedure DMA1_Stream3_interrupt; external name 'DMA1_Stream3_interrupt';
procedure DMA1_Stream4_interrupt; external name 'DMA1_Stream4_interrupt';
procedure DMA1_Stream5_interrupt; external name 'DMA1_Stream5_interrupt';
procedure DMA1_Stream6_interrupt; external name 'DMA1_Stream6_interrupt';
procedure ADC_interrupt; external name 'ADC_interrupt';
procedure CAN1_TX_interrupt; external name 'CAN1_TX_interrupt';
procedure CAN1_RX0_interrupt; external name 'CAN1_RX0_interrupt';
procedure CAN1_RX1_interrupt; external name 'CAN1_RX1_interrupt';
procedure CAN1_SCE_interrupt; external name 'CAN1_SCE_interrupt';
procedure EXTI9_5_interrupt; external name 'EXTI9_5_interrupt';
procedure TIM1_BRK_TIM9_interrupt; external name 'TIM1_BRK_TIM9_interrupt';
procedure TIM1_UP_TIM10_interrupt; external name 'TIM1_UP_TIM10_interrupt';
procedure TIM1_TRG_COM_TIM11_interrupt; external name 'TIM1_TRG_COM_TIM11_interrupt';
procedure TIM1_CC_interrupt; external name 'TIM1_CC_interrupt';
procedure TIM2_interrupt; external name 'TIM2_interrupt';
procedure TIM3_interrupt; external name 'TIM3_interrupt';
procedure TIM4_interrupt; external name 'TIM4_interrupt';
procedure I2C1_EV_interrupt; external name 'I2C1_EV_interrupt';
procedure I2C1_ER_interrupt; external name 'I2C1_ER_interrupt';
procedure I2C2_EV_interrupt; external name 'I2C2_EV_interrupt';
procedure I2C2_ER_interrupt; external name 'I2C2_ER_interrupt';
procedure SPI1_interrupt; external name 'SPI1_interrupt';
procedure SPI2_interrupt; external name 'SPI2_interrupt';
procedure USART1_interrupt; external name 'USART1_interrupt';
procedure USART2_interrupt; external name 'USART2_interrupt';
procedure USART3_interrupt; external name 'USART3_interrupt';
procedure EXTI15_10_interrupt; external name 'EXTI15_10_interrupt';
procedure RTC_Alarm_interrupt; external name 'RTC_Alarm_interrupt';
procedure OTG_FS_WKUP_interrupt; external name 'OTG_FS_WKUP_interrupt';
procedure TIM8_BRK_TIM12_interrupt; external name 'TIM8_BRK_TIM12_interrupt';
procedure TIM8_UP_TIM13_interrupt; external name 'TIM8_UP_TIM13_interrupt';
procedure TIM8_TRG_COM_TIM14_interrupt; external name 'TIM8_TRG_COM_TIM14_interrupt';
procedure TIM8_CC_interrupt; external name 'TIM8_CC_interrupt';
procedure DMA1_Stream7_interrupt; external name 'DMA1_Stream7_interrupt';
procedure FSMC_interrupt; external name 'FSMC_interrupt';
procedure SDIO_interrupt; external name 'SDIO_interrupt';
procedure TIM5_interrupt; external name 'TIM5_interrupt';
procedure SPI3_interrupt; external name 'SPI3_interrupt';
procedure UART4_interrupt; external name 'UART4_interrupt';
procedure UART5_interrupt; external name 'UART5_interrupt';
procedure TIM6_DAC_interrupt; external name 'TIM6_DAC_interrupt';
procedure TIM7_interrupt; external name 'TIM7_interrupt';
procedure DMA2_Stream0_interrupt; external name 'DMA2_Stream0_interrupt';
procedure DMA2_Stream1_interrupt; external name 'DMA2_Stream1_interrupt';
procedure DMA2_Stream2_interrupt; external name 'DMA2_Stream2_interrupt';
procedure DMA2_Stream3_interrupt; external name 'DMA2_Stream3_interrupt';
procedure DMA2_Stream4_interrupt; external name 'DMA2_Stream4_interrupt';
procedure ETH_interrupt; external name 'ETH_interrupt';
procedure ETH_WKUP_interrupt; external name 'ETH_WKUP_interrupt';
procedure CAN2_TX_interrupt; external name 'CAN2_TX_interrupt';
procedure CAN2_RX0_interrupt; external name 'CAN2_RX0_interrupt';
procedure CAN2_RX1_interrupt; external name 'CAN2_RX1_interrupt';
procedure CAN2_SCE_interrupt; external name 'CAN2_SCE_interrupt';
procedure OTG_FS_interrupt; external name 'OTG_FS_interrupt';
procedure DMA2_Stream5_interrupt; external name 'DMA2_Stream5_interrupt';
procedure DMA2_Stream6_interrupt; external name 'DMA2_Stream6_interrupt';
procedure DMA2_Stream7_interrupt; external name 'DMA2_Stream7_interrupt';
procedure USART6_interrupt; external name 'USART6_interrupt';
procedure I2C3_EV_interrupt; external name 'I2C3_EV_interrupt';
procedure I2C3_ER_interrupt; external name 'I2C3_ER_interrupt';
procedure OTG_HS_EP1_OUT_interrupt; external name 'OTG_HS_EP1_OUT_interrupt';
procedure OTG_HS_EP1_IN_interrupt; external name 'OTG_HS_EP1_IN_interrupt';
procedure OTG_HS_WKUP_interrupt; external name 'OTG_HS_WKUP_interrupt';
procedure OTG_HS_interrupt; external name 'OTG_HS_interrupt';
procedure DCMI_interrupt; external name 'DCMI_interrupt';
procedure HASH_RNG_interrupt; external name 'HASH_RNG_interrupt';
procedure FPU_interrupt; external name 'FPU_interrupt';
{$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_interrupt
.long 0
.long MemoryManagement_interrupt
.long BusFault_interrupt
.long UsageFault_interrupt
.long 0
.long 0
.long 0
.long 0
.long SVCall_interrupt
.long DebugMonitor_interrupt
.long 0
.long PendSV_interrupt
.long SysTick_interrupt
.long WWDG_interrupt
.long PVD_interrupt
.long TAMP_STAMP_interrupt
.long RTC_WKUP_interrupt
.long FLASH_interrupt
.long RCC_interrupt
.long EXTI0_interrupt
.long EXTI1_interrupt
.long EXTI2_interrupt
.long EXTI3_interrupt
.long EXTI4_interrupt
.long DMA1_Stream0_interrupt
.long DMA1_Stream1_interrupt
.long DMA1_Stream2_interrupt
.long DMA1_Stream3_interrupt
.long DMA1_Stream4_interrupt
.long DMA1_Stream5_interrupt
.long DMA1_Stream6_interrupt
.long ADC_interrupt
.long CAN1_TX_interrupt
.long CAN1_RX0_interrupt
.long CAN1_RX1_interrupt
.long CAN1_SCE_interrupt
.long EXTI9_5_interrupt
.long TIM1_BRK_TIM9_interrupt
.long TIM1_UP_TIM10_interrupt
.long TIM1_TRG_COM_TIM11_interrupt
.long TIM1_CC_interrupt
.long TIM2_interrupt
.long TIM3_interrupt
.long TIM4_interrupt
.long I2C1_EV_interrupt
.long I2C1_ER_interrupt
.long I2C2_EV_interrupt
.long I2C2_ER_interrupt
.long SPI1_interrupt
.long SPI2_interrupt
.long USART1_interrupt
.long USART2_interrupt
.long USART3_interrupt
.long EXTI15_10_interrupt
.long RTC_Alarm_interrupt
.long OTG_FS_WKUP_interrupt
.long TIM8_BRK_TIM12_interrupt
.long TIM8_UP_TIM13_interrupt
.long TIM8_TRG_COM_TIM14_interrupt
.long TIM8_CC_interrupt
.long DMA1_Stream7_interrupt
.long FSMC_interrupt
.long SDIO_interrupt
.long TIM5_interrupt
.long SPI3_interrupt
.long UART4_interrupt
.long UART5_interrupt
.long TIM6_DAC_interrupt
.long TIM7_interrupt
.long DMA2_Stream0_interrupt
.long DMA2_Stream1_interrupt
.long DMA2_Stream2_interrupt
.long DMA2_Stream3_interrupt
.long DMA2_Stream4_interrupt
.long ETH_interrupt
.long ETH_WKUP_interrupt
.long CAN2_TX_interrupt
.long CAN2_RX0_interrupt
.long CAN2_RX1_interrupt
.long CAN2_SCE_interrupt
.long OTG_FS_interrupt
.long DMA2_Stream5_interrupt
.long DMA2_Stream6_interrupt
.long DMA2_Stream7_interrupt
.long USART6_interrupt
.long I2C3_EV_interrupt
.long I2C3_ER_interrupt
.long OTG_HS_EP1_OUT_interrupt
.long OTG_HS_EP1_IN_interrupt
.long OTG_HS_WKUP_interrupt
.long OTG_HS_interrupt
.long DCMI_interrupt
.long 0
.long HASH_RNG_interrupt
.long FPU_interrupt
.weak NonMaskableInt_interrupt
.weak MemoryManagement_interrupt
.weak BusFault_interrupt
.weak UsageFault_interrupt
.weak SVCall_interrupt
.weak DebugMonitor_interrupt
.weak PendSV_interrupt
.weak SysTick_interrupt
.weak WWDG_interrupt
.weak PVD_interrupt
.weak TAMP_STAMP_interrupt
.weak RTC_WKUP_interrupt
.weak FLASH_interrupt
.weak RCC_interrupt
.weak EXTI0_interrupt
.weak EXTI1_interrupt
.weak EXTI2_interrupt
.weak EXTI3_interrupt
.weak EXTI4_interrupt
.weak DMA1_Stream0_interrupt
.weak DMA1_Stream1_interrupt
.weak DMA1_Stream2_interrupt
.weak DMA1_Stream3_interrupt
.weak DMA1_Stream4_interrupt
.weak DMA1_Stream5_interrupt
.weak DMA1_Stream6_interrupt
.weak ADC_interrupt
.weak CAN1_TX_interrupt
.weak CAN1_RX0_interrupt
.weak CAN1_RX1_interrupt
.weak CAN1_SCE_interrupt
.weak EXTI9_5_interrupt
.weak TIM1_BRK_TIM9_interrupt
.weak TIM1_UP_TIM10_interrupt
.weak TIM1_TRG_COM_TIM11_interrupt
.weak TIM1_CC_interrupt
.weak TIM2_interrupt
.weak TIM3_interrupt
.weak TIM4_interrupt
.weak I2C1_EV_interrupt
.weak I2C1_ER_interrupt
.weak I2C2_EV_interrupt
.weak I2C2_ER_interrupt
.weak SPI1_interrupt
.weak SPI2_interrupt
.weak USART1_interrupt
.weak USART2_interrupt
.weak USART3_interrupt
.weak EXTI15_10_interrupt
.weak RTC_Alarm_interrupt
.weak OTG_FS_WKUP_interrupt
.weak TIM8_BRK_TIM12_interrupt
.weak TIM8_UP_TIM13_interrupt
.weak TIM8_TRG_COM_TIM14_interrupt
.weak TIM8_CC_interrupt
.weak DMA1_Stream7_interrupt
.weak FSMC_interrupt
.weak SDIO_interrupt
.weak TIM5_interrupt
.weak SPI3_interrupt
.weak UART4_interrupt
.weak UART5_interrupt
.weak TIM6_DAC_interrupt
.weak TIM7_interrupt
.weak DMA2_Stream0_interrupt
.weak DMA2_Stream1_interrupt
.weak DMA2_Stream2_interrupt
.weak DMA2_Stream3_interrupt
.weak DMA2_Stream4_interrupt
.weak ETH_interrupt
.weak ETH_WKUP_interrupt
.weak CAN2_TX_interrupt
.weak CAN2_RX0_interrupt
.weak CAN2_RX1_interrupt
.weak CAN2_SCE_interrupt
.weak OTG_FS_interrupt
.weak DMA2_Stream5_interrupt
.weak DMA2_Stream6_interrupt
.weak DMA2_Stream7_interrupt
.weak USART6_interrupt
.weak I2C3_EV_interrupt
.weak I2C3_ER_interrupt
.weak OTG_HS_EP1_OUT_interrupt
.weak OTG_HS_EP1_IN_interrupt
.weak OTG_HS_WKUP_interrupt
.weak OTG_HS_interrupt
.weak DCMI_interrupt
.weak HASH_RNG_interrupt
.weak FPU_interrupt
.set NonMaskableInt_interrupt, HaltProc
.set MemoryManagement_interrupt, HaltProc
.set BusFault_interrupt, HaltProc
.set UsageFault_interrupt, HaltProc
.set SVCall_interrupt, HaltProc
.set DebugMonitor_interrupt, HaltProc
.set PendSV_interrupt, HaltProc
.set SysTick_interrupt, HaltProc
.set WWDG_interrupt, HaltProc
.set PVD_interrupt, HaltProc
.set TAMP_STAMP_interrupt, HaltProc
.set RTC_WKUP_interrupt, HaltProc
.set FLASH_interrupt, HaltProc
.set RCC_interrupt, HaltProc
.set EXTI0_interrupt, HaltProc
.set EXTI1_interrupt, HaltProc
.set EXTI2_interrupt, HaltProc
.set EXTI3_interrupt, HaltProc
.set EXTI4_interrupt, HaltProc
.set DMA1_Stream0_interrupt, HaltProc
.set DMA1_Stream1_interrupt, HaltProc
.set DMA1_Stream2_interrupt, HaltProc
.set DMA1_Stream3_interrupt, HaltProc
.set DMA1_Stream4_interrupt, HaltProc
.set DMA1_Stream5_interrupt, HaltProc
.set DMA1_Stream6_interrupt, HaltProc
.set ADC_interrupt, HaltProc
.set CAN1_TX_interrupt, HaltProc
.set CAN1_RX0_interrupt, HaltProc
.set CAN1_RX1_interrupt, HaltProc
.set CAN1_SCE_interrupt, HaltProc
.set EXTI9_5_interrupt, HaltProc
.set TIM1_BRK_TIM9_interrupt, HaltProc
.set TIM1_UP_TIM10_interrupt, HaltProc
.set TIM1_TRG_COM_TIM11_interrupt, HaltProc
.set TIM1_CC_interrupt, HaltProc
.set TIM2_interrupt, HaltProc
.set TIM3_interrupt, HaltProc
.set TIM4_interrupt, HaltProc
.set I2C1_EV_interrupt, HaltProc
.set I2C1_ER_interrupt, HaltProc
.set I2C2_EV_interrupt, HaltProc
.set I2C2_ER_interrupt, HaltProc
.set SPI1_interrupt, HaltProc
.set SPI2_interrupt, HaltProc
.set USART1_interrupt, HaltProc
.set USART2_interrupt, HaltProc
.set USART3_interrupt, HaltProc
.set EXTI15_10_interrupt, HaltProc
.set RTC_Alarm_interrupt, HaltProc
.set OTG_FS_WKUP_interrupt, HaltProc
.set TIM8_BRK_TIM12_interrupt, HaltProc
.set TIM8_UP_TIM13_interrupt, HaltProc
.set TIM8_TRG_COM_TIM14_interrupt, HaltProc
.set TIM8_CC_interrupt, HaltProc
.set DMA1_Stream7_interrupt, HaltProc
.set FSMC_interrupt, HaltProc
.set SDIO_interrupt, HaltProc
.set TIM5_interrupt, HaltProc
.set SPI3_interrupt, HaltProc
.set UART4_interrupt, HaltProc
.set UART5_interrupt, HaltProc
.set TIM6_DAC_interrupt, HaltProc
.set TIM7_interrupt, HaltProc
.set DMA2_Stream0_interrupt, HaltProc
.set DMA2_Stream1_interrupt, HaltProc
.set DMA2_Stream2_interrupt, HaltProc
.set DMA2_Stream3_interrupt, HaltProc
.set DMA2_Stream4_interrupt, HaltProc
.set ETH_interrupt, HaltProc
.set ETH_WKUP_interrupt, HaltProc
.set CAN2_TX_interrupt, HaltProc
.set CAN2_RX0_interrupt, HaltProc
.set CAN2_RX1_interrupt, HaltProc
.set CAN2_SCE_interrupt, HaltProc
.set OTG_FS_interrupt, HaltProc
.set DMA2_Stream5_interrupt, HaltProc
.set DMA2_Stream6_interrupt, HaltProc
.set DMA2_Stream7_interrupt, HaltProc
.set USART6_interrupt, HaltProc
.set I2C3_EV_interrupt, HaltProc
.set I2C3_ER_interrupt, HaltProc
.set OTG_HS_EP1_OUT_interrupt, HaltProc
.set OTG_HS_EP1_IN_interrupt, HaltProc
.set OTG_HS_WKUP_interrupt, HaltProc
.set OTG_HS_interrupt, HaltProc
.set DCMI_interrupt, HaltProc
.set HASH_RNG_interrupt, HaltProc
.set FPU_interrupt, HaltProc
.text
end;
end.