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

查看: 4088|回复: 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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版