diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2015-12-20 22:25:48 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2015-12-20 22:25:48 +0100 |
commit | acf22f18828595a0731d3558b7e2d2ba321c926d (patch) | |
tree | cf32cd1322184382d79e1a248ce907fbdb5856b6 /init_low.s | |
parent | 4ce09995e336103ab1d6e20171e732bba1b4cfb2 (diff) | |
download | stm32f103-playground-acf22f18828595a0731d3558b7e2d2ba321c926d.tar.gz stm32f103-playground-acf22f18828595a0731d3558b7e2d2ba321c926d.tar.bz2 stm32f103-playground-acf22f18828595a0731d3558b7e2d2ba321c926d.tar.xz stm32f103-playground-acf22f18828595a0731d3558b7e2d2ba321c926d.zip |
o Interrupt-driven serial port writing.
Diffstat (limited to 'init_low.s')
-rw-r--r-- | init_low.s | 222 |
1 files changed, 206 insertions, 16 deletions
@@ -9,24 +9,68 @@ http://stackoverflow.com/questions/9565921/cortex-m3-initialisation .section .isr_vectors +/* TODO: Move this to C code */ .global vectors vectors: -stacktop: .word 0x20001000 -.word _Reset_Handler -.word NMI_Handler -.word HardFault_Handler -.word MemManage_Handler -.word BusFault_Handler -.word UsageFault_Handler -.word halt -.word halt -.word halt -.word halt -.word halt -.word halt -.word halt -.word halt -.word halt + .word 0x20001000 /* TODO: this should come from the linker */ + .word _Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word MemManage_Handler + .word BusFault_Handler + .word UsageFault_Handler + .word 0 /* Not used */ + .word 0 /* Not used */ + .word 0 /* Not used */ + .word 0 /* Not used */ + .word SVC_Handler + .word DebugMon_Handler + .word 0 /* Not used */ + .word PendSV_Handler + .word SysTick_Handler + .word WWDG_IRQHandler + .word PVD_IRQHandler + .word TAMPER_IRQHandler + .word RTC_IRQHandler + .word FLASH_IRQHandler + .word RCC_IRQHandler + .word EXTI0_IRQHandler + .word EXTI1_IRQHandler + .word EXTI2_IRQHandler + .word EXTI3_IRQHandler + .word EXTI4_IRQHandler + .word DMA1_Channel1_IRQHandler + .word DMA1_Channel2_IRQHandler + .word DMA1_Channel3_IRQHandler + .word DMA1_Channel4_IRQHandler + .word DMA1_Channel5_IRQHandler + .word DMA1_Channel6_IRQHandler + .word DMA1_Channel7_IRQHandler + .word ADC1_2_IRQHandler + .word USB_HP_CAN1_TX_IRQHandler + .word USB_LP_CAN1_RX0_IRQHandler + .word CAN1_RX1_IRQHandler + .word CAN1_SCE_IRQHandler + .word EXTI9_5_IRQHandler + .word TIM1_BRK_IRQHandler + .word TIM1_UP_IRQHandler + .word TIM1_TRG_COM_IRQHandler + .word TIM1_CC_IRQHandler + .word TIM2_IRQHandler + .word TIM3_IRQHandler + .word TIM4_IRQHandler + .word I2C1_EV_IRQHandler + .word I2C1_ER_IRQHandler + .word I2C2_EV_IRQHandler + .word I2C2_ER_IRQHandler + .word SPI1_IRQHandler + .word SPI2_IRQHandler + .word USART1_IRQHandler + .word USART2_IRQHandler + .word USART3_IRQHandler + .word EXTI15_10_IRQHandler + .word RTCAlarm_IRQHandler + .word USBWakeUp_IRQHandler /* VERY significant */ .section .text @@ -66,4 +110,150 @@ BusFault_Handler: UsageFault_Handler: b halt +/* +TODO: replace with functions like this: +void TIM2_IRQHandler() __attribute__ ((weak, alias ("Default_Handler"))); +*/ + +.weak SVC_Handler +.thumb_set SVC_Handler, halt + +.weak DebugMon_Handler +.thumb_set DebugMon_Handler, halt + +.weak PendSV_Handler +.thumb_set PendSV_Handler, halt + +.weak SysTick_Handler +.thumb_set SysTick_Handler, halt + +.weak WWDG_IRQHandler +.thumb_set WWDG_IRQHandler, halt + +.weak PVD_IRQHandler +.thumb_set PVD_IRQHandler, halt + +.weak TAMPER_IRQHandler +.thumb_set TAMPER_IRQHandler, halt + +.weak RTC_IRQHandler +.thumb_set RTC_IRQHandler, halt + +.weak FLASH_IRQHandler +.thumb_set FLASH_IRQHandler, halt + +.weak RCC_IRQHandler +.thumb_set RCC_IRQHandler, halt + +.weak EXTI0_IRQHandler +.thumb_set EXTI0_IRQHandler, halt + +.weak EXTI1_IRQHandler +.thumb_set EXTI1_IRQHandler, halt + +.weak EXTI2_IRQHandler +.thumb_set EXTI2_IRQHandler, halt + +.weak EXTI3_IRQHandler +.thumb_set EXTI3_IRQHandler, halt + +.weak EXTI4_IRQHandler +.thumb_set EXTI4_IRQHandler, halt + +.weak DMA1_Channel1_IRQHandler +.thumb_set DMA1_Channel1_IRQHandler, halt + +.weak DMA1_Channel2_IRQHandler +.thumb_set DMA1_Channel2_IRQHandler, halt + +.weak DMA1_Channel3_IRQHandler +.thumb_set DMA1_Channel3_IRQHandler, halt + +.weak DMA1_Channel4_IRQHandler +.thumb_set DMA1_Channel4_IRQHandler, halt + +.weak DMA1_Channel5_IRQHandler +.thumb_set DMA1_Channel5_IRQHandler, halt + +.weak DMA1_Channel6_IRQHandler +.thumb_set DMA1_Channel6_IRQHandler, halt + +.weak DMA1_Channel7_IRQHandler +.thumb_set DMA1_Channel7_IRQHandler, halt + +.weak ADC1_2_IRQHandler +.thumb_set ADC1_2_IRQHandler, halt + +.weak USB_HP_CAN1_TX_IRQHandler +.thumb_set USB_HP_CAN1_TX_IRQHandler, halt + +.weak USB_LP_CAN1_RX0_IRQHandler +.thumb_set USB_LP_CAN1_RX0_IRQHandler, halt + +.weak CAN1_RX1_IRQHandler +.thumb_set CAN1_RX1_IRQHandler, halt + +.weak CAN1_SCE_IRQHandler +.thumb_set CAN1_SCE_IRQHandler, halt + +.weak EXTI9_5_IRQHandler +.thumb_set EXTI9_5_IRQHandler, halt + +.weak TIM1_BRK_IRQHandler +.thumb_set TIM1_BRK_IRQHandler, halt + +.weak TIM1_UP_IRQHandler +.thumb_set TIM1_UP_IRQHandler, halt + +.weak TIM1_TRG_COM_IRQHandler +.thumb_set TIM1_TRG_COM_IRQHandler, halt + +.weak TIM1_CC_IRQHandler +.thumb_set TIM1_CC_IRQHandler, halt + +.weak TIM2_IRQHandler +.thumb_set TIM2_IRQHandler, halt + +.weak TIM3_IRQHandler +.thumb_set TIM3_IRQHandler, halt + +.weak TIM4_IRQHandler +.thumb_set TIM4_IRQHandler, halt + +.weak I2C1_EV_IRQHandler +.thumb_set I2C1_EV_IRQHandler, halt + +.weak I2C1_ER_IRQHandler +.thumb_set I2C1_ER_IRQHandler, halt + +.weak I2C2_EV_IRQHandler +.thumb_set I2C2_EV_IRQHandler, halt + +.weak I2C2_ER_IRQHandler +.thumb_set I2C2_ER_IRQHandler, halt + +.weak SPI1_IRQHandler +.thumb_set SPI1_IRQHandler, halt + +.weak SPI2_IRQHandler +.thumb_set SPI2_IRQHandler, halt + +.weak USART1_IRQHandler +.thumb_set USART1_IRQHandler, halt + +.weak USART2_IRQHandler +.thumb_set USART2_IRQHandler, halt + +.weak USART3_IRQHandler +.thumb_set USART3_IRQHandler, halt + +.weak EXTI15_10_IRQHandler +.thumb_set EXTI15_10_IRQHandler, halt + +.weak RTCAlarm_IRQHandler +.thumb_set RTCAlarm_IRQHandler, halt + +.weak USBWakeUp_IRQHandler +.thumb_set USBWakeUp_IRQHandler, halt + .end |