【期末指北】嵌入式系统——选择题(feat. ChatGPT)

news2024/11/14 13:45:47

嵌入式系统

作者|Rickyの水果摊

时间|2023年2月20日


基本信息 ☘️

本博客摘录了一些 嵌入式系统常见选择题,供有需求的同学们学习使用。

部分答案解析由 ChatGPT 生成,博主进行审核。

使用教材信息:《嵌入式系统设计与应用——基于 ARM Cortex-A8 和 Linux(第二版)》


题目概览 🧑🏻‍💻

1、下面关于哈佛结构描述正确的是( )

A、程序存储空间与数据存储空间分离

B、存储空间与 IO 空间分离

C、程序存储空间与数据存储空间合并

D、存储空间与 IO 空间合并


2、关于ARM处理器的工作模式,以下说法错误的是()

A、用户模式是程序正常执行的工作模式

B、管理模式负责处理存储器故障,实现虚拟存储器和存储器的保护

C、系统模式运行特权级的操作系统任务

D、当处理器处于用户模式时,如果没有异常发生是不能改 变工作模式的


3、存储一个32位数0x2168465到2000H~2003H四个字 节单元中,若以小端模式存储,则2000H存储单元内容 为( )

A、 0x21 B、 0x68 C、0x65 D、0x02


4、下面关于ARM处理器的体系结构描述哪一个是错误的: ( )

A、三地址指令格式

B、所有的指令都是单周期执行

C、指令长度固定

D、Load-Store结构


5、ARM 指令集和Thumb 指令集分别是( )位的。

A、8 位,16 位

B、16 位,32 位

C、16 位,16 位

D、32 位,16 位


6、ARM Cortex A8的工作状态包括( )。

A、测试状态和运行状态

B、挂起状态和就绪状态

C、就绪状态和运行状态

D、ARM状态和Thumb状态


7、对于ARM7三级流水线,当一条指令被译码时,下一条指令正被( )

A、取指

B、译码

C、PC值递增

D、执行


8、复位后,ARM处理器处于()模式

A. USER

B. SVC

C. SYSTEM

D. ARM


9、寄存器R13除可做通用寄存器外,还可以做( )

A、程序计数器 B、链接寄存器 C、栈指针寄存器 D、基址寄存器


10、在下列ARM处理器的各种模式中,只有( )模式不可以自由地改变处理器的工作模式

A、用户模式(User)

B、系统模式(System)

C、终止模式(Abort)

D、中断模式


11、0x17&0x1A的运算结果是()

A. 0x01

B. 0x11

C. 0x17

D. 0x12


12、对寄存器R1的内容乘以4的正确指令是()

A. LSR R1,#2

B. LSL R1,#2

C. MOV R1,R1, LSL #2

D. MOV R1,R1, LSR #2


13、MOV R1,#0x1000 LDR R0,[R1],#4 执行上述指令序列后,R1寄存器的值是()

A. 0x1000

B. 0x1004

C. 0x0FFC

D. 0x4


14、R0=0x05, 执行BIC R0,R0,#3的运算后,R0结果是( )

A. 0x02

B. 0x03

C. 0x04

D. 0x05


15、GET伪指令的含义是( )

A. 包含一个外部文件

B. 定义程序的入口

C. 定义一个宏

D. 声明一个变量


