【精编推荐】ARM硬件试题库及答案

更新时间:2023-04-28 23:04:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

【精编推荐】ARM硬件试题库及答案

嵌入式硬件助理工程师认证考试试题题库

一、选择题

1、以下说法不正确的是(B )。

A、任务可以有类型说明

B、任务可以返回一个数值

C、任务可以有形参变量

D、任务是一个无限循环

2、用图形点阵的方式显示一个16*16点阵汉字需要(B )字节。

A、8

B、32

C、16

D、64

3、下列描述不属于RISC计算机的特点的是(C)。

A.流水线每周期前进一步。

B.更多通用寄存器。

C.指令长度不固定,执行需要多个周期。

D.独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输。

4、存储一个32位数0x2168465到2000H~2003H四个字节单元中,若以大端模式存储,则

2000H存储单元的内容为( D)。

A、0x21

B、0x68

C、0x65

D、0x02

5、μCOS-II中对关键代码段由于希望在执行的过程中不被中断干扰,通常采用关中断的方式,以下X86汇编代码正确而且不会改变关中断之前的中断开关状态的是(D)

A. 先CLI、执行关键代码、再STI

B. 先STI、执行关键代码、再CLI

C. 先POPF、CLI、执行关键代码、再PUSHF

D. 先PUSHF、CLI、执行关键代码、再POPF。

6、RS232-C串口通信中,表示逻辑1的电平是(D )。

A、0v

B、3.3v

C、+5v~+15v

D、-5v~-15v

7、ARM汇编语句“ADD R0, R2, R3, LSL#1”的作用是(A)。

A. R0 = R2 + (R3 << 1)

B. R0 =( R2<< 1) + R3

C. R3= R0+ (R2 << 1)

D. (R3 << 1)= R0+ R2

8、IRQ中断的入口地址是( C)。

A、0x00000000

B、0x00000008

C、0x00000018

D、0x00000014

9、S3C2420X I/O口常用的控制器是(D)。

(1)端口控制寄存器(GPACON-GPHCON)。

(2)端口数据寄存器(GPADA T-GPHDAT)。

(3)外部中断控制寄存器(EXTINTN)。

(4)以上都是。

10、实时操作系统中,两个任务并发执行,一个任务要等待其合作伙伴发来信息,或建立某个条件后再向前执行,这种制约性合作关系被成为(A)。

A. 同步

B. 互斥

C. 调度

D. 执行

11、和PC系统机相比嵌入式系统不具备以下哪个特点( C)。

A、系统内核小

B、专用性强

C、可执行多任务

D、系统精简

12、ADD R0,R1,#3属于(A)寻址方式。

A. 立即寻址

B. 多寄存器寻址

C. 寄存器直接寻址

D. 相对寻址

13、GET伪指令的含义是( A)

A. 包含一个外部文件

B. 定义程序的入口

C. 定义一个宏

D. 声明一个变量

14、存储一个32位数0x876165到2000H~2003H四个字节单元中,若以小端模式存

储,则2000H存储单元的内容为( C)。

A、0x00

B、0x87

C、0x65

D、0x61

15、μCOS-II操作系统不属于( C)。

A、RTOS

B、占先式实时操作系统

C、非占先式实时操作系统

D、嵌入式实时操作系统

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

的值为(D )。

A. 0x2000

B. 0x86

C. 0x2008

D. 0x39

17、寄存器R13除了可以做通用寄存器外,还可以做(C )。

A、程序计数器

B、链接寄存器

C、栈指针寄存器

D、基址寄存器

18、FIQ中断的入口地址是( A)。

A、0x0000001C

B、0x00000008

C、0x00000018

D、0x00000014

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

A. 8位,16位

B. 16位,32位

C. 16位,16位

D. 32位,16位

20、ARM寄存器组有(D )个寄存器。

A、7

B、32

C、6

D、37

