当前位置:文档之家› 嵌入式系统复习提纲

嵌入式系统复习提纲

嵌入式系统复习提纲第一章绪论1.嵌入式系统的定义(1)广义:根据IEEE(电气和电子工程师协会)的定义,嵌入式系统是“用来控制或监视机器、装置或工厂等大规模系统的设备”。

(2)狭义:国内嵌入式行业一个普遍被认同的定义,即以应用为中心,以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

2.嵌入式实时操作系统嵌入式实时操作系统是指在限定的时间内对输入进行快速处理并做出响应的嵌入式操作系统。

3.当前最常见的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点。

(1)嵌入式Linux,特点:源代码开放、开发工具多、内核小、功能强大、运行稳定、效率高等(2)μC/OS-II,特点:源代码公开、可移植性、可固化、可裁剪、占先式、多任务、可确定性第二章ARM技术与ARM体系结构1.ARM的含义ARM通常具有如下三种含义:(1)ARM是Advanced RISC Machine Limited的简称(代表一个公司);(2)ARM是Advanced RISC Machine Limited公司的产品,该产品以IP Core(知识产权核)的形式提供,并可泛指许多半导体厂商购买了这种知识产权后生产出来的“ARM处理器系列的芯片以及衍生品”(代表一类微处理器的通称);(3)ARM是一种RISC MPU/MCU(微处理器/微控制器)的体系结构,如同X86架构是一种CISC结构一样,另外,还有MIPS架构,PowerPC架构等(代表一种技术)。

2.ARM内核版本命名规则见课本P123.流水线内核结构ARM7采用了三条流水线的内核结构,三级流水线分别为取指(Fetch)、译码(Decode)、执行(Excute)ARM920,在指令操作上采用五级流水线,即取指、译码、执行、存储器访问(简称:访存)和寄存器回写(简称:回写)4.ARM处理器的工作模式ARM处理器共有七种工作模式,即用户模式(USR),快速中断模式(FIQ),普通中断模式(IRQ),管理模式(SVC),终止模式(ABT),未定义指令异常模式(UND)和系统模式(SYS),除用户模式外,其他6种处理器模式可以称为特权模式,在6种特权模式中,除了系统模式外,其他5中特权模式又称为异常模式,每种异常都对应有自己的异常处理入口点。

5.ARM内部寄存器在ARM处理器内部共有37个寄存器,这些寄存器包括以下两类寄存器:31个通用寄存器:包括程序计数器PC等,这些寄存器都是32位的寄存器6个状态寄存器:状态寄存器也是32位的寄存器6.ARM7内部寄存器R13、R4和R15的主要功能和作用通用寄存器R13通常被用作栈指针,也称为SP;R14又被称为链接寄存器(LR),在ARM中有两种特殊的用途:(1)当使用BL或者BLX指令调用子程序时,R14被设置成该程序的返回地址。

在子程序中当把R14的值复制到程序计数器PC时,就实现了子程序返回。

(2)当发生异常中断的时候,该模式下的特定物理R14被设置成该异常模式将要返回的地支。

R15,也即程序计数器(也称程序指针)PC,指向被取指的指令。

7.程序状态寄存器(主要了解V、C、Z、N的置位复位情况)V——溢出标志位C——进位或借位标志位Z——结果为零标志位N——符号标志位具体置位情况见课本P228.ARM异常处理ARM异常类型有复位、未定义指令、软件中断、预取指终止、数据终止、IRQ中断、FIQ 中断等(1)异常产生时ARM进行的操作P23-P24等四点(2)异常返回操作A、从SWI和未定义指令返回,指令:MOVS PC,LRB、从FIQ中断、IRQ中断和预取异常返回,指令:SUBS PC,LR,#4C、从数据异常返回,指令:SUBS PC,LR,#89.ARM数据存储方式ARM处理器对存储器操作的数据单元包括字节(8bit)的存取、半字(16bit)的存取、字(32bit)的存取。

数据存储格式根据字节在内存单元中高低地址的分配次序可将存储格式分为两种:小端存储格式和大端存储格式。

小端存储格式即对于字或半字单元的存储,其高字节存储于高地址,低字节存储于低地址;大端存储格式即对于字或半字单元的存储,其高字节存储于低地址,低字节存储于高地址。

10.ARM流水线技术分析程序计数器R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或“正在译码”的指令。

所以PC始终指向该指令地址加8字节的地址,即PC值等于当前程序执行位置加8。

互锁:当前指令的执行可能需要前面指令执行的结果,但这时前面的指令没有执行完毕,从而会导致当前指令的执行无法获得合法的操作数,这时就会引起流水线的等待,这种现象在流水线机制里称为互锁。

第三章ARM指令寻址方式1.ARM指令的编码格式每条ARM指令占有4个字节,其指令长度为32位。

其中type(bit[27:26]):表示指令的类型:其他见课本P312.指令条件码需理解(课本P32,表3-2)3.数据处理指令第二操作数的构成方式数据处理指令第二操作数operand2的构成有三种格式:立即数方式、寄存器方式和寄存器移位方式合法立即数的判断要求掌握数据处理指令编码格式要求掌握4.Load/Store指令寻址根据访问数据格式的不同,将这类指令的寻址分为字、无符号字节的Load/Store指令寻址和半字、有符号字节的Load/Store指令寻址两类根据访问存储单元和基地址寄存器更新的先后顺序可以将基址加变址寻址分为两种:(1)前变址法:基地址寄存器中的值和地址偏移量先做加减运算,生成的操作数作为内存访问的地址。

