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 小端模式,高字节在高位,低字节在低位,所以这个要反过来看。
STM32中断向量 相关文章:
- STM32 中断向量,优先级(12-02)
- STM32中断向量嵌套NVIC理解(11-25)
- 关于STM32中断向量表的位置 、重定向问题(11-13)
- STM32 中断向量表的位置 、重定向(11-10)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)