16、若R1=2000H,(2000H)=0x86,(2008H)=0x39 ,则执行指令LDR R0,[R1,#8]!后R0的值为( )

A. 0x2000

B. 0x86

C. 0x2008

D. 0x39


17、将ARM处理器R0中的一个字节的数据,存入由R1+4 指示的内存区域,且地址自动更新,则使用的ARM指令是()

A. STR R0,[R1,#4]

B. STRH R0,[R1,#4]!

C. STRH R0,[R1,#4]

D. STRB R0,[R1,#4]!


答案解析 ✍️

1、下面关于哈佛结构描述正确的是( )。

A、程序存储空间与数据存储空间分离

B、存储空间与IO空间分离

C、程序存储空间与数据存储空间合并

D、存储空间与IO空间合并

【ChatGPT 解析】

哈佛结构 是指在计算机体系结构中,将 「指令存储器(程序存储空间)与数据存储器」 分离的结构。在哈佛结构中,指令和数据存储器使用不同的总线和不同的物理存储器,这种结构可以提高数据存取的效率,因为指令和数据可以并行地访问。

而存储空间与IO空间分离,是指在计算机体系结构中,将存储器和IO接口分离的结构。在这种结构中,存储器和IO设备使用不同的总线和不同的物理接口,以实现相互独立的访问。这种结构可以提高计算机系统的稳定性和可靠性,同时也方便了硬件和软件的设计和维护。

和哈佛结构类似,存储空间与IO空间分离的结构也可以提高访问效率,因为存储器和IO设备可以并行地访问。但是这两者的分离方式不同,哈佛结构分离的是指令存储器和数据存储器,而存储空间与IO空间分离的结构分离的是存储器和IO接口。

因此,选项A描述的是哈佛结构的特点,程序存储空间和数据存储空间是分离的,选项B、C、D均不符合哈佛结构的定义。


2、关于ARM处理器的工作模式,以下说法错误的是:

A、用户模式是程序正常执行的工作模式

B、管理模式负责处理存储器故障,实现虚拟存储器和存储器的保护

C、系统模式运行特权级的操作系统任务

D、当处理器处于用户模式时,如果没有异常发生是不能改变工作模式的

【ChatGPT 解析】

管理模式 也称为特权模式,用于处理特殊的系统操作,如中断、异常、操作系统的内核代码等。

但是 管理模式并不负责处理存储器故障 ,这是由 数据访问中止模式 负责的。

A、用户模式是程序正常执行的工作模式,ARM处理器在用户模式下执行应用程序,访问受限的系统资源和寄存器,并且无法直接执行特权指令。如果应用程序试图执行特权指令或访问受限的资源,会导致异常发生,处理器会切换到异常模式。

C、系统模式也是一种特权模式,用于运行特权级别的操作系统任务。在系统模式下,操作系统可以执行特权指令,访问所有资源和寄存器,并且可以进行特权级别的操作,如任务切换、内存管理等。

D、该选项略有争议,但是按照教材P27、P28的内容,并且对比 B 选项,该选项也算正确,


3、存储一个 32 位数 0x2168465 到 2000H~2003H 四个字节单元中,若以小端模式存储,则2000H存储单元内容 为( )

A、 0x21

B、 0x68

C、0x65

D、0x02

【博主解析】

大端/小端模式是重点知识,可以把小端模式按照下图中「倒车入库」的方式理解,就会容易很多了。

image-20230220113631867


4、下面关于ARM处理器的体系结构描述哪一个是错误的: ( )

A、三地址指令格式

B、所有的指令都是单周期执行

C、指令长度固定

D、Load-Store结构

【ChatGPT 解析】

ARM处理器的指令集体系结构(ISA)采用的是RISC(Reduced Instruction Set Computing)架构,以精简的指令集为基础,支持高效的指令流水线执行。

B、并非所有的ARM指令都是单周期执行的。由于指令的复杂度不同,一些指令需要多个时钟周期才能完成执行。ARM处理器为了保持高效性,采用了流水线执行的方式,可以在一个时钟周期内执行多个指令的不同阶段。但是,在某些情况下,由于数据相关性或控制相关性等因素,可能需要中断流水线执行,从而导致指令执行的延迟。

A、ARM 指令集采用三地址指令格式,即一个指令可以同时操作三个操作数(源操作数1、源操作数2和目的操作数)。

C、该选项略有争议,指令长度方面,ARM处理器采用变长指令长度的方式,指令长度可以是2字节或4字节,以满足不同的应用需求。这里的固定可能是指 指令长度要么是 2 字节或 4 字节。(本题在一些搜题软件上的答案也是B)

D、Load-Store 结构则是 ARM 处理器的一种常见的指令执行方式,即只有Load和Store指令才能访问存储器中的数据,其他指令只能通过寄存器来操作数据,这样可以提高存储器的访问效率。


5、ARM 指令集和Thumb 指令集分别是( )位的。

A、8 位,16 位

B、16 位,32 位

C、16 位,16 位

D、32 位,16 位

【ChatGPT解析】

ARM 指令集和 Thumb 指令集分别是 32 位和 16 位的。

ARM指令集具有更强的功能和灵活性,而Thumb指令集则具有更小的指令长度和更高的代码密度,可以在节省存储空间和提高执行速度之间做出平衡。

在 ARMv7 指令集中,还有一种指令集,称为 Thumb-2,它既支持 16 位指令,又支持 32 位指令,可以在需要时灵活地切换使用。


6、ARM Cortex A8的工作状态包括( )。

A、测试状态和运行状态

B、挂起状态和就绪状态

C、就绪状态和运行状态

D、ARM 状态和 Thumb 状态

【ChatGPT解析】

ARM Cortex A8是一款基于 ARMv7 架构的处理器,支持 ARM 状态和 Thumb 状态两种工作状态

在ARM状态下,处理器执行32位的ARM指令,提供较高的性能和复杂度;在Thumb状态下,处理器执行16位的Thumb指令,提供较高的代码密度和低功耗。处理器可以在ARM状态和Thumb状态之间切换,以根据应用程序的需求来平衡性能和功耗。

除了ARM状态和Thumb状态,处理器还支持一些特殊状态,如 Jazelle 状态和 ThumbEE 状态。在Jazelle状态下,处理器执行Java字节码,用于支持Java虚拟机(JVM)和Just-In-Time(JIT)编译器。在ThumbEE状态下,处理器执行基于Thumb指令的执行环境(TEE),用于安全应用程序的运行。


7、对于 ARM7 三级流水线,当一条指令被译码时,下一条指令正被( )

A、取指。

B、译码。

C、PC值递增。

D、执行

【博主解析】

理想的 ARM7 的流水线由三个阶段组成,分别是取指、译码和执行。如下图所示:

image-20230220114956940

当前指令正在被译码时,下一条指令已经被取指,等待进入译码阶段。这样可以充分利用处理器的性能,提高指令的执行效率。


8、复位后,ARM处理器处于()模式。

A. USER

B. SVC

C. SYSTEM

D. ARM

【博主解析】

根据教材 P27 页表格,复位后,ARM 处理器位于 管理模式(Supervisor,SVC)


9、寄存器R13除可做通用寄存器外,还可以做( )

A、程序计数器

B、链接寄存器

C、栈指针寄存器

D、基址寄存器

【ChatGPT解析】

在ARM体系结构中,R13 是栈指针寄存器(Stack Pointer),通常简称SP。它的作用是存储当前栈的地址,以及在函数调用时分配和回收栈空间。


10、在下列ARM处理器的各种模式中,只有( )模式不可以自由地改变处理器的工作模式( )。

A、用户模式(User)

B、系统模式(System)

C、终止模式(Abort)

D、中断模式

【博主解析】

根据教材 P27、28 页内容,只有用户模式(User)模式不可以自由地改变处理器的工作模式。

用户模式是 ARM 处理器最基本的工作模式,用于一般的应用程序的执行。在用户模式下,处理器只能访问受保护的寄存器和内存区域,不能执行特权指令,也不能改变处理器的工作模式。

其他模式,如系统模式、中断模式和终止模式,都具有更高的特权级别,可以执行更多的指令和操作,并且可以改变处理器的工作模式。例如,系统模式用于操作系统内核的执行,中断模式用于响应外部中断事件,终止模式用于处理严重的错误情况。

因此,只有用户模式不可以自由地改变处理器的工作模式。


11、0x17 & 0x1A的运算结果是()

A. 0x01

B. 0x11

C. 0x17

D. 0x12

【ChatGPT解析】

进行位运算时,按位与运算符(&)会将两个操作数的对应位上的值进行「与」运算,只有当两个操作数的对应位上的值都为1时,结果位上的值才为1,否则为0。

对于0x17 & 0x1A,按位进行与运算:

  0001 0111
& 0001 1010
-----------
  0001 0010

因此,0x17 & 0x1A的运算结果是 0x12(十六进制),或者 18(十进制),所以选项D是正确的答案。


12、对寄存器R1的内容乘以4的正确指令是()

A. LSR R1,#2

B. LSL R1,#2

C. MOV R1,R1, LSL #2

D. MOV R1,R1, LSR #2

【ChatGPT解析】

要将寄存器 R1 中的内容乘以 4,可以使用逻辑左移指令(LSL)或移位后的移动指令(MOV)。

逻辑左移指令将操作数的二进制位向左移动指定的位数,并在右侧插入 0。移位后的移动指令将操作数左移指定的位数,并将结果移回到目标寄存器。

在选项A和D中,都使用了移位指令,但是是逻辑右移(LSR),而不是逻辑左移(LSL),这样不会得到正确的乘法结果。因此,选项A和D都是错误的。

在选项B中,使用了逻辑左移指令,但是没有将结果移回到目标寄存器,因此也是错误的。

正确的选项是C,使用移位后的移动指令将 R1 左移两位,然后将结果移回到 R1 中,从而得到 R1 的内容乘以4 的结果。

因此,正确的指令是:

MOV R1, R1, LSL #2

13、执行下面指令序列后,R1寄存器的值是( )。

MOV R1,#0x1000
LDR R0,[R1],#4

A. 0x1000

B. 0x1004

C. 0x0FFC

D. 0x4

【ChatGPT解析】

执行上述指令序列后,R1寄存器的值是 0x1004。

该指令首先将 0x1000 赋值给 R1,然后从地址 R1 开始,读取 4 个字节的数据到 R0,同时 R1 值加上 4。

因此,执行完指令序列后,R1 的值应该是 0x1004。


14、R0=0x05, 执行 BIC R0,R0,#3 的运算后,R0结果是( )

A. 0x02

B. 0x03

C. 0x04

D. 0x05

【ChatGPT解析1】

BIC R0, R0, #3

其中,「BIC」是指位清零指令(Bit Clear),将目标寄存器的指定位清零。

R0 是 ARM 处理器的寄存器名,这里表示目标寄存器。

#3 是一个立即数,表示要清零的位所在的位偏移量。因为 3 的二进制是 00000011,所以这个指令会将 R0 的二进制表示的低两位清零。

【ChatGPT解析2】

image-20230217144937357


15、GET伪指令的含义是( )

A. 包含一个外部文件

B. 定义程序的入口

C. 定义一个宏

D. 声明一个变量

【ChatGPT解析】

GET 是 ARM 汇编语言中的一个伪指令,用于将一个外部文件的内容包含到当前汇编文件中。可以将GET指令看作是「复制粘贴」操作,它会将外部文件的内容复制到指令所在的位置,从而使程序能够使用外部文件中的变量、常量、函数等信息。


16、若 R1=2000H,(2000H)=0x86,(2008H)=0x39 ,则执行指令LDR R0,[R1,#8]!后 R0 的值为( )。

A. 0x2000

B. 0x86

C. 0x2008

D. 0x39

【博主解析】

该指令的含义是:将地址为 R1+8 的内存数据读取到 R0 寄存器中,并将R1的值加上8(! 表示自动修改基地址R1的值)。

在本题中,R1=2000H,(2008H)=0x39,所以将 0x39 读入 R0 中,同时R1的值变为2008H。因此,R0的值为0x39。


17.将ARM处理器 R0 中的一个字节的数据,存入由 R1+4 指示的内存区域,且地址自动更新,则使用的ARM指令是()

A. STR R0,[R1,#4]

B. STRH R0,[R1,#4]!

C. STRH R0,[R1,#4]

D. STRB R0,[R1,#4]!

【ChatGPT解析】

  • STRB 指令是将 R0 寄存器中的 一个字节的数据 存储到存储器中,存储器的地址为R1+4,即[ R1 , #4 ]。而且在存储数据后,R1自动加上1,指向下一个字节。因此,STRB指令是将一个字节的数据从寄存器存储到内存中,并且自动更新目标地址。

  • STR指令是将 R0 寄存器中的 一个字的数据 存储到存储器中,存储器的地址为R1+4,即[ R1 , #4 ]。和STRB指令不同,STR指令存储的是一个字的数据,而不是一个字节,因此存储后R1自动加上4,指向下一个字的地址。

  • STRH 指令是将R0寄存器中的 一个半字的数据 存储到存储器中,存储器的地址为 R1+4,即[ R1 , #4 ]。和STRB指令类似,STRH指令存储的是一个半字的数据,存储后R1自动加上2,指向下一个半字的地址。

本题需要存储一个字节的数据,所以选择 D


写在最后 🎉

如果各位小伙伴觉得本博客写的不错,可以在左下角 点个赞 👍

这样可以让 更加优质的文章更大的概率 被推送到 搜索界面的榜首,为未来的小伙伴们节约更多搜索、阅读的成本。 🚀

同时,你的支持 也是我 不断创作 的动力。☘️

有想要看更多期末系列的小伙伴,也可以关注我的专栏「期末指北」。

我们 下期再见。👋

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

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

相关文章

电子技术——反馈系统概述

电子技术——反馈系统概述 许多物理系统都会形成反馈系统。但是有趣的是,负反馈系统理论却是由电子工程师所完善的。自从1928年第一个负反馈放大器诞生开始,负反馈系统从此登上历史的舞台,现在负反馈系统不光只用在电子工程上,而且…

算法18:LeetCode_链表相关算法题

链表无小事,只要是涉及到链表的算法题,边界值的设定尤为重要,而且及其容易出错误。这就要求我们平时多加练习。但是,我们在面试和笔试的过程中往往会碰到链表相关的题目,所以我们在笔试的时候一般都会借助系统提供的工…

比特数据结构与算法(第三章_上)栈的概念和实现(力扣:20. 有效的括号)

一、栈(stack)栈的概念:① 栈是一种特殊的线性表,它只允许在固定的一端进行插入和删除元素的操作。② 进行数据插入的删除和操作的一端,称为栈顶 。另一端则称为 栈底 。③ 栈中的元素遵守后进先出的原则,即…

推荐系统[三]:粗排算法常用模型汇总(集合选择和精准预估),技术发展历史(向量內积,WideDeep等模型)以及前沿技术

1.前言:召回排序流程策略算法简介 推荐可分为以下四个流程,分别是召回、粗排、精排以及重排: 召回是源头,在某种意义上决定着整个推荐的天花板;粗排是初筛,一般不会上复杂模型;精排是整个推荐环节的重中之重,在特征和模型上都会做的比较复杂;重排,一般是做打散或满足…

Android OTA 相关工具(一) 虚拟 A/B 之 snapshotctl

Android 虚拟 A/B 分区推出快三年了,不论是 google 还是百度结果,除了源代码之外,竟然没有人提到这个 Android Virtual A/B 的调试工具 ,着实让人感觉意外。 所以我相信还有不少人不知道 Android OTA 到底都有哪些调试工具&#…

【React】react-router 路由详解

🚩🚩🚩 💎个人主页: 阿选不出来 💨💨💨 💎个人简介: 一名大二在校生,学习方向前端,不定时更新自己学习道路上的一些笔记. 💨💨💨 💎目…

力扣-查找重复的电子邮箱

大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:182. 查找重复的电子邮箱二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果总结…

物联网对供应链管理的影响

物联网对于许多行业来说都是一项革命性技术,其应用领域涉及零售、交通、金融、医疗保健和能源等行业。物联网在供应链等流程中已经展示了其深度的潜力。管理、预测和监督应用程序有助于车队运输经理提高配送的运营效率,并增加决策的准确性。如今&#xf…

网络服务与应用

14.1网络服务与应用概述 14.2实验一:FTP 1、实验环境:如图,AR1作为FTP sever、AR2作为FTP client ,实现AR1与AR2之间的文件传输。 2、实验拓扑: 3、实验步骤: 步骤1:配置设备ip地址 AR1: …

固定值电阻的检测方法总结

🏡《总目录》 目录 1,概述2,测量方法3,检测方法3.1,读值3.2,测量3.3,排故4,总结1,概述 本文简单总结固定值电阻的测量与检查方法要点和注意事项。 2,测量方法 对于固定值电阻的测量来讲,直接将万用表红黑表笔分别插入到如下图所示的红色和黑色接线端。然后将万用表…

【MySQL】MySQL表的增删改查(进阶)

✨个人主页:bit me👇 ✨当前专栏:MySQL数据库👇 ✨算法专栏:算法基础👇 ✨每日一语:悟已往之不谏,知来者之可追。实迷途其未远,觉今是而昨非。 目 录🎄一. 数…

黑马点评项目总结(未完待续)

黑马点评项目总结0. 整体架构1. 短信登录模块1.1 基于session(1)后台发送验证码Code(2)登录、注册(3)校验登录状态1.2 基于Redis(1)后台发送验证码Code(2)登录…

ur3+robotiq ft sensor+robotiq 2f 140配置rviz仿真环境

ur3robotiq ft sensorrobotiq 2f 140配置rviz仿真环境 搭建环境: ubuntu: 20.04 ros: Nonetic sensor: robotiq_ft300 gripper: robotiq_2f_140_gripper UR: UR3 在安装sensor和gripper之前,先简单配置一下UR机械臂的仿真环境,可参考这篇博…

零入门kubernetes网络实战-16->使用golang给docker环境下某个容器里添加一个额外的网卡

《零入门kubernetes网络实战》视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 上一篇文章,我们使用了golang在veth pair链接的网络命名空间里添加了网卡, 本篇文章,我尝试,在docker环境下…

新建idea项目

目录IDEA系列之创建各种项目 https://blog.csdn.net/LOVEQD123/article/details/105886077 idea 创建项目的三种方式 https://blog.csdn.net/weixin_50034122/article/details/118754521 创建空项目 https://blog.csdn.net/qq_44537956/article/details/123075134 创建 spri…

百度百科词条怎么做?百度百科词条创建攻略分享

只要是想要将自己宣传出去的企业或是个人,都建议创建属于自己的百度百科词条,因为百度百科词条流量大、权重高、排名靠前,创建百度百科词条可以提高企业或是个人的知名度和口碑。 百度百科词条怎么做?每天都有用户在百度上搜索这…

携手亚马逊云科技,大地量子高精度功率预测系统助力清洁能源消纳提速增效

近年来,我国光伏和风电并网装机容量持续增长,截至2021年底,全国可再生能源装机规模突破10亿千瓦,占总发电装机容量的44.8%。其中,风电装机3.28亿千瓦、光伏发电装机3.06亿千瓦。风光电总装机和新增装机规模多年来位居全…

图解 script 标签中的 async 和 defer 属性

图解 script 标签中的 async 和 defer 属性 我们在工作中经常会碰到 script 标签,一般会有以下三种形式 <script srcxxx></script> <script srcxxx async></script> <script srcxxx defer></script>那么这三种形式的 script 标签有什么区…

java 多线程

1.什么是进程&#xff1f;什么是线程&#xff1f; 进程是:一个应用程序&#xff08;1个进程是一个软件&#xff09;。 线程是&#xff1a;一个进程中的执行场景/执行单元。 注意&#xff1a;一个进程可以启动多个线程。 我们在启动java程序的时候&#xff0c;会先启动JVM&am…

【2】MYSQL数据的导入与导出

文章目录 MYSQL-库(相同库名称)的导入导出MYSQL-库(不同库名称)的导入导出MYSQL-表的导入导出MYSQL-表的指定查询记录导入导出前提: 客户端工具是:SQLyog MYSQL-库(相同库名称)的导入导出 1、选中指定库——右键,选择【将数据库复制到不同的主机/数据库】 2、选中指…