ARM知识点

1、ARM有几种工作模式?
答:有7个基本工作模式:用户模式(user)、系统模式(system)、数据访问中止模式(abort)、未定义指令中止模式(undef)、快速中断模式(FIQ)、外部中断模式(IRQ)、管理模式(SVC)、cortex-A系列特有:M(monitor):安全模式。
记忆方法:USA UFI SM。

2、ARM核有多少个寄存器?
答:有37个32位长的寄存器。

3、什么寄存器用于存储PC 和 LR寄存器?
答:R15(PC)、R14(LR)。

4、R13通常用过来存储什么?
答:SP(栈指向)栈指针。

5、哪种模式使用的寄存器最少?
答:用户模式/系统模式(不用SPSR)。

6、在Thumb指令集中,哪些寄存器处于low group?
答:R0-R7 属于低位寄存器。

7、CPSR 的哪一个位反映了处理器的状态?
答:第 5 位(从 0 开始), T 状态位。

8、 所有的 Thumb 指令采取什么对齐方式?
答:半字对齐 (2 个字节 ) 。

9、ARM 有哪几个异常类型?
答:(1) 复位异常 -> SVC 模式 [开发板复位 ]
(2) 未定义异常 -> UDF 模式 [执行未定义的指令 ]
(2) 软中断异常 -> SVC 模式 [通过 SWI 指令产生 ]
(4) 取数据终止 -> ABT 模式 [没有取到数据 ]
(5) 取指令终止 -> ABT 模式 [没有取指令 ]
(6)IRQ 中断 -> IRQ 模式 [硬件触发的 IRQ 中断 ]
(7)FIQ 中断 -> FIQ 模式 [硬件触发的 FIQ 中断 ]

10、为什么快速请求中断 FIQ( Fast Interrupt Request )的服务程序地址要位于 0X1C ?
答:尽可能快,省去跳转指令 (FIQ 的向量地址是异常中断向量表的最高地址,而异常中断向量表后跟的是程序代码, FIQ 的中断服务程序紧接中断向量表存放, 中断过程可以节省一条跳转指令 )。

11、ARM 核是如何让 FIQ 快速处理 ?
答:(1)FIQ 模式有私有的 r8-r12, 如果只是用私有的寄存器,不需要保护通用寄存器。
(2)FIQ 异常在异常向量表最顶端,可以直接写 FIQ 异常处理函数,不需要跳转。

12、在复位后, ARM 处理器处于何种模式、何种状态?
答:管理模式 (SVC) 、 ARM 状态。

13、ARM 处理器的八种寻址方式?
①.立即数寻址: 要求以 #开头 mov r0 , #9
②.寄存器寻址: add r0,r1,r2 r0 = r1+r2
mov r0,r1 r0 = r1
③.寄存器间接寻址: ldr r0,[r1] r0 = [r1]
④.寄存器移位寻址: add r0,r1,r2,lsl #2
⑤.基址变址寻址: //前索引 ldr r0,[r1,#4] //r0 = *(r1 + 4)
//后索引 ldr r0,[r1],#4 //r0 = *r1,r1 = r1 + 4 ; data = *p ++;
//自动索引 ldr r0,[r1,#4]! //r0 = *(r1 + 4); r1 = r1 + 4
⑥.多寄存器寻址: ldmxx r0!,{r1-r15}
⑦.相对寻址: 以 PC 的当前值为基地址,指令中的地址号为偏移量,两种之和得到操作数的地址。
⑧.堆栈寻址: stmfd sp!,{r0-r12}。

14、SWP 指令的优势是什么 ?用来实现什么功能?
答:功能: 在寄存器和存储器之间, 由一次存储器读和一次存储器写组成的原子操作。 完成一个字节或字的交换。 可以用来实现信号量。
SWP Rd , Rm , [Rn]
第一步:先将 Rn 所指向的内容传给 Rd, Rd = [Rn]
第二步:再将 Rm 的内容传给 Rn 所指向的地址 [Rn] = Rm

15、ARM 处理器的执行状态?
答:①.ARM 状态:
所有指令 32 位宽
所有指令必须 word 对齐
pc 值由 bits 【 31:2 】决定, bits 【 1:0】未定义
②.Thumb 状态:
所有指令宽度 16 位
必须半字 halfword 对齐
pc 值由 bits 【 31:1 】决定