21、若R1=2000H,(2000H)=0x28,(2008H)=0x87,则执行指令LDR R0,[R1,#8]!后R0

的值为(D )。

A. 0x2000

B. 0x28

C. 0x2008

D. 0x87

22、寄存器R15除了可以做通用寄存器外,还可以做( A)

A. 程序计数器

B. 链接寄存器

C. 堆栈指针寄存器

D. 基址寄存器

23、嵌入式系统有硬件和软件部分构成,以下(C)不属于嵌入式系统软件。

A. 系统软件

B. 驱动

C. FPGA编程软件

D. 嵌入式中间件

24、μCOS-II操作系统属于(B)

A、顺序执行系统

B、占先式实时操作系统

C、非占先式实时操作系统

D、分时操作系统

25、ARM指令集是( B)位的。

A. 16

B. 32

C. 8

D. 24

26、假设R1=0x31,R2=0x2 则执行指令ADD R0,R1,R2 LSL #3 后,R0的值是( C)

A. 0x33

B. 0x34

C. 0x39

D. 0x38

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

A、程序计数器

B、链接寄存器

C、栈指针寄存器

D、基址寄存器

28、ARM寄存器组有(C )个状态寄存器

A、7

B、32

C、6

D、37

29、和PC机系统相比下列哪个不是嵌入式系统独具的特点(C)

A、系统内核小

B、专用性强

C、可执行多任务

D、系统精简

30、Unicode编码与(A)编码方式兼容。

A、ASCII码

B、GBK

C、GB2312

D、区位码

31、嵌入式系统有硬件和软件部分构成,以下(C)不属于嵌入式系统软件。

A. 系统软件

B. 驱动

C. FPGA编程软件

D. 嵌入式中间件

32、Cache用于存放主存数据的部分拷贝,主存单元地址与Cache单元地址之间的转换用(A)完成。

A.硬件 B. 软件 C. 用户 D. 程序员

33、在μC/OS-II系统中,OSTimeTick()函数只被以下(A)函数或过程所调用。

A. OSTickISR

B. OSShed

C. OSCtxSw

D. OSIntCtxSw

34、每种嵌入式操作系统都有自身的特点以吸引相关用户,下列说法错误的是(D)。

A. 嵌入式Linux提供了完善的网络技术支持;

B. μCLinux是专门为没有MMU的ARM芯片开发的;

C. μC/OS-Ⅱ操作系统是一种实时操作系统(RTOS);

D. WinCE提供完全开放的源代码。

35、下列关于存储管理单元(MMU)说法错误的是(B)。

A. MMU提供的一个关键服务是使各个任务作为各自独立的程序在其自己的私有存储空间中运行。

B. 在带MMU的操作系统控制下,运行的任务必须知道其他与之无关的任务的存储需求情况,这就简化了各个任务的设计。

C. MMU提供了一些资源以允许使用虚拟存储器。

D. MMU作为转换器,将程序和数据的虚拟地址(编译时的连接地址)转换成实际的物理地址,即在物理主存中的地址。

36、下列CPSR寄存器标志位的作用说法错误的是(D)。

A. N:负数

B. Z: 零

C. C: 进位

D. V: 借位

37、S3C2410X处理器为用户进行应用设计提供了支持多主总线的IIC接口。处理器提供符合IIC协议的设备连接的串行连接线为(C)。

A. SCL和RTX

B. RTX和RCX

C. SCL和SDA

D. SDA和RCX

38、栈和队列的共同特点是(C)。

A. 都是先进先出

B. B. 都是先进后出

C. 只允许在端点处插入和删除元素

D. 没有共同点

39、有如下程序

main()

{

int x=1,a=0,b=0;

switch(x)

{

case 0: b++;

case 1: a++;

case 2: a++;b++;

}

printf("a=%d,b=%d\n",a,b);

}

该程序的输出结果是(A)。

A. a=2 ,b=1

B. a=1, b=1

C. a=1, b=0

D. a=2, b=2

40、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(D)。

A. 函数调用可以作为独立的语句存在

B. 函数调用可以作为一个函数的实参

C. 函数调用可以出现在表达式中

D. 函数调用可以作为一个函数的形参

41、以下说法正确的是(C)。

A. C语言程序总是从第一个的函数开始执行

B. 在C语言程序中,要调用函数必须在main()函数中定义

C. C语言程序总是从main()函数开始执行

D. C语言程序中的main()函数必须放在程序的开始部分

42、寄存器R15用作( B )。

A. 栈指针寄存器

B. 程序计数器

C. 当前程序状态寄存器

D. 基地址寄存器

43、IRQ中断的优先级别是( D )。

A. 1

B. 2

C. 3

D. 4

44、LDR R2,[R3,#128] 的寻址方式是( C )。

A. 寄存器寻址

B. 寄存器移位

C. 变址寻址

D. 间接寻址

45、S3C2410有( B )个USB接口。

A. 1

B. 2

C.3

D. 4

46、ARM处理器的工作模式有( C )种。

A. 5

B.6

C. 7

D.8

二、填空题:

1、串行通信方式有三中单工通信、双工通信和半双工通信。

2、填写μC/OS-II中任务创建函数OSTaskCreate()的四个参数的含义:OSTaskCreate(

MyTask, //(任务的函数指针)

(void *)s, //(传给任务函数的参数)

&TaskStartStk[TASK_STK_SIZE - 1], //(任务的堆栈指针)

0 //(任务的优先级号)

);。

3、ARM7指令系统采用三级流水线指令,分别包括:取指、译码和执行。

4、TCP/IP在多个层引入了安全机制,其中TLS协议位于(传输)层。

5、OSTaskSuspend (self)可把正在运行的任务挂起(或等待),参数self指任务自身的优

先级。用此函数挂起的任务可通过 OSTaskResume(self)函数唤醒。

6、下列程序的输出结果是(“Hello”)。

maim ()

{ char b[]="Hello you";

b[5]=0;

printf ("%s\n",b); }

7、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为(0 )。

8、在ARM处理器的各种模式中,大多数应用程序运行在(用户)模式,当一个高优先级

中断产生时会进入(快速中断)模式,在复位或软件软中断时进入(特权)模式。

9、一个嵌入式系统结构有典型的四层组成,包括:硬件层、中间层、软件层和功能层。

10、一个FAT文件系统卷有四部分组成,包括:保留区、 FAT区、根目录和数

据区。

11、事件控制块ECB中OSEventType表示事件类型,OSEventCnt表示信号量计数器

(和信号量的值)。

12、串行通信方式有三中单工通信、双工通信和半双工通信。

13、OSTaskSuspend (self)可把正在运行的任务挂起(或等待),参数self指任务

自身的优先级。用此函数挂起的任务可通过 OSTaskResume(self) 函数唤醒。

14、如果信号量是用于表示打印机不忙,那么该信号量的初始值应设为 1 。

15、若一个优先级为48的任务就绪,则在就绪表中,OSRdyTbl[]的 OSRdyTbl[6]的D0 置

位,变量OSRdyGrp的D6 置位。

16、Socket接口是TCP/IP网络的__ API ______,定义了许多函数或例程。常用的Socket

类型有两种为_流式(stream)__Socket和_数据报式(datagram)_Socket。其中_流式(stream)__Socket是面向连接的,_数据报式(datagram)_Socket是面向无连接的。

17、调试程序时调入的文件最好为 Debug 版本下编译生成的.axf文件,该版本的文件包

含部分调试用到的信息。

18、S3C44B0X使用 ARM7(或ARM7TDMI) 内核,工作频率为 66MHZ 。

19、在图形操作系统中,字符通常有两种存储方式:一种是图形点阵(或点阵) 方式;一

种是矢量图形(或矢量图)方式。在嵌入式开发系统中使用的都是图形点阵方式。

20、和信号量用数值表示不同,邮箱可以使一个任务向令一个任务发送一个指针型

21、变量,该变量包含了特定消息的数据结构。

22、S3C44B0提供_两个__个独立的异步串口,都可以运行于__中断 __模式或__ DMA ___

模式。

23、16、ARM处理器的两种工作状态为 ARM 状态和 Thmub 状态。

24、17、USB家庭中有三位成员,即主机(或host)、设备(或device)、集线器(或

Hub)。

25、ARM存储器有两种存储模式,即大端模式和小端模式。假设Y=0x46134存储在2000H~

2003H四个内存单元中,若以小端模式存储,则(2000H)=__0x34 __、(2001H)= 0x61 _、(2002H)=_0x04_、(2003H)=__0x00__。

26、信号量有两种类型,分别为:二进制(或binary)型和记数器(或counter)型。

27、影响流水线性能的因素有(互锁)和(跳转指令)。

28、某数码相机内置128MB的存储空间,拍摄分辨率设定为1600×1200像素,颜色为24

为,若不采用压缩技术,使用内部存储器最多可以存储(23)张照片,该相机最多支持(224)种色彩。

29、对于8位二进制数,-7的反码和补码分别是(11111000)和(11111001)。

30、在CPU的状态寄存器中,如果符号标志为“1”,表示运算结果为(负);如果进位标

识为“0”,表示(无进位或借位)。

三、判断题

1、程序运行过程中的资源可以是显示器、键盘,但不可以是一个数组或变量(X)

2、21、在μCOS-II操作系统中,已知Task1的优先级为12,Task2的优先级为26。假如

在Task2运行过程中发生键盘中断,在执行中断服务程序时Task1进入就绪状态,则中断返回时Task1得到CPU的使用权。(√)

3、若定义任务task1的优先级为12,则不能再定义其他任务的优先级也为12(√)

4、任务创建后即开始调度(X)

5、液晶工作在文本模式下时,既可以显示英文字符也可以显示汉字(X)

6、处于就绪状态的任务只能切换到运行状态(X)

7、等待消息函数WaitMessage(0)中的“0”表示此函数的超时等待时间为0秒(X)

8、若OSTaskSuspend (prio)函数把正在延时的任务挂起,则调用一次对应的唤醒函数即可

使该任务切换到就绪状态。(X)

9、调试程序时,需要停止程序运行后才可查看变量内容(√)

10、μCOS-II操作系统中移植成功后即可使用文件系统(X)

11、将模拟信号转换成数字信号的电路是DA转换器。(×)

12、IIC是同步串行数据总线,。(√)

13、S3C2410的处理器对内存的访问只能通过Load/Store指令来实现。(√)

14、Nand Flash比Nor Flash成本高,可靠性差。(×)

15、C语言程序可以嵌套加入汇编程序模块。(√)

16、运算放大器的输出电压范围一般大于电源电压的范围。(×)

17、由于CPU内部寄存器的访问速度较高,根据ATPC标准,应尽可能使函数的参数控制

在4个以下。(√)

(√)

18、ARM处理器结构体系中具有T变种处理器核可以工作在ARM状态和Thumb状态。

四、简答题

1、ARM微处理器的编程模型是指ARM微处理器的基本工作原理和一些与程序设计相关的基本技术细节,ARM编程模型主要有哪五个方面?主要是指什么内容?

答案要点:

ARM微处理器的工作状态:ARM状态、Thumb状态

ARM体系结构的存储器格式:大端格式、小端格式

ARM微处理器的工作模式:7种运行模式

ARM体系结构的寄存器组织:37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器,哪些寄存器是可编程访问的,取决微处理器的工作状态及具体的运行模式。

ARM微处理器的异常状态:7种异常

2、画图说明μCOS-II操作系统各状态之间是如何切换的,并举出至少一个相应的切换条

件或函数。

切换条件每三个得1分,共3分,每种切换能举出一个正确条件或函数即可。

3、什么是μCOS-II操作系统的时钟节拍?

答:时钟节拍是特定的周期性中断。(1分)这个中断可以看作是系统心脏的脉动。中断间的时间间隔取决于不同的应用,一般在10ms~200ms之间。(1分)时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。(1分)时钟节拍率越快,系统的额外开销就越大。(1分)

4、ARM处理器有几种工作模式?并做说明每种工作模式的含义。

答:ARM处理器有7种工作模式:

用户模式(usr)- 正常程序执行的模式0.5分

快速中断模式(fiq)- FIQ异常响应时进入此模式0.5分

中断模式(irq)- IRQ异常响应时进入此模式0.5分

管理员模式(svc)- 系统复位和软件中断响应时进入此模式0.5分

中止模式(abt)- 用于虚拟存储及存储保护0.5分

系统模式(sys)- 与用户类似,但有直接切换到其它模式等特权0.5分

未定义模式(und)- 未定义指令异常响应时进入此模式0.5分

除了用户模式外,其他模式均可视为特权模式0.5分

5、什么是操作系统?操作系统在“硬件、操作系统、应用程序、硬件驱动”四者中,处于哪两层之间??

答:操作系统是计算机中最基本的程序。操作系统负责计算机系统中全部软硬件资源的分配与回收、控制与协调等并发的活动;操作系统提供用户接口,使用户获得良好的工作环境;操作系统为用户扩展新的系统提供软件平台。(3分)

操作系统处于应用程序和硬件驱动之间。(1分)

6、什么是嵌入式系统?分别从狭义和广义两方面说明。

答:从广义上说,凡是与产品结合在一起具有嵌入式特点的控制系统都可以叫嵌入式系统如电子表、超声波测距仪等职能仪表,常见CPU为MCS51系列芯片。(2分)

从狭义上说,嵌入式系统是指而嵌入式系统一般指在开发时移植了操作系统,功能较复杂的便携式电子设备,如手机、掌上电脑、MP4等,常见CPU为ARM、DSP、SOC等。(2分)

7、简述任务切换的过程。

答:当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态,即CPU寄存器中的全部内容。(1分)这些内容保存在任务的当前状态保存区,也就是任务自己的堆栈中。(1分)入栈工作完成以后,就把下一个将要运行的任务的当前状态从任务的堆栈中重新装入CPU的寄存器,并开始下一个任务的运行。这个过程就称为任务切换。(1分)做任务切换所需要的时间取决于CPU有多少寄存器要入栈。(1分)

8、S3C44B0的存储系统中,0xc000000和0xc080000的含义是什么?它们之间的512kbyte 空间做什么用?

答:0xC000000是 SDRAM的起始地址,系统的程序存储空间从0xC080000开始。(2分)512Kbyte的空间划分出来,作为系统的LCD显示缓冲区使用(更新其中的数据,就可以更新LCD的显示)。(2分)

9、简述你对嵌入式和嵌入式系统的理解?

答:凡是使用了CPU的便携式电子设备都可以叫嵌入式,(如电子表、超声波测距仪等职能仪表,常见CPU为MCS51系列芯片) (2分)。而嵌入式系统一般指在开发时移植了操作系统,功能较复杂的便携式电子设备,(如手机、掌上电脑、MP4等,常见CPU为ARM、DSP、SOC等)。(2分)

10、嵌入式设计流程?

答:1)系统需求分析

2)体系结构设计

