@GNU AS
@.CharSet=CP1251

.syntax unified          @ синтаксис исходного кода
.thumb               @ тип используемых инструкций Thumb
.cpu cortex-m4          @ процессор
.fpu fpv4-sp-d16     @ сопроцессор

.section .vectors

@ таблица векторов прерываний
     .word      _STACK_END              @ 0x0000 Вершина стека
     .word     Start+1                  @ 0x0004 RESET


@ Таблица прерываний для ядра микроконтроллеров STM32F407xxx

     .word     IRQ_NMI+1               @ 0x0008 NMI
     .word     IRQ_HardFault+1         @ 0x000C Hard Fault
     .word     IRQ_MemFault+1          @ 0x0010 Memory management fault
     .word     IRQ_BusFault+1          @ 0x0014 Bus Fault
     .word     IRQ_UsageFault+1        @ 0x0018 Usage Fault
     .word     0               @ 0x001C Reserved
     .word     0               @ 0x0020 Reserved
     .word     0               @ 0x0024 Reserved
     .word     0               @ 0x0028 Reserved
     .word     IRQ_SVCall+1            @ 0x002C SVCall
     .word   IRQ_DebugMonitor+1      @ 0x0030 Debug Monitor
     .word   0                       @ 0x0034
     .word     IRQ_PendSV+1            @ 0x0038 PendSV
     .word     IRQ_SysTick+1          @ 0x003C SysTick