16、异常产生时, ARM 核自动完成的任务?、
答:<1>CPSR 拷贝到异常模式的 SPSR
<2> 设置 CPSR 的相应位
进入 ARM 状态
设为对应的异常模式
禁止中断 (中断产生的时候 )
<3> 将 PC 保存到异常模式的 LR
<4> 修改 PC 的值到异常向量表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《你不知道的JavaScript》中卷 KYLE SIMPSON 著 单业 姜南 译

一部分 类型和语法 1.内置类型&#xff08;7&#xff09; null、undefined、boolean、number、string、object、symbol(ES6新增&#xff0c;符号) 2.toString()和Json.stringify() (1)字符串、数字、布尔值和null的JSON.stringify()规则与toString基本相同 (2)如果传递给JSON.…

CP命令引发的思考

转自&#xff1a;OSC开源社区今天同事用 cp 命令&#xff0c;把他给惊到了&#xff01;背景是这样的&#xff1a;他用 cp 拷贝了一个 100 G的文件&#xff0c;竟然一秒不到就拷贝完成了&#xff01;用 ls 看一把文件&#xff0c;显示文件确实是 100 G。sh-4.4# ls -lh -rw-r-…

安装windows XP或者2003时提示找不到硬盘驱动器的解决办法(总结)转载

&#xff08;本文属于转载&#xff09; 由于SATA接口在近年才推出&#xff0c;Windows XP问世的时候&#xff0c;还没有它&#xff0c;所以安装Windows XP时&#xff0c;需要调用SATA驱动程序&#xff0c;而你又没有提供相应的驱动&#xff0c;就会出现无法识别硬盘的错误。 不…

C宏定义注意事项

1、带参数的宏与函数的优缺点 2、宏定义一个函数时&#xff0c;需要注意每个参数都需要用括号括起来。 如&#xff1a;#define Min(a,b) ((a)<(b)?(a):(b)) 3、宏定义一年中的秒数 #define SECONDE_OF_YEAR 606024365UL &#xff08;√&#xff09; #define SECONDE_OF_YE…

不要再来北上广深了

大家好&#xff0c;我是写代码的篮球球痴最近我们的一个离职群里面讨论一个问题&#xff0c;就是在北上广深工作的性价比问题&#xff0c;我有几个同事这样描述。一线城市确实会遇到一些机会&#xff0c;也有可能会遇到一些改变命运的机会。不过对于生活来说&#xff0c;一线城…

mogndb 慢查询

0 摘要 在MySQL中&#xff0c;慢查询日志是经常作为我们优化查询的依据&#xff0c;那在MongoDB中是否有类似的功能呢&#xff1f;答案是肯定的&#xff0c;那就是开启Profiling功能。该工具在运行的实例上收集有关MongoDB的写操作&#xff0c;游标&#xff0c;数据库命令等&a…

Linux命令中正则表达式的运用

一、正则表达式简介 事实上&#xff0c;正则表达式不仅适用于linux&#xff0c;多种编程语言中也可以使用到它&#xff0c;因为它实际上是人们对于某种规律的表达方式。 如果要把他的所有应用都讲上的话那这篇文章会变的太长以至于无法阅读&#xff0c;我只介绍他在linux下和几…

程序的内存分配模式(堆栈以及静态存储区,文字常量区,代码区)

程序的内存分配模式 一个由 C/C编译的程序占用的内存分为以下几个部分&#xff1a; 1、栈区&#xff08; stack &#xff09;—由编译器自动分配释放&#xff0c;存放函数的参数值&#xff0c;局部变量的值 等。其操作方式类似于数据结构中的栈。 2、堆区&#xff08; heap&a…

稚晖君教你制作全球最迷你的自平衡机器人

摘要&#xff1a;Nano是一个小巧可爱的机器人&#xff0c;身高大约10公分&#xff0c;特点是平衡感好&#xff0c;长得很白以及善于卖萌。作为全球最迷你的自平衡机器人&#xff0c;Nano身材虽小&#xff0c;但配置有丰富的传感器—陀螺仪&#xff0c;超声波&#xff0c;Motion…

