×
单片机 > 单片机程序设计 > 详情

stm32 中断向量表 NVIC_SetVectorTable() 应用

发布时间:2020-06-01 发布时间:
|
STM32 的中断向量表的设置主要是用在IAP 程序中,
如果是普通的 flash 中只有一个程序,一般不需要设置这个。
顾名思义,这个表存放的是中断服务函数的入口地址,当发生中断时,
CPU来这个表中查询,以此获取中断函数的入口地址。
 
在stm32 的启动文件中,设置完成堆栈,就来设置 中断向量表,
 AREA    RESET, DATA, READONLY ;
定义只读数据段,实际上是在CODE区(假设STM32从FLASH启动,则此中断向量表起始地址即为0x8000000)
 
如果改变了程序的起始地址,这种就是IAP的情况了,像这个样子
那么这个时候就需要重新设置中断向量表
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00010000);//重新配置中断向量表
配合地址的改变,这样程序运行的时候才能找到中断服务函数的入口地址,正常执行。
 
附件:
对中断向量表更深入的解释
 
显然,200039c0就是栈顶地址,而08006F21就是reset_handler地址!
stm32 小端模式,高字节在高位,低字节在低位,所以这个要反过来看。

关键字:STM32  中断向量表 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于arm的指纹识别门禁系统是如何设计的