3)硬件/软件协同设计

4)系统集成

5)系统测试(每点约1分,酌情错2点,扣1分)

11、什么是代码临界区,进、出代码临界应分别做什么?

答:代码的临界区也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。(2分)

为确保代码临界区的执行,在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断(在任务切换时,地址、指令、数据等寄存器堆栈保护)。(2分)

12、简要叙述嵌入式系统开发流程。

参考答案及要点:

建立开发环境;

配置开发主机;

建立引导装载程序BOOTLOADER;

下载已经移植好的操作系统;

建立根文件系统;

开发应用程序。

13、试简述常用的三极管放大电路和技术特点。

答:共射电路:具有较大的电压放大倍数和电流放大倍数,输入电阻和输出电阻适中。

共集电路:输入电阻大,输出电阻小,电压放大倍数小于1。

共基电路:输入电阻小,频率特性好。

14、嵌入式系统的软件层次结构包括哪些部分?简单说明各部分的功能与作用。

答:驱动层程序、操作系统、应用程序接口和应用程序。

驱动层程序:为上层软件提供设备的操作接口。

操作系统:进程管理、进程间通信、内存管理等。

应用程序接口:复杂函数和数据结构的集合,简化应用程序的开发。

应用程序:实现用户功能。

五、阅读程序题

