社区
Linux_Kernel
帖子详情
在ARM文章经常看到[1:0]和[31:2]这是什么意思啊.
yanjinbin0
2011-02-25 05:08:12
比如有这样一句话:
寄存器R15用作程序计数器(PC)。在ARM状态下,位[1:0]为0,位[31:2]用于保存PC
[1:0]为0,是什么意思呢(猜测:是32位中的0~1位应该设置为0吗???)
[31:2]是什么意思呢
...全文
1011
8
打赏
收藏
在ARM文章经常看到[1:0]和[31:2]这是什么意思啊.
比如有这样一句话: 寄存器R15用作程序计数器(PC)。在ARM状态下,位[1:0]为0,位[31:2]用于保存PC [1:0]为0,是什么意思呢(猜测:是32位中的0~1位应该设置为0吗???) [31:2]是什么意思呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hawk198
2011-02-26
打赏
举报
回复
受教了,原来是这样的啊,我以为只有0:31这样才能这样表示
bluejays
2011-02-26
打赏
举报
回复
如果一个十进制数是100(10的平方)的倍数,显然他(十进制)的最低两位都是0。
同样的
如果一个二进制数是4(2的平方)的倍数,那么他(二进制)的最低两位都是0。
二进制、十六进制玩多了,这些就很自然了。
yanjinbin0
2011-02-26
打赏
举报
回复
楼上的,有个疑问,
你怎么根据PC值是4的倍数,而推断出最底两位肯定为0呢.
看到某书上说:
寄存器R15用作程序计数器(PC)。在ARM状态下,位[1:0]为0,位[31:2]用于保存PC.
没讲这两位是做什么用的。
bluejays
2011-02-25
打赏
举报
回复
1
PC是32位的(31:0)。ARM状态下,指令是32位的,指令地址都是4字节对齐,所以PC值肯定是4的倍数,所以最低两位(位[1:0])肯定为0,前面的30位位[31:2]用于保存PC
如果是thumb状态,指令是16位的,指令地址是2字节对齐。
李迟
2011-02-25
打赏
举报
回复
楼主说对了。这些形式经常在芯片手册中看到。
哈皮歪詩
2011-02-25
打赏
举报
回复
You are right.
[31:2], bit 31 down to bit 2
[1:0] the lower two bits
Linux-
arm
(1)ATF启动流程
ARM
ATF-A (
ARM
Trusted Firmware-A)是
ARM
官方为
ARM
v8-A架构提供的一套开源、安全、可靠的参考firmware实现。它主要面向
ARM
64(AArch64)和
ARM
32(AArch32)架构,提供了全面的安全世界(Secure World)支持和丰富的功能。ATF-A支持
ARM
v7-A和
ARM
v8-A架构系列处理器,包括Cortex-A53/57/72/73/75/76/77等。
ARM
的安全启动—ATF TF-A以及它与UEFI的互动_atf runtime spmd
ATF的官网一张图包含了更多的信息:如果你仅仅对ATF的UEFI启动路径感兴趣,下面这张图可能更加简单明了:NXP 2160A的开源和良好的文档,让我们可以在一个具体的平台上切片观察ATF的具体实现,建议大家仔细阅读参考资料2和下载代码来看看。关于ATF启动这里先整个宏观的概念。这个blog讲的很好,就不重复写了,自己写还写不到这么清晰,图页很漂亮。原文链接:https://www.cnblogs.com/arnoldlu/p/14175126.html。
ARM
TTBR0TTBR1寄存器与
ARM
32页表复制。TTBR0TTBR1两寄存器在
ARM
,
ARM
32,
ARM
64linux中分页管理页表基地址的存放不同,CP15 CP2控制TTBR01附加协处理
https://www.digiproto.com/news/176.html
ARM
_UNWIND_BACKTRACE
代码仓:https://codechina.csdn.net/fu85152
31
25/
arm
_unwind_backtrace.git 参考
文章
:
arm
上backtrace的分析与实现原理_流风回雪的博客-CSDN博客 2.2 unwind 对于APCS来说,优点是分析起来比较简单,跟踪起来也可以很容易。缺点就是指令过多,栈消耗大,占用的寄存器也过多,比如每次调用 都必须将r11,r12,lr,pc入栈。为了解决这个问题,提出了第二种方案: 使用unwind就能避免这些问题,生产指令的效率..
ARM
32、
ARM
64寄存器的比较
ARM
32位寄存器
ARM
32寄存器表
ARM
64寄存器
ARM
64寄存器使用64位下NEON寄存器
ARM
64与
ARM
32的兼容
ARM
64与
ARM
32寄存器的映射AArch32上的系统寄存器AArch32上的PSTATE
ARM
64的异常中断
ARM
32位寄存器
ARM
32寄存器表
ARM
64寄存器
ARM
64寄存器使用
ARM
v8-A具有
31
个64位通用寄存器,在所有异常级别都可以访问 x0~x7...
Linux_Kernel
4,469
社区成员
17,458
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章