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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
为什么在中断向量表中不直接 LDR PC,"异常地址"。而是使用一个标号,然有再在后面使用 DCD 定义这个标号。5 t- c; ~% ]7 J. G7 p3 h4 _

该用户从未签到

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指向一个特定的地址,这个地址就是中断向量表。9 j# e$ E' i# g% f; w) D* V

该用户从未签到

4#
 楼主| 发表于 2022-10-9 13:03 | 只看该作者
Terran 发表于 2022-10-9 11:06
" g7 x1 w7 h; X$ j因为LDR指令只能跳到当前PC 4kB 范围内,而 B 指令能跳转到 32MB 范围,而现在这样在 LDR PC, "xxxx"这条指 ...
& }8 ^9 g* ?" p: q: z) ]
LDR 不是可以全空间跳转的吗?- Z! R( M+ F6 b  G, [0 o
在ARM 微控制器基础与实战中,程序5.3就有的。!!
7 L0 g# @4 x8 u% h+ Z0 E  e
4 k5 _5 x4 f3 P& {! ]) x* _& U

点评

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

该用户从未签到

5#
发表于 2022-10-9 14:06 | 只看该作者
Maskman 发表于 2022-10-9 13:03' n8 h! G2 u+ ]5 H
LDR 不是可以全空间跳转的吗?
+ d1 X9 p! `% W# ^在ARM 微控制器基础与实战中,程序5.3就有的。!!

3 k- a; u. z% e/ k+ QLDR 伪指令通过设置指令缓冲池,才能实现全范围跳转,而 LDR 指令则只能实现 4KB 范围跳转。
5 `4 d; p3 y- X9 ^, D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-29 16:22 , Processed in 0.078125 second(s), 28 queries , Gzip On.

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

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

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