这篇文章已经说了 STM32 的启动过程:
http://blog.csdn.net/lanmanck/article/details/8252560
我们也知道怎么跳到main函数了,那么,中断发生后,又是怎么跑到中断入口地址的呢?
从stm32f10x.s可以看到,已经定义好了一大堆的中断响应函数,这就是 中断向量表 ,标号__Vectors,表示中断向量表入口地址,例如:
AREA RESET, DATA, READONLY ; 定义只读数据段,实际上是在CODE区(假设STM32从FLASH启动,则此中断向量表起始地址即为0x8000000)
EXPORT __Vectors
IMPORT OS_CPU_SysTickHandler
IMPORT OS_CPU_PendSVHandler
__Vectors DCD __initial_sp ; Top of Stack
DCD Reset_Handler ; Reset Handler
DCD NMI_Handler ; NMI Handler
DCD HardFault_Handler ; Hard Fault Handler
DCD MemManage_Handler ; MPU Fault Handler
DCD BusFault_Handler ; Bus Fault Handler
DCD UsageFault_Handler ; Usage Fault Handler