我是通过这个进行学习的,我觉得讲的很好,这里我稍加修改,作为自己的学习笔记: 嵌入式杂谈之中断向量表
前言
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 的初值(栈顶地址),后面会具体讲解。
文章来源:https://www.toymoban.com/news/detail-670530.html
启动文件
我们看一下STM32的启动文件,这边可以方便的看到中断向量表的内容。
文章来源地址https://www.toymoban.com/news/detail-670530.html
到了这里,关于【STM32】中断向量表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!