你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 4089|回复: 3

STM32的中断处理过程

[复制链接]

1

主题

4

回帖

0

蝴蝶豆

初级会员

最后登录
2020-8-11
发表于 2011-12-7 23:41:45 | 显示全部楼层 |阅读模式
我有一个疑问,在启动代码中,复位中断向量地址处用的是DCD Reset_Handler,并不是跳转指令 b Reset_Handler或LDR PC,=Reset_Handler。那么启动时是怎么会跳转执行Reset_Handler子程序的呢?
请各位大虾帮忙解惑!
其它中断也是同样的,都是在向量表中放的DCD XXXX_Handler ,不知道是怎样跳转到中断入口函数的。

ARM9的启动代码就不是这样的,在中断向量处直接用的跳转指令诸如“LDR PC,=Reset_Handler”之类
是否CM3与ARM7/9的异常处理机制不同呢?
我暂时是这样理解的:
中断向量地址处用DCD伪指令来存放ISR的入口地址,在发生异常时CM3自动跳转到相应的中断向量地址处存放的ISR入口地址,执行相应的ISR。不需要用跳转指令--不知道这样理解对不对???
请各位大虾不吝指教!!!
<
回复

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2011-12-8 09:48:10 | 显示全部楼层

RE:STM32的中断处理过程

这样写的原因是,启动的时候将中断向量压栈到RAM中,为的是加快中断的处理速度。
回复 支持 反对

使用道具 举报

3

主题

185

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2011-12-12 22:55:39 | 显示全部楼层

回复:STM32的中断处理过程

跳转指令都是通过压栈来是实现的,说句更直接的话,就是改变PC指针。指针改变了,也就跳转了。
回复 支持 反对

使用道具 举报

1

主题

4

回帖

0

蝴蝶豆

初级会员

最后登录
2020-8-11
 楼主| 发表于 2011-12-20 14:13:35 | 显示全部楼层

RE:STM32的中断处理过程

多谢回复!!!!
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版