
嵌入式系统开发与应用教程(田泽)复习题.doc
《嵌入式系统开发与应用教程(田泽)复习题.doc》由会员分享,可在线阅读,更多相关《嵌入式系统开发与应用教程(田泽)复习题.doc(8页珍藏版)》请在咨信网上搜索。
______________________________________________________________________________________________________________ 一、选择题 1、ADD R0,R1,#3属于()寻址方式。 A. 立即寻址 B. 多寄存器寻址 C. 寄存器直接寻址 D. 相对寻址 2、GET伪指令的含义是() A. 包含一个外部文件 B. 定义程序的入口 C. 定义一个宏 D. 声明一个变量 3、存储一个32位数0x876165到2000H~2003H四个字节单元中,若以小端模式存 储,则2000H存储单元的内容为( )。 A、0x00 B、0x87 C、0x65 D、0x61 4、若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDR R0,[R1,#8]!后R0的值为( )。 A. 0x2000 B. 0x86 C. 0x2008 D. 0x39 5、寄存器R13除了可以做通用寄存器外,还可以做( )。 A、 程序计数器 B、链接寄存器 C、栈指针寄存器 D、基址寄存器 6、FIQ中断的入口地址是( )。 A、0x0000001C B、0x00000008 C、0x00000018 D、0x00000014 7、ARM指令集和Thumb指令集分别是( )位的。 A. 8位,16位 B. 16位,32位 C. 16位,16位 D. 32位,16位 8、ARM寄存器组有( )个寄存器。 A、7 B、32 C、6 D、37 9、若R1=2000H,(2000H)=0x28,(2008H)=0x87,则执行指令LDR R0,[R1,#8]!后R0的值为( )。 A. 0x2000 B. 0x28 C. 0x2008 10、 和PC机系统相比,下列哪个不是嵌入式系统独具的特点( ) A、 系统内核小 B、专用性强 C、可执行多任务 D、系统精简 11.ARM公司是专门从事( ) A、基于RISC技术芯片设计开发 B、ARM芯片生产 C、软件设计 D、ARM芯片销售 12.ARM9系列微处理器是( ) A、 三级流水线结构 B、四级流水线结构 C、五级流水线结构 D、六级流水线结构 13.所有工作模式下,( )都指向同一个物理寄存器,即各模式共享 A、R0-R7 B、R0-R12 C、R8-R12 D、R13,R14 14..当异常发生时,寄存器( )用于保存CPSR的当前值,从异常退出时则可由它来恢复CPSR. A、SPSR B、R13 C、R14 D、R15 15.能实现把立即数0X3FF5000保存在R0中的指令是( ) A、LDR R0, = 0X3FF5000 B、LDR R0, 0X3FF5000 C、MOV R0, 0X3FF5000 D、MOV R0, =0X3FF5000 16.ARM指令LDMIA RO,{R1, R2, R3,R4 } 实现的功能是( ) A、R1←[R0],R2←[R0+4],R3←[R0+8],R4←[R0+12] B、R1←[R0],R2←[R0-1],R3←[R0-2],R4←[R0-3] C、R1←[R0],R2←[R0+1],R3←[R0+2],R4←[R0+3] D、R1←[R0],R2←[R0-4],R3←[R0-8],R4←[R0-12] 17.( )伪指令用于定义一个代码段或数据段 A、RLIST B、DCB C、MAP D、AREA 18.在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应采用( )方法。 A、直接修改CPU状态寄存器(CPSR)对应的模式 B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态 C、使用软件中断指令(SWI) D、让处理器执行未定义指令 三、 简答 第一章: 1、什么是嵌入式系统?与通用计算机系统相比,它有哪些特点? 答:定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 特点:“专用”的计算机系统;运行环境差异很大;比通用PC系统资源少得多;低功耗、体积小、集成度高、成本低;具有完整的系统测试和可靠性评估体系;具有较长的生命周期; 需要专用开发工具和方法进行设计;包含专用调试路;多科学知识集成系统 2、 嵌入式系统组成结构包括哪几部分?嵌入式系统组成结构的理解。 答:嵌入式系统由硬件和软件组成。嵌入式系统的硬件是以嵌入式微处理器为中心,配置存储器、I/O设备、通信模块以及电源等必要的辅助接口。嵌入式系统软件包括板级支持包层、实时操作系统层、应用程序接口层和应用程序层四层。 3、 简述嵌入式系统的硬件组成 答:嵌入式系统的硬件是以嵌入式微处理器为中心,配置存储器、I/O设备、通信模块以及电源等必要的辅助接口。 4、试分析通用操作系统与嵌入式操作系统的异同点,并解释什么是嵌入式实时操作系统。嵌入式操作系统和嵌入式实时操作系统的概念有哪些不同? 答: 通用操作系统和嵌入式操作系统都对软、硬件资源进行分配和调度以及控制协调等,嵌入式操作系统与通用操作系统的不同之处在于它具有实时性高、可靠性好、可裁剪、体积小等特性。 嵌入式实时操作系统(Real Time Embedded Operating System)是一种实时的、支持嵌入式系统应用的操作系统,是嵌入式系统的重要组成部分。 嵌入式操作系统只注重平均性能,对整个系统来说,所有任务的平均响应时间是关键,对单个任务的响应时间不关心。嵌入式实时操作系统最主要的特性是性能上的“实时性”,也就是说系统的正确性不仅依赖于计算的逻辑结果,也依赖于结果产生的时间。是一个能够 在指定的或者确定的时间内,完成系统功能以及对外部或内部、同步或异步事件作出响应的系统。 5、 嵌入式操作系统具有哪些基本管理功能? 多任务管理,存储管理,外围资源管理和中断管理。 第二章: 6、 试比较CISC体系结构和RISC体系结构的特点。ARM为何采用RISC结构? 答:比较:CISC指令集设计的主要趋势是增加指令集的复杂度。而复杂指令集的高性能是以宝贵、有限的芯片面积为代价的。RISC的中心思想是精简指令集的复杂度、简化指令实现的硬件设计,硬件只执行很有限的最常用的那部分指令,大部分复杂的操作则由简单指令合成。RISC思想大幅度提高了计算机性能价格比。 采用RISC原因:(1)Load/store体系结构(2)固定的32位指令 (3)地址指令格式 7、分别以ARM7TDMI和ARM9TDMI为例,介绍3级流水线和5级流水线的执行过程,并进行相应的比较。 3级流水线分为:取指,译码和执行。5级流水线分为:取指、译码、执行、缓冲\数据、回写。 它们的区别在于3级流水执行级中的寄存器读在5级流水的译码级中处理。3级流水执行级中的寄存器写在5级流水的回写级中处理。5级流水中的第4级缓冲\数据表示如果需要则访问数据存储器,否则只是简单地缓冲一个时钟周期。3级流水采用冯诺依曼结构,不能同时访问指令存储器和数据存储器;5级流水采用哈佛结构,指令存储器与数据存储器分开,可以同时访问。 8、ARM微处理器支持哪几种工作模式?各个工作模式有什么特点? 答:共支持7中工作模式:用户模式,系统模式,快速中断(FIQ)模式,普通中断(IRQ)模式,管理(SVC)模式,中止模式和未定义模式。 用户模式:ARM处理器正常的程序执行状态。 快速中断模式(FIQ):用于高速数据传输或通道处理。 普通中断模式(IRQ):用于通用的中断处理。 管理模式(SVC):操作系统使用的保护模式。 中止模式:当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。 系统模式:运行具有特权的操作系统任务。 未定义模式:处理未定义的指令陷阱,支持硬件协处理器的软件仿真。 9 ARM处理器共有多少个寄存器?这些寄存器在用户编程中的功能是如何划分的?ARM状态下的通用寄存器可分为哪几类? ARM处理器共有37个寄存器,其中31个为通用寄存器,其余6个为状态寄存器。通用寄存器可分为未分组寄存器R0-R7,分组寄存器R8-R14和程序计数器R15。 10 简述ARM状态下分组寄存器R13,R14,R15的特殊功能及R15的使用注意事项。 寄存器R13通常用做堆栈指针SP;寄存器R14用作子程序链接寄存器LR;寄存器R15被用作程序计数器PC。R15值的改变将引起程序执行顺序的变化,这有可能引起程序执行中出现一些不可预料的结果,因此,对R15的使用一定要慎重。ARM处理器采用多级流水线技术,因此保存在R15的地址并不是当前指令的地址。 11、简述ARM处理对异常中断的相应过程。 (1) 将CPSR的内容保存到将要执行的异常中断对应的SPSR中 ,实现对处理器当前状态、中断屏蔽位、各条件标志位的保存。 (2)设置当前状态寄存器CPSR中的相应位设置工作模式控制位,使处理器进入相应的执行模式 设置中断标志位,禁止IRQ中断 当进入RESET或FIQ模式时,还要禁止FIQ中断 (3)将引起异常指令的下一条指令的地址保存到新的异常工作模式的R14 ,使异常处理程序执行完后能正确返回原程序。 (4)给程序计数器(PC)强制赋值,根据中断向量地址跳转 去执行中断处理程序。 12.如果FIQ、IRQ和第3个异常(不是复位)同时发生,ARM应如何处理? 答:如果第3个异常是数据中止,处理器将在进入数据中止处理程序后立即进入FIQ处理程序。数据中止将“记”在返回路径中,当FIQ处理程序返回时进行处理。 如果第3个异常不是数据中止,将立即进入FIQ处理程序。当FIQ和IRQ两者都完成时,程序返回到产生第3个异常的指令并进行相应处理。 14 什么是ARM异常中断向量表?它有何作用?存储在什么地方? 中断向量表中指定了各异常中断与其处理程序的对应关系。在ARM体系中,异常中断向量表大小为32字节,每个异常中断占据4个字节。ARM异常向量表通常以存储器的低端0x0为起始地址,大多数ARM处理器核也支持将异常向量表存放在以0xFFFF0000为起始地址的32字节空间中。每个异常中断对应的中断向量表的4个字节的空间中存放一个跳转指令或者一个向PC寄存器中赋值的数据访问指令LDR。通过这两种指令,程序将跳转到相应的异常中断处理程序处执行。 15. 简述ARM的存储器层次。 1) 寄存器组——存储器层次的顶层,访问时间几个ns 2) 片上RAM——具有和片上寄存器组同级的读/写速度 3) 片上Cache——访问时间10ns,2级片外Cache访问时间几十ns 4)主存储器——访问时间50ns 5)硬盘——访问时间几十ms 16.大端存储法与小端存储法有什么不同?对存储数据有什么要求与影响? 小端:较高的有效字节存放在较高的的存储器地址,较低的有效字节存放在较低的存储器地址。 大端:较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址。 第三章: 17、 ARM处理器如何进入和退出Thumb指令模式?用汇编语言实现ARM状态和Thumb状态互相的切换。 答:进入Thumb模式:有2种方法。一种是执行一条交换转移指令BX,将指令中的目标地址寄存器的最低位置1,并将其他位的值放入程序计数器PC,则可以进入Thumb指令。另一种方法是利用异常返回,也可把微处理器从ARM模式转换为Thumb模式。 退出Thumb模式:也有2种方法。一种是执行Thumb指令中的交换转移BX指令可以显式地返回到ARM指令流。另一种是利用异常进入ARM指令流。 18.如何在汇编语言中定义和使用宏? 答:定义: 宏名 MACRO 宏体 MEND 调用:宏调用的方式在源程序中需要复制宏体的地方写宏的名字。宏名单独占一行,当源程序被汇编时,汇编程序将对宏调用进行宏体复制,并取代宏名,这种复制操作称为宏展开。为了与源程序的其他部分相区分 19、简述ARM汇编语言中伪操作,宏指令和伪指令的含义,伪操作和伪指令都分为哪几类? 答:伪操作----伪操作只是在汇编过程中起作用,汇编结束,伪操作的使命也就结束。 宏指令----是一段独立的程序代码,可插在源程序中,它通过伪操作来定义。 伪指令----是ARM汇编语言程序里的特殊指令助记符,在汇编时将被合适的机器指令代替成ARM或Thumb指令,从而实现真正的指令操作。 伪操作分类:①符号定义伪操作②数据定义伪操作③汇编控制伪操作 ④信息报告伪操作⑤其他伪操作 伪指令分类:①小范围的地址读取ADR②中等范围的地址读取ADRL ③大范围的地址读取LDR④空操作伪指令NOP 20. ARM寻址方式有几种?举例说明ARM如何进行不同方式的寻址。 1).寄存器寻址;如MOV R1, R2 2).立即寻址;如MOV R0, #0xFF00 3).寄存器移位寻址;如MOV R0, R2, LSL #3 4).寄存器间接寻址;如LDR R1, [R2] 5).基址加偏址寻址;如LDR R2, [R3,#0x0C] 6).多寄存器寻址;如LDMIA R1!, {R2-R4,R6} 7).堆栈寻址;如STMFD SP!, {R1-R7,LR} 8).相对寻址。如BL SUBR1 第四章: 15、 S3C44B0X有多少个通用可编程多功能输入/输出引脚?可分为几类端口? 答:71个通用可编程多功能输入/输出引脚,可分为7类端口: (1)2个9位输入/输出端口(Port E和Port F); (2)2个8位输入/输出端口(Port D和Port G); (3)1个16位输入/输出端口(Port C); (4)1个10位输出端口(Port A); (5)1个11位的输出端口(PortB) 四、编程: 1、两个矢量的标量积: MOV R11,#20 初始化循环次数 MOV R10,#0 初始化总和 LOOP LDR R0,[R8],#4 读取第一个分量 LDR R1,[R9],#4 读取第二个分量 MLA R10,R0,R1,R10 乘积累加R10=R0*R1+R10 SUBS R11,R11,#1 减循环计数R11=R11-1 BNE LOOP 2、10个数求和: MOV R1,#1 MOV R0,#0 LOOP ADD R1,R1,R0 ADD R0,R0,#1 CMP R0,#10 BNE LOOP 3. 把0x1000 地址开始的五个字求和 结果存到0x2000的地址 MOV R0,#0x1000 MOV R11,#0x2000 LDMIA R0,{R1—R5} ADD R10,R1,R2 ADDC R9,R3,R4 ADDC R8,R10,R9 ADDC R7,R8,R5 STR R7,[R11] 4 把0x1000 处开始的8个字存到 0x2000开始的地址 MOV R0 , #0x1000 MOV R1 , #0x2000 LDMIA R0,{R1—R8} STMIA R11,{R1—R8} 3、编写以字节为单位的字符串拷贝子程序,要求从存储器某处拷贝到另一处。源字符串的起始地址放入R1,长度(以字节为单位)放入R2,目的字符串的起始地址放入R3。 LOOP LDRB R0, [R1], #1 STRB R0, [R3], #1 SUBS R2, R2, #1 BNE LOOP MOV PC, LR 3.1 计算X*2^8 + Y/2^2 + Z LDR R0,X LDR R1,y LDR R2,Z ADD R3,R2,R1 ASR #2 R3=Z+Y/4 ADD R4,R3,R0 ASL # 8 R4=R3+X*2^8 4、基于绝对地址的内存表举例。下面的伪操作序列定义一个基于绝对地址的内存表,其首地址为固定地址8192(0x2000)。该内存表中包含5个作用域:consta长度为4字节,constb长度为4字节,x长度为8字节,y长度为8字节,string长度为16字节。 MAP 8192 ;内存表的首地址为8192(0x2000) c onsta FIELD 4 ;consta长度为4字节,相对位置为0 constb FIELD 4 ;constb长度为4字节,相对位置为4 x FIELD 8 ;x长度为8字节,相对位置为8 y FIELD 8 ;y长度为8字节,相对位置为16 string FIELD 16 ;string长度为16字节,相对位置为24 在指令中可以这样引用内存中的数据域: LDR R0,consta ;将consta地址处对应的内容加载到R0 5、.基于相对地址的内存表举例。下面的伪操作序列定义一个基于相对地址的内存表,其首地址为0与R9寄存器值的和,该内存表包含5个数据域(与例11相同)。 MAP 0,R9 ;内存表的首地址为R9寄存器的值 consta FIELD 4 ;consta长度为4字节,相对位置为0 constb FIELD 4 ;constb长度为4字节,相对位置为4 x FIELD 8 ;x长度为8字节,相对位置为8 y FIELD 8 ;y长度为8字节,相对位置为16 string FIELD 16 ;string长度为16字节,相对位置为24 可以通过下面的指令访问地址范围超过4KB的数据: ADR R9,FIELD ;伪指令,将在后面介绍 LDR R5,constb ;相当于LDR,R5,[R9,#4] 6、编写一段程序实现在C语言中调用汇编语言程序,实现将1KB大小的内存块以字的形式复制到另一内存地址 #include<stdio.h> #define NUM 1024 int main() { char strFrom[NUM] = { "hello world" }; char strTo[NUM]; __asm { mov ecx, NUM; lea esi, strFrom; lea edi, strTo; rep movsb; } printf("%s\n", strTo); } 7. ARM处理器如何进入和退出Thumb指令模式?用汇编语言实现ARM状态和Thumb状态互相的切换。 进入Thumb模式:有2种方法。一种是执行一条交换转移指令BX,将指令中的目标地址寄存器的最低位置1,并将其他位的值放入程序计数器PC,则可以进入Thumb指令。另一种方法是利用异常返回,也可把微处理器从ARM模式转换为Thumb模式。 退出Thumb模式:也有2种方法。一种是执行Thumb指令中的交换转移BX指令可以显式地返回到ARM指令流。另一种是利用异常进入ARM指令流。 ARM状态切换到Thumb状态: CODE32 LDR R0, =Lable+1 BX R0 CODE16 Lable MOV R1, #12 Thumb状态切换到ARM状态: CODE16 LDR R0, =Lable BX R0 CODE32 Lable MOV R1, #10 8. 请将下面C语言代码转换成汇编语言。 (1) If(a==0||b==1) c=d+e CMP R0, #0 CMPNE R1, #1 ADDEQ R2, R3, R4 (2) if ((a= = b)&&(c= = d))&&(e= =f) g++; CMP R0, R1 CMPEQ R2, R3 CMPEQ R4, R5 ADDEQ R6, R6, #1 9. 编写以字节为单位的字符串拷贝子程序,要求从存储器某处拷贝到另一处。源字符串的起始地址放入R1,长度(以字节为单位)放入R2,目的字符串的起始地址放入R3。 LOOP LDRB R0, [R1], #1 STRB R0, [R3], #1 SUBS R2, R2, #1 BNE LOOP MOV PC, LR 10. 读懂下面一段程序,程序执行过程中寄存器R0、R1、R2中的内容如何变化?试分析并给出程序每一步所得的结果。 从执行完loop循环开始,循环结束时R0 ← 0 MOV R1, #y ;R1 ← 76 ADD R2, R0, R1, LSL #1 ;R2 ← 152 MOV SP, #0x1000 ;SP ← 0x1000 STR R2, [SP] ;mem32[0x1000] ← 152 MOV R0, #Z ;R0 ← 96 AND R0, R0, #0XFF ;R0 ← 96 MOV R1, #y ;R1 ← 76 ADD R2, R0, R1, LSR #1 ;R2 ← 134 LDR R0, [SP] ;R0 ← 152 MOV R1, #0x01 ;R1 ← 1 ORR R0, R0, R1 ;R0 ← 153 (0x99) (0b10011001) MOV R1, R2 ;R1 ← 134 (0x86) (0b10000110) ADD R2, R0, R1, LSR #1 ;R2 ← 220 (0xDC) (0b11011100) 11.请使用MRS和MSR指令,通过修改CPSR寄存器,写出将处理器工作模式变为管理模式的子程序。(注意不能影响其它位,管理模式的二进制编码为10011) MRS R0, CPSR AND R0, R0, #0b11100000 ORR R0, R0, #0b00010011 MSR CPSR_c, R0 MOV PC, LR 11. 用汇编语言的移位指令实现 (变量A、B、C分别存放在寄存器R1、R2、R3中) ADD R1, R1, R1, LSL #3 SUB R1, R1, R2, LSR R3 12. 用汇编语言实现96位整数加法(加数从高到低位存放在寄存器R8、R7、R6中,被加数从高到低位存放在寄存器R11、R10、R9中,结果从高到低位存放在寄存器R5、R4、R3中)。 ADDS R3, R9, R6 ADCS R4, R10, R7 ADC R5, R11, R8 Welcome To Download !!! 欢迎您的下载,资料仅供参考! 精品资料- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 开发 应用 教程 田泽 复习题

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文