南邮(研)嵌入式系统复习题资料整理1 下载本文

内容发布更新时间 : 2024/12/24 1:02:28星期一 下面是文章的全部内容请认真阅读。

1. 嵌入式系统的特点有些什么?

答: 1)是专用的计算机系统,用于特定的任务;

2)资源较少,可以裁减;

3) 功耗低,体积小,集成度高,成本低; 4)使用实时操作系统;

5) 可靠性要求更高,具有系统测试和可靠性评估体系; 6)运行环境差异大

7)大部分程序固化在 ROM中; 8) 较长的生命周期;

9)嵌入式微处理器通常包含专用调试电路

2. 嵌入式系统的BooTLoader的功能是什么?

答:BootLoader是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程序代码。通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。(对于嵌入式系统来说,有的使用操作系统,也有的不使用操作系统,但在系统启动时都必须运行BootLoader,为系统运行准备好软硬件环境。)

3. 目前嵌入式操作系统有哪些?

答:1)μC/OS-II 嵌入式操作系统内核;2)VxWorks嵌入式实时操作系统;3)WinCE操作系统;4)Linux操作系统 ;5)Symbian操作系统

4. 构造嵌入式开发环境有哪几种形式?

答:1)交叉开发环境 ;2)软件模拟环境 ;3)评估电路板

5. 什么是可编程片上系统?

答:用可编程逻辑技术把整个系统放到一块硅片上,称作可编程片上系统SOPC.它是一种特殊的嵌入式系统,首先

它是SOC,即由单个芯片实现整个系统的主要逻辑功能,具有一般SOC基本属性;其次,它又具备软硬件在系统可编程的功能,是可编程系统,具有可裁剪、可扩充、可升级等灵活的设计方式。

6. 有时要使用Thumb技术的原因

答:(Thumb指令集是把32位的ARM指令集的一个子集重新编码后形成的一个特殊的16位指令集。)在性能和代码大小之间取得平衡,在需要较低的存储代码时采用Thumb指令系统用Thumb指令编写最小代码量的程序(能够很好的解决代码长度的问题),却取得以ARM代码执行的最好性能,可以带来低功耗,小体积,低成本。

7. 寄存器R13,R14,R15的专用功能各是什么?

答:1)寄存器R13保存堆栈指针SP;2)寄存器R14用作子程序链接寄存器,也称为LR ,用以保存返回地址;3)R15(PC)用作程序计数器。

8. 寄存器CPSR,SPSR的功能各是什么?

答:1)CPSR包含条件码标志、中断禁止位、当前处理器模式以及其它状态和控制信息。所有处理器模式下都可以访问当前的程序状态寄存器CPSR。

2)在每种异常模式下都有一个对应的物理寄存器——程序状态保存寄存器SPSR。当异常出现时,SPSR用于保存 CPSR的状态,以便异常返回后恢复异常发生时的工作状态。

9. ARM的异常有哪几种,各进入何种工作模式?他们退出各采用什么指令?

答:1)复位(Reset)异常(管理模式);

2)未定义指令(undefined instruction)异常(未定义模式); 3)软件中断(SWI)异常(管理模式);

4)指令预取中止(Prefech Abort)异常(中止模式); 5)数据访问中止(Data Abort)(中止模式); 6)快速中断请求(FIQ)(FIQ模式);

7)外部中断请求(IRQ)(IRQ模式)。

异常返回指令:1)SWI,未定义的返回:MOVS PC,R14;2)IRQ,FIQ,预取中止的返回:SUBS PC,R14,#4;3)数据中止返回并重新存取:SUBS PC,R14,#8

异常中断的优先级:复位(最高优先级)--> 数据异常中止--->FIQ --> IRQ--->预取指异常中止--->SWI---->未

定义指令(包括缺协处理器)。

10. 什么是数据的边界对齐?

答:默认情况下,ADS编译器使用的是数据类型的自然边界对其方式。数据的自然对其方式是指:如果该数据类型是n个字节的,那么该数据类型就按n字节对齐。

11. ARM的寻址方式有哪些?各写一条说明。

答:1)立即寻址 (1) ADD R0,R0,#1 /*R0←R0+1*/

(2)ADD R0,R0,#0x3f /*R0←R0+0x3f*/;

2)寄存器寻址(ADD R0,R1,R2 /*R0←R1+R2*/); 3)寄存器间接寻址 (1)、LDR R0,[R1] /*R0←[R1]*/;

(2)STR R0,[R1] /*[R1]←R0*/;

4)基址加偏址寻址(1)、LDR R0,[R1,#4];R0←[R1+4];

(2)、LDR R0,[R1,#4]!;R0←[R1+4]、R1←R1+4; (3)、LDR R0,[R1] ,#4;R0←[R1]、R1←R1+4

5)堆栈寻址(1)、 STMFD SP! {R1-R7,LR};

(2)、LDMFD SP! {R1-R7,LR};

6)块拷贝寻址(1)、LDMIA R0!, {R2-R9};(2)、STMIA R1,{R2,R9}; 7)相对寻址

