mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 16:09:33 +02:00
918 lines
29 KiB
ObjectPascal
918 lines
29 KiB
ObjectPascal
{$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
|
||
*
|
||
* <h2><center>© Copyright (c) 2017 STMicroelectronics.
|
||
* All rights reserved.</center></h2>
|
||
*
|
||
* 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.
|