OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3971|回复: 2

关于stm32f103的中断向量表

[复制链接]

3

主题

13

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2017-1-11
在线时间
6 小时
发表于 2017-9-11 18:28:59 | 显示全部楼层 |阅读模式
20金钱
在stm32不完全手册中,串口iap 一章 (第492-493页)有如下的描述:[size=13.3333px]在 main 函数执行过程中, 如果 CPU 得到一个中断请求, PC 指针仍强制跳转到地址
0X08000004 中断向量表处,而不是新程序的中断向量表,如图标号④所示;
这里我不是很理解,想问下这句话的依据是什么。因为我从《cortex-m3权威指南》中查阅的资料是,向量表偏移寄存器(VTOR)存的是向量表的起始地址,而不是中断/异常的入口偏移地址。
所以我认为 当程序发生中断/异常时,CPU会先通过VTOR寻找向量表,然后再根据异常/中断号在向量表中的偏移,找到中断入口。
所以当新的程序有重新设置了SCB->VOTR后,新程序的中断应该会从新程序的中断向量表里偏移,从而找到中断入口。不知道拿理解的有误,希望指正。

谢谢.

最佳答案

查看完整内容[请看2#楼]

VTOR存储的是偏移量无疑。 看STM32F103的编程手册,4.4.4节,对VTOR的说明如下: 明确说了,就是存储偏移量的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-9-11 18:29:00 | 显示全部楼层
VTOR存储的是偏移量无疑。
看STM32F103的编程手册,4.4.4节,对VTOR的说明如下:
无标题.png
明确说了,就是存储偏移量的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2017-1-11
在线时间
6 小时
 楼主| 发表于 2017-9-12 09:21:21 | 显示全部楼层
正点原子 发表于 2017-9-11 18:29
VTOR存储的是偏移量无疑。
看STM32F103的编程手册,4.4.4节,对VTOR的说明如下:

Vector table base offset filed.
很明显,意思是向量表基地址偏移字段。存的是向量表偏移。所以中断发生后会根据新的基地址去寻找对应中断。所以我觉得您的文档是不是写的有些偏差
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 11:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表