@ Прерывания периферии микроконтроллера
     .word     IRQ_WWDG+1              @ 0x0040 Window Watchdog interrupt
     .word     IRQ_PVD_PVM+1               @ 0x0044 PVD through EXTI line detection interrupt
     .word     IRQ_TAMP_STAMP+1        @ 0x0048 Tamper and TimeStamp interrupts through the EXTI line
     .word     IRQ_WTC_WKUP+1          @ 0x004C RTC Wakeup interrupt through the EXTI line
     .word     IRQ_FLASH+1             @ 0x0050 Flash global interrupt
     .word     IRQ_RCC+1               @ 0x0054 RCC global interrupt
     .word     IRQ_EXTI0+1             @ 0x0058 EXTI Line0 interrupt
     .word     IRQ_EXTI1+1             @ 0x005C EXTI Line1 interrupt
     .word     IRQ_EXTI2+1             @ 0x0060 EXTI Line2 interrupt
     .word     IRQ_EXTI3+1             @ 0x0064 EXTI Line3 interrupt
     .word     IRQ_EXTI4+1             @ 0x0068 EXTI Line4 interrupt
     .word     DMA1_CH1+1              @ 0x006C DMA1 channel 1 interrupt
     .word     DMA1_CH2+1              @ 0x0070 DMA1 channel 2 interrupt
     .word     DMA1_CH3+1              @ 0x0074 DMA1 channel 3 interrupt
     .word     DMA1_CH4+1              @ 0x0078 DMA1 channel 4 interrupt
     .word     DMA1_CH5+1              @ 0x007C DMA1 channel 5 interrupt
     .word     DMA1_CH6+1              @ 0x0080 DMA1 channel 6 interrupt
     .word     DMA1_CH7+1              @ 0x0084 DMA1 channel 7 interrupt
     .word     IRQ_ADC1+1              @ 0x0088 ADC1 global interrupts
     .word     IRQ_CAN1_TX+1           @ 0x008C CAN1 TX interrupts
     .word     IRQ_CAN1_RX0+1          @ 0x0090 CAN1 RX0 interrupts
     .word     IRQ_CAN1_RX1+1          @ 0x0094 CAN1 RX1 interrupt
     .word     IRQ_CAN1_SCE+1          @ 0x0098 CAN1 SCE interrupt
     .word     IRQ_EXTI9_5+1           @ 0x009C EXTI Line[9:5] interrupts
     .word     IRQ_TIM1_BRK_TIM15+1    @ 0x00A0 TIM1 Break interrupt and TIM15 global interrupt
     .word     IRQ_TIM1_UP_TIM16+1     @ 0x00A4 TIM1 Update interrupt and TIM16 global interrupt
     .word     IRQ_TIM1_TRG_COM_TIM17+1 @ 0x00A8 TIM1 Trigger and Commutation interrupts and TIM17 global interrupt
     .word     IRQ_TIM1_CC+1           @ 0x00AC TIM1 Capture Compare interrupt
     .word     IRQ_TIM2+1              @ 0x00B0 TIM2 global interrupt
     .word     IRQ_TIM3+1              @ 0x00B4 TIM3 global interrupt
     .word     IRQ_TIM4+1              @ 0x00B8 TIM4 global interrupt
     .word     IRQ_I2C1_EV+1           @ 0x00BC I2C1 event interrupt
     .word     IRQ_I2C1_ER+1           @ 0x00C0 I2C1 error interrupt
     .word     IRQ_I2C2_EV+1           @ 0x00C4 I2C2 event interrupt
     .word     IRQ_I2C2_ER+1           @ 0x00C8 I2C2 error interrupt
     .word     IRQ_SPI1+1              @ 0x00CC SPI1 global interrupt
     .word     IRQ_SPI2+1              @ 0x00D0 SPI2 global interrupt
     .word     IRQ_USART1+1            @ 0x00D4 USART1 global interrupt
     .word     IRQ_USART2+1            @ 0x00D8 USART2 global interrupt
     .word     IRQ_USART3+1            @ 0x00DC USART3 global interrupt
     .word     IRQ_EXTI15_10+1         @ 0x00E0 EXTI Line[15:10] interrupts
     .word     IRQ_RTC_Alarm+1         @ 0x00E4 RTC Alarms (A and B) through EXTI line interrupt
     .word     IRQ_DFSDM1_FLT3+1       @ 0x00E8 IRQ_DFSDM1_FLT3 interrupt
     .word     IRQ_TIM8_BRK+1          @ 0x00EC TIM8 Break interrupt
     .word     IRQ_TIM8_UP+1           @ 0x00F0 TIM8 Update interrupt
     .word     IRQ_TIM8_TRG_COM+1      @ 0x00F4 TIM8 Trigger and Commutation interrupts
     .word     IRQ_TIM8_CC+1           @ 0x00F8 TIM8 Capture Compare interrupt
     .word     0                       @ 0x00FC Reserved
     .word     IRQ_FMC+1               @ 0x0100 FMC global interrupt
     .word     IRQ_SDMMC1+1            @ 0x0104 SDMMC1 global interrupt
     .word     IRQ_TIM5+1              @ 0x0108 TIM5 global interrupt
     .word     IRQ_SPI3+1              @ 0x010C SPI3 global interrupt
     .word     IRQ_UART4+1             @ 0x0110 UART4 global interrupt
     .word     IRQ_UART5+1             @ 0x0114 UART5 global interrupt
     .word     IRQ_TIM6_DACUNDER+1     @ 0x0118 TIM6 global interrupt, DAC1 and DAC2 underrun interrupts
     .word     IRQ_TIM7+1              @ 0x011C TIM7 global interrupt
     .word     IRQ_DMA2_CH1+1          @ 0x0120 DMA2 channel 1 global interrupt
     .word     IRQ_DMA2_CH2+1          @ 0x0124 DMA2 channel 2 global interrupt
     .word     IRQ_DMA2_CH3+1          @ 0x0128 DMA2 channel 3 global interrupt
     .word     IRQ_DMA2_CH4+1          @ 0x012C DMA2 channel 4 global interrupt
     .word     IRQ_DMA2_CH5+1          @ 0x0130 DMA2 channel 5 global interrupt
     .word     IRQ_DFSDM_FLT0+1        @ 0x0134 DFSDM_FLT0 global interrupt
     .word     IRQ_DFSDM_FLT1+1        @ 0x0138 DFSDM_FLT1 global interrupt
     .word     IRQ_DFSDM_FLT2+1        @ 0x013C DFSDM_FLT2 global interrupt
     .word     IRQ_COMP+1              @ 0x0140 COMP interrupts
     .word     IRQ_LPTIM1+1            @ 0x0144 LPTIM1 interrupt
     .word     IRQ_LPTIM2+1            @ 0x0148 LPTIM2 interrupt
     .word     IRQ_OTG_FS+1            @ 0x014C USB On The Go FS global interrupt
     .word     IRQ_DMA2_CH6+1          @ 0x0150 DMA2 channel 6 global interrupt
     .word     IRQ_DMA2_CH7+1          @ 0x0154 DMA2 channel 7 global interrupt
     .word     IRQ_LPUART1+1           @ 0x0158 LPUART1 global interrupt
     .word     IRQ_OCTOSPI1+1          @ 0x015C OCTOSPI1 global interrupt
     .word     IRQ_I2C3_EV+1           @ 0x0160 I2C3 event interrupt
     .word     IRQ_I2C3_ER+1           @ 0x0164 I2C3 error interrupt
     .word     IRQ_SAI1+1              @ 0x0168 SAI1 global interrupt
     .word     IRQ_SAI2+1              @ 0x016C SAI2 global interrupt
     .word     IRQ_OCTOSPI2+1          @ 0x0170 OCTOSPI2 interrupt
     .word     IRQ_TSC+1               @ 0x0174 TSC global interrupt
     .word     IRQ_DSIHSOT+1           @ 0x0178 IRQ_DSIHSOT global interrupt
     .word     IRQ_AES+1               @ 0x017C AES global interrupt
     .word     IRQ_RNG+1               @ 0x0180 RNG global interrupt
     .word     IRQ_FPU+1               @ 0x0184 FPU global interrupt
     .word     IRQ_HASH_CRS+1          @ 0x0188 HASH and CRS global interrupt
     .word     IRQ_I2C4_ER+1           @ 0x018C I2C4 error interrupt
     .word     IRQ_I2C4_EV+1           @ 0x0190 I2C4 event interrupt
     .word     IRQ_DCMI+1              @ 0x0194 DCMI global interrupt
     .word     0                       @ 0x0198 Reserved
     .word     0                       @ 0x019C Reserved
     .word     0                       @ 0x01A0 Reserved
     .word     0                       @ 0x01A4 Reserved
     .word     IRQ_DMA2D+1             @ 0x01A8 DMA2D global interrupt
     .word     IRQ_LCD_TFT+1           @ 0x01AC LTDC global interrupt
     .word     IRQ_LCD_TFT_ER+1        @ 0x01B0 LTDC error interrupt
     .word     IRQ_GFXMMU+1            @ 0x01B4 GFXMMU global interrupt
     .word     IRQ_DMAMUX1_OVR+1       @ 0x01B8 DMAMUX1 Overrun interrupt

