1、嵌入式系统复习大纲精华浓缩1. 什么是嵌入式系统?与通用计算机相比,嵌入式系统有哪些特点?2. 嵌入式微处理器有哪几类?试举例说明。3. 嵌入式系统的硬件、软件各由哪些部分组成.4. 嵌入式软件开发的交叉开发环境如何组成。5. 嵌入式系统位处理器选型应考虑哪些方面的需求。6. 目前常见嵌入式操作系统有哪些?7. 嵌入式系统调试按使用设备分哪3类。8. ARM微处理器有何特点9. ARM7系列、ARM9系列处理器的特点10. ARM微处理器的工作状态、存储格式、指令流水线。11. 7种处理器模式各有何用途。12. ARM状态下包括哪些通用寄存器、状态寄存器。R13、R14、R15的作用。13.
2、CPSR、SPSR寄存器中各位的作用,怎样对它们操作以改变各位状态。14. ARM有哪些异常、优先级如何?ARM微处理器如何处理异常?15. 异常量表存放在哪里。16. ARM指令格式。寻址方式有哪些?各有何特点?17. 在ARM的立即寻址方式下其立即数如何在指令编码中表示?18. 跳转、加载/存储指令、数据处理、程序状态寄存器处理指令的常见使用方法。19. ADR和ADRL伪指令的作用,二者的区别是什么?LDR伪指令的作用是什么?其主要用途是什么?20. 嵌入式系统存储器有哪几种,它们的特点分别是什么.21. s3c2410的OM1:0的作用。22. s3c2410x存储系统的特征,BANK
3、17的总线宽度如何设置。23. Nand-Flash 与Nor-Flash的区别24. S3C2410各个外围接口的功能25. 什么是LCD的虚拟显示26. 嵌入式Linux开发的步骤27. Bootloader 的概念其功能,包含有哪些基本的操作28. Bootloader中进行内存映射的目的。29. Bootloader 的烧写的两种方式的特点,它们的区别?30. Bootloader启动流程。启动分为哪2个阶段,每个阶段主要完成哪些操作。31. 嵌入式Linux内核的移植的基本内容32. 虚拟存储器、ARM9中MMU对嵌入式Linux的作用是什么?33. Linux 文件系统的特点。34
4、. Linux文件的类型。35. 嵌入式Linux的3种专用文件系统的基本了解。36. Busybox的功能是什么?37. Linux设备分为哪3类,各自特点?Linux如何通过设备号表示设备?38. Linux的可加载模块的优点。39. file_operations结构体类型定义了什么?其功能是什么?40. 理解Linux设备驱动程序的编写步骤。41. 使用gcc 进行Linux 应用程序编译的过程。42. 了解make和Makefile的作用。43. 了解几种常用的嵌入式Linux GUI开发工具。1 嵌入式系统概述44. 什么是嵌入式系统?与通用计算机相比,嵌入式系统有哪些特点?答:嵌
5、入式系统是“以应用为中心,以计算机技术为基础,软件、硬件可裁减,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统的特点:1,多样性。2,专用紧凑。3,实时响应。4,健壮可靠。5,嵌入式操作系统支持。6,需要专门的开发工具和环境。45. 嵌入式微处理器有哪几类?试举例说明。答:1嵌入式微控制器(MCS51),2嵌入式微处理器(ARM),3嵌入式DSP处理器(TMS30),4,嵌入式片上系统(M-Core).46. 嵌入式系统的硬件、软件各由哪些部分组成.硬件:嵌入式处理器和外围设备(存储器类型,接口类型,I/O设备)软件:嵌入式操作系统,嵌入式支撑软件,嵌入式应用软件。47.
6、嵌入式软件开发的交叉开发环境如何组成。1)交叉编译环境,即支持某一种硬件体系的编译器,如arm-linux-gcc(支持arm硬件体系)2)操作系统,也就是通过交叉编译工具编译后的Linux内核3)文件系统 面向硬件的开发模式此种开发模式适合开发目标机上没有安装操作系统的应用程序,在开发主机上完成程序的编写、编译之后可以通过ICE工具直接下载到目标系统上进行在线运行调试优点:可以对程序进行实时仿真和测试,可以直接针对硬件进行调试缺点:需要购买硬件调试工具,调试时必须要在目标系统面向操作系统的开发模式面向一个内部已经安装了操作系统的目标系统的开发时,采用这种开发模式优点:不需要购买硬件调试工具,
7、节省开发成本。缺点:不适合于硬件资源不足的嵌入式系统的开发2 嵌入式系统基本设计方法48. 嵌入式系统位处理器选型应考虑哪些方面的需求。P291 总线的需求2 有没有通用的的串行接口3 是否需要USB总线4 有没有以太网接口5 系统内部是需要IIC总线,SPI总线6 音频D/A连接的IIS总线,7 外设接口8 系统是否需要A/D后者D/A转换器9 系统是否需要I/O控制接口49. 目前常见嵌入式操作系统有哪些?Windows CE嵌入式LinuxVxWorksC/OS-50. 嵌入式系统调试按使用设备分哪3类。P34仿真器方式监控器方式 源程序模拟器方式按调试方法分类:硬件调试,软件调试3 嵌
8、入式微处理器arm51. ARM微处理器有何特点1 小体积、低功耗、低成本而高性能2 支持Thumb(16位)/ARM(32位)双指令集,能很好兼容8位/16位器件3 使用大量的寄存器,使执行速度加快4 大多数数据操作都在寄存器中完成5 寻址方式灵活简单,执行效率高6 指令长度固定52. ARM7系列、ARM9系列处理器的特点ARM 71 具有嵌入式ICE-RT(实时在线仿真)逻辑,调试开发方便2 极低的工号,适合对功耗要求较高的应用,如便携式产品3 能够提供0.9MIPS/MHz的三级流水线结构4 代码密度高,并兼容16位的Thumb指令集5 对系统要求广泛支持6 指令系统与ARM9系列、A
9、RM 9E系列和ARM 10E系列兼容、便于用户的产品升级换代7 主频最高可达130M,高速的运算处理能力能胜任绝多数的复杂应用ARM 91 五级流水线,指令执行效率更高2 提供1.1Mips/MHz的哈佛结构3 支持32位ARM指令集和16位Thumb指令集4 支持32位的高速AMBA总线接口5 全性能的MMU,支持Windows CE,Linux,Palm OS等主流嵌入式操作系统6 支持数据Cache和指令Cache,具有更高的指令和数据处理能力53. ARM微处理器的工作状态、存储格式、指令流水线。工作状态:进入ARM状态进入Thumb状态存储格式:大端格式:字数据的高字节存储在低地址
10、中,而字数据的低字节存放在高地址中小端格式:字数据的高字节存储在高地址中,而字数据的低字节存放在低字节中。指令流水线:ARM系列微处理器普遍采用了多级流水线技术,在ARM7系统中使用了3级流水线。3级流水线:Fetch(从存储器读取指令),Decode(解码指令)Execute(读写及ALU操作)54. 7种处理器模式各有何用途。模式用途用户模式用于正常执行程序快速中断模式用于高速数据传输或通道处理外部中断模式用于通用的中断处理管理模式操作系统使用的一种保护模式,系统复位后的默认模式中止模式用于指令预取中止时或数据访问中止时的模式未定义指令模式当执行没有定义的指令(即处理器不能识别的指令)时进
11、入该模式系统模式运行具有特权的操作系统任务(ARM V4以上)55. ARM状态下包括哪些通用寄存器、状态寄存器。R13、R14、R15的作用。通用寄存器分三类:1 未分组寄存器(R0-R7)2 分组寄存器(R8-R14)R13 通常用作堆栈指针R14通常也被称作子程序连接寄存器或链接寄存器。在每一种运行模式下,当执行BL(带返回的跳转)或BLX(带状态切换的跳转)时,硬件就会自动地将R15(程序计数器PC)中的内容拷贝到R14中3 程序计数器(R15)R15用作程序计数器(PC),在ARM状态下,由于指令总干事对齐的,所以R151:0总为0,R1531:2用于保存地址状态寄存器:一种是CPS
12、R(当前程序状态寄存器),它可再任何运行模式下访问,另一种是SPSR(备份的程序状态寄存器),当异常发生时,它用于保存CPSR的值,从异常突出时则可用它回复CPSR56. CPSR、SPSR寄存器中各位的作用,怎样对它们操作以改变各位状态。CPSR和SPSR的状态位格式是一样的, CPSR主要分为3部分:条件标志位、控制位和保留位。条件标志位主要为CPSR的28:31,分别为N(Negative),Z(Zero)C(Carry)和V(Overflow)。 1)N 负数判断位。当用补码表示有符号整数运算时,N=1表示结果为负数,N=0表示结果为正数。 2)Z 结果零判断位。当运算结果为0时,Z=
13、1,当结果不为零时,Z=0. 3)C 进位借位判断位。在加法操作中,如果出现了进位,C=1,否则为0。在减法操作中,如果出现了借位,C=1,否则为0。 4)V 溢出判断位。当运算的结果又溢出时,V=1,否则为0。(2)控制位 1)中断禁止位I,F:当I=1时禁止IRQ中断,当F=1时禁止FIQ中断。 2)T控制位:T=0表示执行ARM指令,T=1表示执行Thumb指令。 3)控制位M4:0用于控制处理器模式。(3)保留位 CPRS中其余位为保留位,当改变CPSR中的条件码标志位或者控制位时,保留位不要改变,在程序中叶不讨使用保留位来存储数据。57. ARM有哪些异常、优先级如何?ARM微处理器
14、如何处理异常?按优先级高到低排列:复位,数据中止,FIQ(快速中断),IRQ(中断),预取中止,未定义指令和SWI(软件中断)异常类型进入的工作模式退出复位SVC(管理模式)不需要未定义指令UND(未定义模式)Mov PC, R14_und软件中断SVC(管理模式)Mov PC, R14_svc指令预取中止ABT(中止模式)Mov PC, R14_abt, #4数据中止ABT(中止模式)Mov PC, R14_abt, #8IRQ异常IRQ(IRQ模式)Mov PC, R14_irq, #4FIQ异常FIQ(FIQ模式)Mov PC, R14_und, #4处理异常的伪代码如下: R14_=r
15、eturn link SPSR_=CPSR CPSR4:0=exception mode number CPSR5=0 /*运行在ARM状态*/ CPSR6=1 /*禁止新的IRQ中断*/ If =Reset or FIQ thenCPSR7=1 /*当Reset或者FIQ异常时,禁止新的FIQ中断*/PC=exception vector address58. 异常量表存放在哪里。存放在内存的底层 固定存储器59. ARM指令格式。寻址方式有哪些?各有何特点?指令格式: S , , 其中是必须的 是可选的寻址方式:立即寻址 寄存器寻址 寄存器偏移寻址 寄存器间接寻址基址加偏移寻址 堆栈寻址
16、块复制寻址 相对寻址ARM寻址方式 立即寻址立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数,这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。例如以下指令: ADD R0,R0,1 /*R0R01*/ ADD R0,R0,0x3f /*R0R00x3f*/在以上两条指令中,第二个源操作数即为立即数,要求以“”为前缀,对于以十六进制表示的立即数,还要求在“”后加上“0x”。 寄存器寻址寄存器寻址就是利用寄存器中的数值作为操作数,这种寻址方式是各类微处理器经常采用的一种方式,也是一种执行效率较高的寻址方式。以下指令: ADD R0,R1
17、,R2 /*R0R1R2*/ 该指令的执行效果是将寄存器R1和R2的内容相加,其结果存放在寄存器R0中。 寄存器间接寻址寄存器间接寻址就是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中。例如以下指令: LDR R0,R1 /*R0R1*/ STR R0,R1 /*R1R0*/ 第一条指令将以R1的值为地址的存储器中的数据传送到R0中。第二条指令将R0的值传送到以R1的值为地址的存储器中。 基址加偏址寻址 基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。变址寻址方式常用于访问某基地址附近的地址单元。采用变址寻址方
18、式的指令又可以分为以下几种形式:前变址模式:LDR R0,R1,4 ;R0R14自动变址模式:LDR R0,R1,4! ;R0R14、R1R14后变址模式:LDR R0,R1 ,4 ;R0R1、R1R14 堆栈寻址 堆栈是一种数据结构,按先进后出(First In Last Out,FILO)的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。当堆栈指针指向最后压入堆栈的数据时,称为满堆栈(Full Stack),而当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈(Empty Stack)。即访问存储器时,存储器的地址向高地址方向生长,称为递增堆栈(as
19、cending stack)。 存储器的地址向低地址方向生长,称为递减堆栈(descending stack)。 块拷贝寻址 块拷贝寻址是多寄存器传送指令LDM/STM的寻址方式。LDM/STM指令可以把存储器中的一个数据块加载到多个寄存器中,也可以把多个寄存器中的内容保存到存储器中。寻址操作中的寄存器可以是R0-R15这16个寄存器的子集或是所有寄存器。LDM/STM指令依据其后缀名的不同其寻址的方式也有很大不同。 相对寻址 与基址变址寻址方式相类似,相对寻址以程序计数器PC的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址。以下程序段完成子程序的调用和返回,跳
20、转指令BL采用了相对寻址方式: BL NEXT ;跳转到子程序 ; NEXT处执行 NEXT MOV PC,LR ;从子程序返回 补充类型题目:ARM的寻址方式有哪些?各写一条说明。答:1)立即寻址 (1) ADD R0,R0,1 /*R0R01*/ (2)ADD R0,R0,0x3f /*R0R00x3f*/;2)寄存器寻址(ADD R0,R1,R2 /*R0R1R2*/);3)寄存器间接寻址 (1)、LDR R0,R1 /*R0R1*/;(2)STR R0,R1 /*R1R0*/;4)基址加偏址寻址(1)、LDR R0,R1,4;R0R14;(2)、LDR R0,R1,4!;R0R14、R
21、1R14;(3)、LDR R0,R1 ,4;R0R1、R1R145)堆栈寻址(1)、 STMFD SP! R1-R7,LR;(2)、LDMFD SP! R1-R7,LR;6)块拷贝寻址(1)、LDMIA R0!, R2-R9;(2)、STMIA R1,R2,R9; 7)相对寻址60. 在ARM的立即寻址方式下其立即数如何在指令编码中表示?立即寻址是指操作数本身在指令中给出,只要取出指令也就取到了操作数,立即数必须对应8位位图格式,即立即数是一个16位或32位寄存器中的8位常数,经循环移动偶数位得到,移位后得到的数不能大于0xFF在立即寻址当中,要求立即数以#为前缀,对于以十六进制表示的立即数,
22、还要求在#后加上0x或&。61. 跳转、加载/存储指令、数据处理、程序状态寄存器处理指令的常见使用方法。简练答案:跳转指令:B指令,BL指令,BX指令加载/存储指令:单一数据的传递(LDR,STR)多数据传送(LDM,STM),交换指令SWP数据处理指令:数据传送指令(MOV,MVN)算术逻辑运算指令(ADD,SUB,RSB,ADC,SBC,RSC,AND,ORR,EOR,BIC)比较指令(CMP,CMN,TST,TEQ) 乘法指令(MUL,MLA)程序状态寄存器指令:(MRS,MSR)此部分详细内容见课本55-65页,建议看课本ARM指令集分为6大类,分别是(1)跳转指令:含 B指令 BL指
23、令 BX指令,(2)加载/存储指令:含 单一数据的传递 多数据的 传送(3)数据处理指令:A.数据传送指令:含 MOV指令(数据传送指令) MVN指令(数据非传送指令)B:算术逻辑运算指令:含 ADD指令(加法运算指令) SUB指令(减法运算指令) RSB指令(逆向减法指令) ADC指令(带进位加法指令) SBC指令(带借位减法指令) RSC指令(带借位逆向减法指令) AND指令(逻辑与操作指令) ORR指令(逻辑或操作指令) EOR指令(逻辑异或操作指令) BIC指令(位清除指令)C:比较指令:含 CMP比较指令 CMN负数比较指令 TST位测试指令 TEQ相等测试指令,D:乘法指令 MUL
24、32位乘法指令 MLA32位乘法加指令(4)程序状态寄存器处理指令: MRS读状态寄存器指令 MSR指令写状态寄存器指令(5)协处理器指令(略)(6)异常产生指令(略) 62. ADR和ADRL伪指令的作用,二者的区别是什么?LDR伪指令的作用是什么?其主要用途是什么?ADRL 伪指令 将相对于程序或相对于寄存器的地址载入寄存器中。 与 ADR 指令相似。ADRL 所加载的地址比 ADR 所加载的地址更宽,因为它可生成两个数据处理指令。LDR 伪指令的主要功能如下: 当立即数由于超出了 MOV 和 MVN 指令的范围,而不能被移入寄存器中时,生成文字常数。 将相对于程序的地址或外部地址载入寄存
25、器中。 无论链接器将包含 LDR 的 ELF 代码段置于何处,该地址始终有效。根据课本组织的答案:ADR伪指令小范围的地址读取伪指令ARDL指令中等范围的地址读取伪指令LDR指令大范围的地址读取指令ADR和ADRL作用与区别:ADR的定义为:小范围的地址读取伪指令,ADR指令将基于PC相对偏移的地址值读取到寄存器中,在编译源程序时ADR伪指令被编译器替换成一条合适的指令。通常,编译器用一条ADD指令或SUB指令来实现该ADR伪指令的功能,若不能用一条指令实现,刚产生错误,编译失败。指令格式为:ADRcond register,expr;注意:在如上的定义中,有两个关键信息:将基于PC相对偏移的
26、地址值读取到寄存器中;被编译器替换成一条合适的指令。ADR指令只能将地址值读取到寄存器中,而不能是其它的立即数,并用只能用一条指令。ADRL与ADR不同的是只是,ADRL有更大的读取地址范围。在汇编程序编译源程序时,ADRL伪指令被编译为两条合适的指令。通常用ADD或者SUB来实现ADRL的功能。如果两条指令实现,则产生错误,编译失败。指令格式为:ADRLcond register,expr;LDR的作用:LDR为大范围地址读取伪指令,LDR伪指令用于加载32们的立即数或一个地址值到指定寄存器。在汇编编译源程序时,LDR伪指令被编译器替换成一条合适的指令。若加载的常数未超出MOV或者MVN的范
27、围,刚使用MOV或MVN指令代替该LDR伪指令,否则汇编器将常量放入字池,并使用一条程序相对偏移的LDR指令从文字池读出常量。与ARM指令的LDR相比,伪指令的LDR的参数有=号。注意:在如上的定义中,有三个关键信息:用于加载32们的立即数或一个地址值到指定寄存器;被编译器替换成一条合适的指令;优先使用MOV或MVN指令代替该指令。4 嵌入式系统存储器和常用接口63. 嵌入式系统存储器有哪几种,它们的特点分别是什么.嵌入式存储器与普通存储器相同,按照易失性分为两种:易失性存储器和非易失性存储器。1.易失性存储器易失性存储器主要包括SRAM和DRAM。(1)SRAM(静态随机存储器)存储密度小,
28、4管结构,占用较大芯片面积,价格较高,功耗较高,容量较小,存取速度快,接口时序简单(2)DRAM(动态随机存储器)存储密度大,单管结构,单位存储成本较低,功耗较低,容量较大,接口时序复杂,需要刷新电路(3)EEPROM非挥发,存储密度小,单位存储成本较高,容量小,写入有限制,页写要等待,接口时序简单,一般采用串行接口,小量参数存储2.非易失性寄存器1) Flash 主要目标是替代EEPROM存储容量大,读取速度快,成本低,保护机制。不足之处:必须先擦除后写入,擦写速度较慢,必须以Block方式写入(1)NOR Flash英特尔所发展的架构随机读取任意单元的内容,读取速度较快,写入和擦除速度较低
29、,可在单位块上直接进行数据的读写,应用程序可以直接在Flash内运行,常用于BIOS存储器和微控制器的内部程序存储器等(2)NAND Flash东芝所发展的架构读取速度较NOR Flash慢,写入和擦除速度要比NOR Flash快很多在相同密度下,成本较NOR型低,适用于大容量存储装置(SSD、U盘)特点:非易失性存储器的特点是在断电时不会丢失内容。闪速存储器就是一类非易失性存储器,即使在供电电源关闭后仍能保持片内信息;而诸如DRAM、SRAM这类易失性存储器,当供电电源关闭时片内信息随即丢失。64. s3c2410的OM1:0的作用。OM1:0是S3C2410X的总线控制信号,用于接收外部的输入信号,从而设置S3C2410X为测试模式或者设置nCCSO的总线密度。具体为00为Nand Flash模式,01为16位宽度,10为32位宽度,11为测试模式65. s3c2410x存储系统的特征,BANK17的总线宽度如何设置。系统特征1 支持数据的大端和小端模式存储2 地址空间有8个存储体,每个存储体可达128MB,总共可达1GB3 所有存储体的存取位均可编程改变4 总共8个存储体,其中6个支持ROM,SRAM;率为两个除支持ROM,SRAM外,还支持SDRAM等5 7个存储体的起始地址固定,1个存储体的起始地址可编程改变6 所有存储
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1