新闻中心

EEPW首页>嵌入式系统>设计应用> stm32 中断向量表 NVIC_SetVectorTable() 应用

stm32 中断向量表 NVIC_SetVectorTable() 应用

作者: 时间:2016-11-17 来源:网络 收藏
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中断向量

评论


技术专区

关闭