@ Заглушки для любых необрабатываемых прерываний

@ Прерывания ядра микроконтроллера

.weak IRQ_NMI
IRQ_NMI:

.weak IRQ_HardFault
IRQ_HardFault:

.weak IRQ_MemFault
IRQ_MemFault:

.weak IRQ_BusFault
IRQ_BusFault:

.weak IRQ_UsageFault
IRQ_UsageFault:

.weak IRQ_SVCall
IRQ_SVCall:

.weak IRQ_DebugMonitor
IRQ_DebugMonitor:

.weak IRQ_PendSV
IRQ_PendSV:

.weak IRQ_SysTick
IRQ_SysTick:

@ прерывания периферии микроконтроллера

.weak IRQ_WWDG
IRQ_WWDG:

.weak IRQ_PVD_PVM
IRQ_PVD_PVM:

.weak IRQ_TAMP_STAMP
IRQ_TAMP_STAMP:

.weak IRQ_WTC_WKUP
IRQ_WTC_WKUP:

.weak IRQ_FLASH
IRQ_FLASH:

.weak IRQ_RCC
IRQ_RCC:

.weak IRQ_EXTI0
IRQ_EXTI0:

.weak IRQ_EXTI1
IRQ_EXTI1:

.weak IRQ_EXTI2
IRQ_EXTI2:

.weak IRQ_EXTI3
IRQ_EXTI3:

.weak IRQ_EXTI4
IRQ_EXTI4:

.weak DMA1_CH1
DMA1_CH1:

.weak DMA1_CH2
DMA1_CH2:

.weak DMA1_CH3
DMA1_CH3:

.weak DMA1_CH4
DMA1_CH4:

.weak DMA1_CH5
DMA1_CH5:

.weak DMA1_CH6
DMA1_CH6:

.weak DMA1_CH7
DMA1_CH7:

.weak IRQ_ADC1
IRQ_ADC1:

.weak IRQ_CAN1_TX
IRQ_CAN1_TX:

.weak IRQ_CAN1_RX0
IRQ_CAN1_RX0:

.weak IRQ_CAN1_RX1
IRQ_CAN1_RX1:

.weak IRQ_CAN1_SCE
IRQ_CAN1_SCE:

.weak IRQ_EXTI9_5
IRQ_EXTI9_5:

.weak IRQ_TIM1_BRK_TIM15
IRQ_TIM1_BRK_TIM15:

.weak IRQ_TIM1_UP_TIM16
IRQ_TIM1_UP_TIM16:

.weak IRQ_TIM1_TRG_COM_TIM17
IRQ_TIM1_TRG_COM_TIM17:

.weak IRQ_TIM1_CC
IRQ_TIM1_CC:

.weak IRQ_TIM2
IRQ_TIM2:

