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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
为什么在中断向量表中不直接 LDR PC,"异常地址"。而是使用一个标号,然有再在后面使用 DCD 定义这个标号。+ f/ k4 @5 F" p; p- W2 x

该用户从未签到

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指向一个特定的地址,这个地址就是中断向量表。
. j8 D8 |- a' x- l1 R

该用户从未签到

4#
 楼主| 发表于 2022-10-9 13:03 | 只看该作者
Terran 发表于 2022-10-9 11:06
' r3 g2 [$ x9 y% _, [因为LDR指令只能跳到当前PC 4kB 范围内,而 B 指令能跳转到 32MB 范围,而现在这样在 LDR PC, "xxxx"这条指 ...

: O& T& r( B: I% V0 m6 {! p1 {LDR 不是可以全空间跳转的吗?
1 M8 J: |4 [- z% Z在ARM 微控制器基础与实战中,程序5.3就有的。!!
0 r' s! C. h7 Z9 |
6 G1 H+ x/ w+ o# }, p

点评

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

该用户从未签到

5#
发表于 2022-10-9 14:06 | 只看该作者
Maskman 发表于 2022-10-9 13:03" y$ O* z! t/ v0 K# ^
LDR 不是可以全空间跳转的吗?& C4 ~* [7 y( x9 u: q% ?+ u
在ARM 微控制器基础与实战中,程序5.3就有的。!!

3 R, r* j- r4 y  LLDR 伪指令通过设置指令缓冲池,才能实现全范围跳转,而 LDR 指令则只能实现 4KB 范围跳转。: F/ L8 o! N, w0 x  R( a
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-8 16:44 , Processed in 0.125000 second(s), 28 queries , Gzip On.

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

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

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