12. 在ARM的立即寻址方式下其立即数如何在指令编码中表示?

答:在ARM数据处理指令中,当参与操作的第二操作数为立即数型时,每个立即数都是采用一个8位的常数循环

右移偶数位而间接得到。其中循环右移的位数由一个4位二进制的两倍表示,如果立即数记作,8位常数记作immed_8,4位的循环右移值记作rotate_imm,有效的立即数是由一个8位的立即数循环右移偶数位得到。因此有效立即数immediate可以表示成:=immed_8循环右移(2×rotate_imm)

13. 指令ADR,ADRL、LDR、NOP是如何处理地址值读入到寄存器中的?

答:ADR是将基于PC或者寄存器的地址值读入到寄存器的,ADR伪指令通常被替换成一条ADD指令或SUB指

令来实现该ADR指令的功能。而ADRL伪指令与ADR指令的最大不同之处是,它可以读取更大范围内的地址,而且被编译器替换成2条数据处理指令。LDR将一个32位的立即数或者一个地址值读取到寄存器中。大范围的地址读取。NOP在汇编时将被替换成ARM中的空操作。

14. 指令LDR R1,=0xFFF是如何将立即数0xfff读入到R1的?

答:由于需要读取的寄存器的数据超过了MOV及MVN指令可操作的范围,编译器将该常数放在数据缓冲区中,同时用一条基于PC的LDR指令读取该常数。 LDR R1,[PC,offset_to_LPOOL]. ............

LTORG ;声明数据缓冲池

LPOOL DCD OxFFF; OxFFF放在数据缓冲池中。

15. 如何在c语言程序中内嵌汇编?

答:内嵌的汇编指令包括大部分的ARM指令和Thumb指令,但是不能直接引用C的变量定义,数据交换必须通过ATPCS进行。嵌入式汇编在形式上表现为独立定义的函数体。

16. 如何在汇编语言程序访问C语言的全局变量?

答:汇编程序可以通过地址间接访问在C语言程序中声明的全局变量。通过使用IMPORT关键词引人全局变量,

并利用LDR和STR指令根据全局变量的地址可以访问它们。

对于不同类型的变量,需要采用不同选项的LDR和STR指令,如下所示: 1)unsigned char—— LDRB/STRB; 2)unsigned short——LDRH/STRH; 3)unsigned int——LDR/STR; 4)char ——LDRSB/STRSB; 5)Short——LDRSH/STRSH

17. 在C语言程序如何调用汇编语言程序?

答:为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS。在汇编程序中需要使用EXPORT伪操作来声明,使得本程序可以被其它程序调用。同时,在C程序调用该汇编程序之前需要在C语言程序中使用extern关键词来声明该汇编程序。

18. 汇编语言程序调用C语言程序?

答:为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS。在C程序中不需要使用任何关键字来声明将被汇编语言调用的C程序,但是在汇编程序调用该C程序之前需要在汇编语言程序中使用IMPORT伪操作来声明该C程序。在汇编程序中通过BL指令来调用子程序。

19. 在嵌入式C语言程序设计中为提高程序效率的相关设计技巧。

答:1)变量定义;2)参数传递;3)循环条件;4)以空间换时间;5)数学方法解决问题;6)使用位操作;7)嵌入汇编。

20.嵌入式Linux操作系统的特点。

答:广泛的硬件支持、内核高效稳定、开放源码,软件丰富、优秀的开发工具、完善的网络通信和文件管理机制,

一、 选择题

1、以下说法不正确的是(B )。 A、任务可以有类型说明 B、任务可以返回一个数值 C、任务可以有形参变量 D、任务是一个无限循环 2下列描述不属于RISC计算机的特点的是(C)。 A.流水线每周期前进一步。 B.更多通用寄存器。 C.指令长度不固定,执行需要多个周期。

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

3 存储一个32位数0x2168465到2000H~2003H四个字节单元中,若以大端模式存储,则2000H存储单元的内容为( D)。 A、0x21 B、0x68 C、0x65 D、0x02

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

C. 先POPF、CLI、执行关键代码、再PUSHF D. 先PUSHF、CLI、执行关键代码、再POPF。 5 RS232-C串口通信中,表示逻辑1的电平是(D )。 A、0v B、3.3v C、+5v~+15v D、-5v~-15v 6 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 7 IRQ中断的入口地址是( C)。FIQ的入口地址为0x0000001C A、0x00000000 B、0x00000008 C、0x00000018 D、0x00000014 8 S3C2420X I/O口常用的控制器是(D)。 (1)端口控制寄存器(GPACON-GPHCON)。

(2)端口数据寄存器(GPADAT-GPHDAT)。 (3)外部中断控制寄存器(EXTINTN)。 (4)以上都是。

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

A. 同步 B. 互斥 C. 调度 D. 执行