.weak IRQ_TIM3
IRQ_TIM3:

.weak IRQ_TIM4
IRQ_TIM4:

.weak IRQ_I2C1_EV
IRQ_I2C1_EV:

.weak IRQ_I2C1_ER
IRQ_I2C1_ER:

.weak IRQ_I2C2_EV
IRQ_I2C2_EV:

.weak IRQ_I2C2_ER
IRQ_I2C2_ER:

.weak IRQ_SPI1
IRQ_SPI1:

.weak IRQ_SPI2
IRQ_SPI2:

.weak IRQ_USART1
IRQ_USART1:

.weak IRQ_USART2
IRQ_USART2:

.weak IRQ_USART3
IRQ_USART3:

.weak IRQ_EXTI15_10
IRQ_EXTI15_10:

.weak IRQ_RTC_Alarm
IRQ_RTC_Alarm:

.weak IRQ_DFSDM1_FLT3
IRQ_DFSDM1_FLT3:

.weak IRQ_TIM8_BRK
IRQ_TIM8_BRK:

.weak IRQ_TIM8_UP
IRQ_TIM8_UP:

.weak IRQ_TIM8_TRG_COM
IRQ_TIM8_TRG_COM:

.weak IRQ_TIM8_CC
IRQ_TIM8_CC:

.weak IRQ_FMC
IRQ_FMC:

.weak IRQ_SDMMC1
IRQ_SDMMC1:

.weak IRQ_TIM5
IRQ_TIM5:

.weak IRQ_SPI3
IRQ_SPI3:

.weak IRQ_UART4
IRQ_UART4:

.weak IRQ_UART5
IRQ_UART5:

.weak IRQ_TIM6_DACUNDER
IRQ_TIM6_DACUNDER:

.weak IRQ_TIM7
IRQ_TIM7:

.weak IRQ_DMA2_CH1
IRQ_DMA2_CH1:

.weak IRQ_DMA2_CH2
IRQ_DMA2_CH2:

.weak IRQ_DMA2_CH3
IRQ_DMA2_CH3:

.weak IRQ_DMA2_CH4
IRQ_DMA2_CH4:

.weak IRQ_DMA2_CH5
IRQ_DMA2_CH5:

.weak IRQ_DFSDM_FLT0
IRQ_DFSDM_FLT0:

.weak IRQ_DFSDM_FLT1
IRQ_DFSDM_FLT1:

.weak IRQ_DFSDM_FLT2
IRQ_DFSDM_FLT2:

.weak IRQ_COMP
IRQ_COMP:

.weak IRQ_LPTIM1
IRQ_LPTIM1:

.weak IRQ_LPTIM2
IRQ_LPTIM2:

.weak IRQ_OTG_FS
IRQ_OTG_FS:

.weak IRQ_DMA2_CH6
IRQ_DMA2_CH6:

.weak IRQ_DMA2_CH7
IRQ_DMA2_CH7:

.weak IRQ_LPUART1
IRQ_LPUART1:

.weak IRQ_OCTOSPI1
IRQ_OCTOSPI1:

.weak IRQ_I2C3_EV
IRQ_I2C3_EV:

.weak IRQ_I2C3_ER
IRQ_I2C3_ER:

.weak IRQ_SAI1
IRQ_SAI1:

.weak IRQ_SAI2
IRQ_SAI2:

.weak IRQ_OCTOSPI2
IRQ_OCTOSPI2:

.weak IRQ_TSC
IRQ_TSC:

.weak IRQ_DSIHSOT
IRQ_DSIHSOT:

.weak IRQ_AES
IRQ_AES:

.weak IRQ_RNG
IRQ_RNG:

.weak IRQ_FPU
IRQ_FPU:

.weak IRQ_HASH_CRS
IRQ_HASH_CRS:

.weak IRQ_I2C4_EV
IRQ_I2C4_EV:

.weak IRQ_I2C4_ER
IRQ_I2C4_ER:

.weak IRQ_I2C3_EV
IRQ_I2C3_EV:

.weak IRQ_DCMI
IRQ_DCMI:

.weak IRQ_DMA2D
IRQ_DMA2D:

.weak IRQ_LCD_TFT
IRQ_LCD_TFT:

.weak IRQ_LCD_TFT_ER
IRQ_LCD_TFT_ER:

.weak IRQ_GFXMMU
IRQ_GFXMMU:

.weak IRQ_DMAMUX1_OVR
IRQ_DMAMUX1_OVR:

int_vect_terminator:
          B     int_vect_terminator
