【STM32】中断向量表

我是通过这个进行学习的,我觉得讲的很好,这里我稍加修改,作为自己的学习笔记: 嵌入式杂谈之中断向量表

前言

STM32根据boot引脚的配置方式有3种启动方式,但是无论哪一种方式,对于STM32来说都是从0x0000 0000启动

STM32单片机启动第一件事就是取得中断向量表

中断向量表是一个4byte的数组,每个成员都是一个地址,指向相应的中断处理函数,当芯片处于不同的状态时,就会根据这段内容跳转到对应的地址去执行对应的程序。特别的第一个成员是栈顶地址,第二个成员是复位函数Reset_Handler

向量表

根据Arm的规定,cortex3 cortex4启动都是从0x0000 0000开始,

量表是一个WORD( 32 位整数,4byte)数组,每个下标对应一种异常,该下标元素的值则是该 ESR 的入口地址。向量表在地址空间中的位置是可以设置的,通过 NVIC 中的一个重定位寄存器来指出向量表的地址。在复位后,该寄存器的值为 0。因此,在地址 0 (即 FLASH 地址 0)处必须包含一张向量表,用于初始时的异常分配。

值得注意的是这里有个另类: 0 号类型并不是什么入口地址,而是给出了复位后 MSP 的初值(栈顶地址),后面会具体讲解。
【STM32】中断向量表_第1张图片

启动文件

我们看一下STM32的启动文件,这边可以方便的看到中断向量表的内容。
【STM32】中断向量表_第2张图片
【STM32】中断向量表_第3张图片

你可能感兴趣的:(STM32,stm32,单片机,嵌入式硬件)