(2)后变址法:将基地址寄存器中的值直接作为内存访问的地址进行操作,内存访问完毕后基地址寄存器中的值和地址偏移量做加减运算,并更新基地址寄存器。

Load/Store指令编码格式要求掌握字,无符号字节寻址指令中,偏移量(地址模式)可以通过三种方式得到,即:立即数、寄存器和寄存器移位。

5.杂类Load/Store指令(半字、有符号字)后缀:SB,Signed Byte,表示有符号字节SH,Signed Half Word,表示有符号半字H,Unsigned Half Word,表示无符号半字杂类Load/Store指令的偏移量(地址模式)只有两种,即:立即数和寄存器6.批量Load/Store指令寻址方式批量Load/Store指令在实现寄存器组和连续的内存单元中数据的传递时,有两种实现方法,即进行内存操作和堆栈操作,分别通过在LDM/STM指令后加不同的后缀来实现:(1)内存操作后增IA(Increment After);先增IB(Increment Before);后减(Decrement After);先减DB(Decrement Before)概念弄清楚(2)堆栈操作堆栈是一种数据结构,按先进后出(First In Last Out,FILO)的方式工作,使用一个称做是堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶,在ARM里通常用R13作为栈指针满递增堆栈FA(Full Adcending),满递减堆栈FD(Full Decending),空递增堆栈EA (Empty Ascending),空递减堆栈ED(Empty Decending)概念弄清楚第四章ARM指令集系统1.ARM微处理器指令集分类ARM微处理器的指令集可以分为数据处理指令、分支指令、加载/存储指令、批量加载/存储指令、交换指令、程序状态寄存器(PSR)处理指令、协处理器操作指令和异常产生指令八大类。

2.基本指令操作码编码表见课本P51表4-2,需理解3.数据处理指令考察方法举例(1)将数据0XFFFFFFFF送入寄存器R0MOV R0,#-1MVN R0,#0(2)将R2中的内容乘以8倍后存入R1MOV R1,R2,LSL #0x03(3)求R1+R2和放在R1中ADD R1,R1,R2求R4R3+R2R1,结果存入R6R5(64位二进制数加法)ADDS R5,R3,R1ADC R6,R4,R2求R2R1+1,结果存入R4R3ADDS R3,R1,#1ADC R4,R2,#0(4)求R1-R2,差放在R1中SUB R1,R1,R2求R4R3-R2R1,结果存入R6R5(64位二进制数减法)SUBS R5,R3,R1SBC R6,R4,R2求R2R1-1,结果存入R4R3SUBS R3,R1,#1SBC R4,R2,#0(5)将R0低4位数据保留,其余位清零,并影响标志位AND R0,R0,#0x0F保持R0的高24位,低8位置1ORR R0,R0,#0xFF将R0的低8位按位取反EOR R0,R0,#0xFF清除R0中的低8位,其余位不变BIC R0,R0,#0xFF(6)将R0与R1比较,并根据比较的结果设置C和Z标志位CMP R0,R1(若R0>R1,则C=1,若R0<R1,则C=0,若R0=R1,则Z=1)(7)判断R0的低8位是否为0,并置Z标志位TST R0,#0x0FF判断R0的值与R1的值是否相等,并根据结果置Z标志位TEQ R0,R1(8)实现两个无符号32位二进制数的乘积,这两个数分别存于R0,R1中,乘积的结果存于R2,R3中UMULL R2,R3,R0,R1其他乘法指令亦要求理解掌握4.ARM分支指令ARM分支指令用于实现程序流程的跳转,在ARM程序中只有两种方法可以实现程序流程的跳转:(1)使用专门的分支指令(B)(2)直接将程序计数器PC写入跳转地址值程序无条件跳转到标号Label处B label ;当R1=0时,程序跳转到标号stop处执行CMP R1,#0BEQ stop ;程序无条件跳转到标号Label处执行,并将当前的PC值(下一条指令的地址)保存到LR 中BL Label程序跳转到R1指定的地址,并根据R1的bit[0]来切换处理器的状态BX R1该指令中,若R1的bit[0]为1,则跳转时将自动将CPSR中的标志位T置位,目标地址的代码为Thumb代码;如果R1的bit[0]为0,则跳转时自动将CPSR中的T标志位清0,目标地址的代码为ARM代码BLX指令为BL指令和BX指令结合,目标地址可以用标号表示,也可以用寄存器中存储的地址,BX指令的目标地址只能用寄存器来存储,B指令和BL指令的目标地址只能用标号表示,能够实现的跳转范围是-32MB-+32MB(凡是标号表示的目标地址都不超出此范围)5.加载存储指令参考课本P66-P69,例4-27至例4-29,要求能根据指令写出指令实现的加载/存储功能,或者根据需要加载/存储某些数据(字、字节、半字、有无符号等数据)写出相应的指令。

相关主题