1、根据以下程序回答问题。

struct NODE

{int k;

struct NODE *link;

};

main()

{ struct NODE m[5],*p=m,*q=m+4;

int i=0;

while(p!=q)

{p->k=++i;p++;

q->k=i++;q--;

}

q->k=i;

for(i=0;i<5;i++)printf("%d",m[i].k);

printf("\n");

}

(1)i、p、struct NODE和m的分别占据多少字节的内存空间?(4分)

(2)p和q指针初始指向的地址相差多少字节?(4分)

(3)程序运行后的输出结果是什么?(4分)

参考答案及要点:

(1)i、p、struct NODE和m的分别占据4字节、4字节、8字节和40字节的内存空间。(2)p和q指针初始指向的地址相差32字节

(3)程序运行后的输出结果13431。

2、在分辨率为320x240的LCD上,执行完下列程序后,画出在LCD上显示的图形并在划横线处添加注释。

void Main_Task(void *Id)

{ int oldx,oldy;

PDC pdc;

ClearScreen();

pdc=CreateDC();

SetDrawOrg(pdc, LCDWIDTH/2,LCDHEIGHT/2, &oldx, & oldy);

Circle(pdc,0, 0, 50); //_________________________

MoveTo(pdc, -50, -50);// _________________________

LineTo(pdc, 50, -50);// _________________________

ArcTo(pdc, 80, -20, TRUE, 30); //_________________________

LineTo(pdc, 80, 20);

ArcTo(pdc, 50, 50, TRUE, 30);

LineTo(pdc, -50, 50);

ArcTo(pdc, -80, 20, TRUE, 30);

LineTo(pdc, -80, -20);

ArcTo(pdc, -50, -50, TRUE, 30);

OSTimeDly(3000);

}

