找回密码
 注册
关于网站域名变更的通知
查看: 201|回复: 4
打印 上一主题 下一主题

中断向量表中不直接 LDR PC,"异常地址"?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-10-9 09:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
为什么在中断向量表中不直接 LDR PC,"异常地址"。而是使用一个标号,然有再在后面使用 DCD 定义这个标号。
- {- ]: F4 Q: Q! I

该用户从未签到

2#
发表于 2022-10-9 11:06 | 只看该作者
因为LDR指令只能跳到当前PC 4kB 范围内,而 B 指令能跳转到 32MB 范围,而现在这样在 LDR PC, "xxxx"这条指令不远处,用"xxxx"DCD 定义一个字,而这个字里面存放最终异常服务程序的地址,这样可以实现4GB全范围跳转。

点评

LDR 不是可以全空间跳转的吗? 在ARM 微控制器基础与实战中,程序5.3就有的。!!  详情 回复 发表于 2022-10-9 13:03

该用户从未签到

3#
发表于 2022-10-9 11:19 | 只看该作者
当中断或异常发生的时候,CPU自动将PC指向一个特定的地址,这个地址就是中断向量表。) O- p' o8 ?  @) u0 S

该用户从未签到

4#
 楼主| 发表于 2022-10-9 13:03 | 只看该作者
Terran 发表于 2022-10-9 11:06
$ }$ f# ~" H' i$ P: h. U4 u因为LDR指令只能跳到当前PC 4kB 范围内,而 B 指令能跳转到 32MB 范围,而现在这样在 LDR PC, "xxxx"这条指 ...
$ b6 G8 ^" C9 W" r5 z% S
LDR 不是可以全空间跳转的吗?3 A( O0 P; H: _5 I
在ARM 微控制器基础与实战中,程序5.3就有的。!!: J; j  i8 M: Q/ B1 D

" ^7 W7 D, q. w  g/ ^( f$ W1 z* m* P

点评

LDR 伪指令通过设置指令缓冲池,才能实现全范围跳转,而 LDR 指令则只能实现 4KB 范围跳转。  详情 回复 发表于 2022-10-9 14:06

该用户从未签到

5#
发表于 2022-10-9 14:06 | 只看该作者
Maskman 发表于 2022-10-9 13:03' u' x8 f+ E  a: K% y6 ^+ q
LDR 不是可以全空间跳转的吗?
2 x* B2 `8 W( F- H在ARM 微控制器基础与实战中,程序5.3就有的。!!

7 N/ V* Y! y* V2 u& t; mLDR 伪指令通过设置指令缓冲池,才能实现全范围跳转,而 LDR 指令则只能实现 4KB 范围跳转。
2 X, A& N6 _0 L' }4 E; b" ]: t
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-29 10:23 , Processed in 0.125000 second(s), 28 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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