9.13作业

2、python test.py执行的三个阶段是什么&#xff1f;在哪个阶段识别文件内的python语法&#xff1f; 先运行python解释器&#xff0c;将python文件从硬盘读取到内存&#xff0c;解释执行内存读取的代码&#xff0c;开始识别python语法。 在第3个阶段识别文件内的python语法 3、…

tomcat 6.0环境, 网页超链接,文件下载另存为时,不能识别msi文件类型,另存为只能选htm和所有文件。...

问题: tomcat 6.0环境&#xff0c; 网页超链接&#xff0c;文件下载另存为时&#xff0c;不能识别msi文件类型&#xff0c;另存为只能选htm和所有文件。 解决办法:在 ...\Tomcat 6.0\conf 文件夹下的 web.xml 文件中添加以下类型声明:<mime-mapping><extension>msi…

ARM不同位数系统int字节数区别

32位和64位系统区别及int字节数 一&#xff09;64位系统和32位有什么区别&#xff1f; 1、64bit CPU拥有更大的寻址能力&#xff0c;最大支持到16GB内存&#xff0c;而32bit只支持4G内存 2、64位CPU一次可提取64位数据&#xff0c;比32位提高了一倍&#xff0c;理论上性能会…

我的广州大伯

2021年11月24日我正在办公室和同事调试项目&#xff0c;突然接到我婶的微信语音电话&#xff0c;我婶说广州的大伯过世了&#xff0c;他们现在正在去大伯家的路上。我大伯是爷爷奶奶最大的儿子&#xff0c;爷爷奶奶在世时&#xff0c;家里的很多事情&#xff0c;都会和大伯商量…

VUE 入坑系列 一 双向绑定

html代码<div id"app"><p>{{message}}</p><span>message1</span> <input v-model"message"><span>message2</span> <input v-model"message"></div> View Codejavascript代码var …

semihost/ITM机制浅析以及使用JLINK通过ITM调试stm32单片机

使用ITM机制实现调试stm32单片机&#xff0c;实现printf与scanf。 ITM简介 ITM机制是一种调试机制&#xff0c;是新一代调试方式&#xff0c;在这之前&#xff0c;有一种比较出名的调试方式&#xff0c;称为半主机&#xff08;semihosting&#xff09;方式。 在pc上编写过C语…

spring+ibatis配置

spring-dao.xml配置 <bean id"sqlMapClient" class"org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name"configLocation" value"classpath:/sql-map-config.xml"/> <property…

5毛钱搞一个2.4GHz射频信号探测器

射频电子领域神秘而又朦胧&#xff0c;今天我们通过一个小小的射频检波电路来体验一下射频世界的魅力。实验目的制作一个 2.4 GHz 射频信号探测器&#xff0c;电路简单总成本不到 5 毛钱。该电路在靠近 2.4 GHz 无线信号时 LED 灯会闪烁。这是我用制作好的 2.4 GHz 射频信号靠近…

华为宣布:免费培养8000名嵌入式开发者!学习免费!实践免费!辅导免费!

真正的5G时代&#xff0c;万物互联各行各业都离不开智能物联网技术物联网 (IoT) 设备会生成海量数据通过分析这些数据可以提供业务洞察力优化业务决策&#xff0c;实现流程自动化也由于物联网的迅速兴起&#xff0c;专业性人才稀缺各阶层课程层出不穷&#xff0c;开发者眼花缭乱…

关于××× 相关收集资料

1、服务&#xff1a; 那要建立一个必需要什么条件呢&#xff1f; 第一&#xff1a;服务器要有一个固定的外网IP地址。 第二&#xff1a;服务器至少要有两张网卡&#xff0c;来接口和内部网的通信。 当有了这样的条件&#xff0c;我们就可以来建立一台服务器了。转载于:https://…

现在不要着急买房

我写这篇文章&#xff0c;是因为确实最近有人向我咨询买房的事&#xff0c;今天抽空想聊下这方面的事&#xff0c;如果观点不正确&#xff0c;欢迎评论说出你的想法。是前天&#xff0c;我一个同学咨询我买房的事情。我也直接说了&#xff0c;最近两年&#xff0c;把钱放在口袋…