答:

320x240的LCD

以原点为圆心,50为半径画圆(0.5分

画笔移动到坐标(-50,-50)处(0.5分)

从坐标(-50, -50)到(50, -50)画直线(0.5分)

从当前坐标开始以30为半径顺时针画圆弧到坐标(80, -20)(0.5分)

3、在划线处添加代码,完成下面的程序,实现在task1中计算1到10的平均值,完成后

向task2发送信号量。Task2无限期等待信号量,等到后在LCD上显示收到平均值。

___ OS_EVENT *math_Sem;__;

Void Task1()

{ int i ,average=0,sum=0;

__ math_Sem=OSSemCreate(0);__

for(i=1;i<=10;i++)

{

sum=sum+i;

}

average=sum/10;

_ OSSemPost(math_Sem);__;

for(;;)

{ OSTimeDly(100);}

}

void task2()

{ __ U8 err; ___;

for(;;)

{ _ OSSemPend(math_Sem,0,&err);_ ;

LCD_printf("we get the average!\n");

____ OSTimeDly(100);__ ;

}

}

4、在划横线处添加代码,完成下面创建一个任务的过程,要求优先级为36,任务栈大小为

256。

OS_STK task1_Stack [256]={0, };

void task1 (void *Id);

#define task1_Prio 36

OSInit() ; //操作系统初始化

OSTaskCreate (task1,(void *)0,(OS_STK *)&task1_Stack[256-1],task1_Prio);

OSStart() ;//操作系统任务调度开始

5、ARM指令集的每一条指令都是4字节的,下面是一段中断入口程序,在空白处填上该

中断的类型和中断向量。

ENTRY

B Startup ; 复位中断,0x001分

B UndefHandle ; 未定义指令中断,0x04 1分

B SWIHandle ; 软中断,0x081分

B PAbtHandle ; 预取中止,0x0C1分

B DAbtHandle ; 数据中止,0x00000010

NOP; ;系统保存未用,0x00000014

B IRQHandle ; IRQ中断,0x181分

B FIQHandle ; 快速中断,0x1C1分

6、下面的程序描述了键盘消息的创建和使用过程,认真阅读并在划横线的地方添加适当的

注释。

void Key_Scan_Task(void *Id)//按键扫描任务

{ U32 key;

INT8U err;

POSMSG pmsg;

for (;;){

OSMboxPend(Key_MailBox, 0, &err); //__请求键盘邮箱 1分

本文来源:https://www.bwwdw.com/article/o56q.html

Top