完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ARMv8中,取消了协处理器,之前协处理器实现的功能,全部由系统寄存器来是实现。对于系统寄存器的访问,使用mrs,msr指令来访问。
指令编码如下: L: 1, mrs,读取系统寄存器值到通用寄存器中 L: 0, msr,将通用寄存器值写入到系统寄存器中 而系统寄存器的编码,由op1,CRn,CRm,op2来决定。如下图所示,更多的系统寄存器的编码,查看arm-spec。 比如,我要读取 OSDTRRX_EL1 系统寄存器,就可以使用 mrs 指令 op1,CRn,CRm,op2的编码组合有很多,arm并没有将所有的组合,均定义系统寄存器。对于未使用的编码组合,arm允许实现自定义这些系统寄存器的功能,比如gic的寄存器。 如下图,是GIC寄存器的编码组合。 对于这些实现自定义的系统寄存器,在写汇编程序的时候,是不能通过系统寄存器的名字去访问的,否则编译会报错。比如要访问 ICH_HCR_EL2,是不能通过以下指令去访问的。 为了解决访问自定义系统寄存器,arm定义了以下格式,来表示系统寄存器。 S 访问实现自定义寄存器,使用上述格式,来表示系统寄存器。 比如,对于上图中的GIC的寄存器ICH_HCR_EL2,就可以 为了写代码的方便,可以定义以下宏: 这样,在写代码的时候,就可以直接用系统寄存器的名字。 |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程介绍之烧写所需镜像
124 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程之烧写方法
506 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
710 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核源代码的目录结构和文件说明
634 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核简介
1225 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 12:42 , Processed in 0.769672 second(s), Total 40, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号