微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > stm32 中断向量表 NVIC_SetVectorTable() 应用

stm32 中断向量表 NVIC_SetVectorTable() 应用

时间: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 小端模式,高字节在高位,低字节在低位,所以这个要反过来看。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top