10 和PC系统机相比嵌入式系统不具备以下哪个特点( C)。 A、系统内核小 B、专用性强 C、可执行多任务 D、系统精简 11 、ADD R0,R1,#3属于(A)寻址方式。 A. 立即寻址 B. 多寄存器寻址 C. 寄存器直接寻址 D. 相对寻址 12、GET伪指令的含义是( A) A. 包含一个外部文件 B. 定义程序的入口 C. 定义一个宏 D. 声明一个变量 13、存储一个32位数0x876165到2000H~2003H四个字节单元中,若以小端模式存 储,则2000H存储单元的内容为( C)。 A、0x00 B、0x87 C、0x65 D、0x61 14、μCOS-II操作系统不属于( C)。

A、RTOS B、占先式实时操作系统 C、非占先式实时操作系统 D、嵌入式实时操作系统

15、若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDR R0,[R1,#8]!后R0的值为(D )。 A. 0x2000 B. 0x86 C. 0x2008 D. 0x39 16、寄存器R13除了可以做通用寄存器外,还可以做(C )。 A、程序计数器 B、链接寄存器 C、栈指针寄存器 D、基址寄存器 17、FIQ中断的入口地址是( A)。 A、0x0000001C B、0x00000008 C、0x00000018 D、0x00000014 18、ARM指令集和Thumb指令集分别是(D )位的。 A. 8位,16位 B. 16位,32位 C. 16位,16位 D. 32位,16位 19、ARM寄存器组有(D )个寄存器。 A、7 B、32 C、6 D、37

20、若R1=2000H,(2000H)=0x28,(2008H)=0x87,则执行指令LDR R0,[R1,#8]!后R0的值为(D )。 A. 0x2000 B. 0x28 C. 0x2008 D. 0x87 21、寄存器R15除了可以做通用寄存器外,还可以做( A) A. 程序计数器 B. 链接寄存器 C. 堆栈指针寄存器 D. 基址寄存器 22、嵌入式系统有硬件和软件部分构成,以下(C)不属于嵌入式系统软件。 A. 系统软件 B. 驱动 C. FPGA编程软件 D. 嵌入式中间件

26、假设R1=0x31,R2=0x2 则执行指令ADD R0,R1,R2 LSL #3 后,R0的值是( C) A. 0x33 B. 0x34 C. 0x39 D. 0x38

23、和PC机系统相比下列哪个不是嵌入式系统独具的特点(C) A、系统内核小 B、专用性强 C、可执行多任务 D、系统精简 24、Unicode编码与(A)编码方式兼容。 A、ASCII码 B、GBK C、GB2312 D、区位码

25 、Cache用于存放主存数据的部分拷贝,主存单元地址与Cache单元地址之间的转换用(A)完成。 A.硬件 B. 软件 C. 用户 D. 程序员

26 在μC/OS-II系统中,OSTimeTick()函数只被以下(A)函数或过程所调用。 A. OSTickISR B. OSShed C. OSCtxSw D. OSIntCtxSw

27 每种嵌入式操作系统都有自身的特点以吸引相关用户,下列说法错误的是(D)。 A. 嵌入式Linux提供了完善的网络技术支持;

B. ?CLinux是专门为没有MMU的ARM芯片开发的; C. ?C/OS-Ⅱ操作系统是一种实时操作系统(RTOS); D. WinCE提供完全开放的源代码。

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

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

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

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

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

29 下列CPSR寄存器标志位的作用说法错误的是(D)。 A. N:负数 B. Z: 零 C. C: 进位 D. V: 借位

30 S3C2410X处理器为用户进行应用设计提供了支持多主总线的IIC接口。处理器提供符合IIC协议的设备连接的串行连接线为(C)。 A. SCL和RTX B. RTX和RCX C. SCL和SDA D. SDA和RCX 31 RQ中断的优先级别是( D )。 A. 1 B. 2 C. 3 D. 4

32 LDR R2,[R3,#128] 的寻址方式是( C )。 A. 寄存器寻址 B. 寄存器移位 C. 变址寻址 D. 间接寻址 33 S3C2410有( B )个USB接口。 A. 1 B. 2 C.3 D. 4 34 ARM处理器的工作模式有( C )种。 A. 5 B.6 C. 7 D.8 二、 判断题

1、 程序运行过程中的资源可以是显示器、键盘,但不可以是一个数组或变量(X) 2、 在μ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状态。(√)

三. 阅读程序题

9、 阅读下列与看门狗有关的寄存器描述,解释每一行代码的功能。 看门狗定时器控制寄存器(WTCON) WTCON的标识

地 址 读/写 描 述 初 始 值 寄存器 位 WTCON 0x53000000 0x8021 读/写 看门狗定控制寄存器 WTCON Prescaler Value Reserved Bit [15:8] [7:6] 描 述 预装比例值,有效范围值为0~255 保留 初 始 值 0x80 00