ARM嵌入式系统设计参考复习题(2017-11)主要知识点:第一章1.嵌入式系统:“以应用为中心,以计算机技术为基础,软硬件可裁减,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统”根据应用的要求,沿着“体积小、低功耗、高可靠”方向发展,对运算速度、存储容量没有统一要求。三要素:嵌入、专用、计算机。2.嵌入式系统有哪些部分组成?一般由硬件层,中间层(HAL或BSP)和软件层组成。粗略划分:嵌入式处理器、外围设备、嵌入式操作系统(可选)、嵌入式应用软件稍细划分:嵌入式处理器、外围设备、驱动程序、嵌入式操作系统、应用接口、嵌入式应用软件3.嵌入式系统特点:①系统内核小②专用性强③系统精简④高实时性。4.嵌入式处理器的分类:嵌入式微处理器(MPU):就是和通用计算机的处理器对应的CPU,可以认为是“增强型”通用微处理器。嵌入式微控制器(MCU):就是将整个计算机系统的主要硬件集成到一块芯片中,芯片内部集成ROM/EPROM、RAM、总线,总线逻辑、定时/计数器、Watchdog、I/O、串行口、A/D等各种必要功能和外设。嵌入式DSP处理器(DSP):是专门用于信号处理方面的处理器,在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令执行速度。嵌入式片上系统(SOC):是追求产品系统最大包容的集成器件。绝大多数系统构件都在一个系统芯片内部。第二章1.ARM:是AdvanceRISCMachine的缩写,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。2.在ARM9TDMI中“9TDMI”的含义:9:采用版本为9的ARM微处理器T:支持16为压缩指令集Thumb,D:支持片上Debug,称为D变种M:内嵌硬件乘法器Multiplier,称为M变种I:嵌入式ICE,支持片上断点和调试,称为I变种。3.ARMCortex-A8处理器的三种工作状态:ARM状态,处理器执行32位的字对齐的ARM指令;Thumb状态:处理器执行16位的半字对齐的Thumb指令和ThumbEE状态:执行16位的半字对齐的Thumb指令集变种。8种工作模式:用户模式(usr)、快速中断模式(fiq)、外部中断模式(irq)、管理模式(svc)、中止模式(abt)、未定义模式(und)、系统模式(sys)和监控模式(mon)。特权模式:除usr之外的其它的7种工作模式都是特权模式。异常模式:除usr和sys之外的其它的6种工作模式都是持权模式。4.ARMA8寄存器分成哪几类?各类有哪些寄存器?寄存器LR有什么用途?分两类:33个通用寄存器和7个状态寄存器。33个通用寄存器:R0~R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8_fiq-R14_fiq、R13_mon、R14_mon;。7个状态寄存器:CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq和SPSR_mon。LR(R14):也称作子程序链接寄存器或链接寄存器LR,当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。其他情况下,R14用作通用寄存器。与之类似,当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt、R14_und和R14_mon用来保存R15的返回值。5.CPSR各位是意义:N:正负号/大小标志位0表示:正数/大于;1表示:负数/小于Z:零标志位0表示:结果不为零;1表示:结果为零C:进位/借位/移出位0表示:未进位/借位/移出0;1表示:进位/未借位/移出1V:溢出标志位0表示:结果未溢出;1表示:结果溢出I、I和F:irq和fiq中断允许和禁止控制位,=1禁止irq或fiq中断=0允许irq或fiq中断。T:控制(标志)位——反映处理器的运行状态T=1时,程序运行于Thumb状态,T=0时,程序运行于ARM状态。TM:控制位——决定了处理器的运行模式模式TM[4:0]用户10000快中断10001中断10010管理10011中止10111未定义11011系统11111监控101106.ARM异常响应过程(进入异常)执行哪些操作。①保存返回地址、②保存当前状态寄存器CPSR的内容、③设置当前状态寄存器CPSR中的相应位、④转去执行中断处理程序。第三章1.ARM指令中的第二操作数“operand2”有哪些具体形式:三种:寄存器、寄存器移位、8位位图立即数。2.对于ARM的变址寻址方式,有基地址和偏倚地址两部分组成。(1)基地址可以是哪些寄存器?(2)偏移地址可以有哪些形式?(3)总地址的计算方法有哪些?怎么表示?(4)变址寻址应用于哪些指令?(1)基地址可以是通用寄存器R0---R15中的任意一个。(2)偏移地址可以有三种形式:12位立即数、寄存器、寄存器移位。(3)总地址的计算方法有三种:前变址(前索引):先基址+偏址,生成操作数地址,做指令指定的操作。如:LDRRd,[Rn,#m]后变址模式(修改基址寄存器):①基址寄存器不加偏移作为操作数地址。②完成指令操作后,用(基址+偏移)的值修改基址寄存器。如:LDRRd,[Rn],#m自动变址模式(修改基址寄存器):①先基址+偏移,生成操作数地址,做指令指定的操作。②然后自动修改基址寄存器。如:LDRRd,[Rn,#m]!(4)有4条指令:LDR、STR、LDM、STM3.ARM有寻址方式:立即寻址、寄存器寻址、寄存器间接寻址、变址寻址、多寄存器寻址、堆栈寻址、块拷贝寻址、相对寻址4.ARM伪指令:ADR:小范围的地址读取伪指令、ADRL:中等范围的地址读取伪指令、LDR:大范围的地址读取伪指令、NOP:空操作伪指令。5.ARM指令集分为哪几种类型?各类有哪些指令(可以不考虑协处理器指令)。五类:存器访问指令、数据处理指令、跳转指令、协处理器指令、杂项指令。存储器访问指令:单存储器存取指令,多存储器存取指令。数据处理指令:算术运算指令,逻辑运算指令,数据传送指令,比较指令,测试指令。跳转指令:B跳转指令BL带链接的跳转指令BX带状态切换的跳转指令BLX带链接和状态切换的跳转指令。杂项指令:程序状态寄存器操作指令,中断操作指令。6.ARM有哪些条件码?各个条件码的符号及意义。(比较常用的应该会)。条件码00000001001000110100010101100111助记符EQNECS/HSCC/LOMIPLVSVC含义相等不相等无符号数大于或等于无符号数小于负数非负数溢出没有溢出标志Z=1Z=0C=1C=0N=1N=0V=1V=01000HI无符号数大于C=1且Z=01001LS无符号数小于或等于C=0或Z=11010GE有符号数大于或等于N=V1011LT有符号数小于N!=V1100GT有符号数大于Z=0且N=V1101LE有符号数小于或等于Z=1或N!=V1110AL无条件执行arm采用32位架构,基本数据类型4种,填空Byte8位字节HalfWord16半字2字节对齐Word32字4DoubleWord64双字8内核工作模式,cortexa8,(课本8种)8种usrfiqirqsvc特权模式abt数据访问中止模式und未定义指令中止模式sysmon监控模式,可在安全模式和非安全模式切换8个模式中,除用户模式usr,其他7个全部特权模式7个特权模式中,除了系统模式,剩下6个都属于异常模式异常模式:快速中断请求模式(FIQ)用于高速数据传输外部中断请求模式(IRQ)用于通常的中断处理特权模式(SVC)数据访问终止模式(abt)当数据或指令预取终止时进入该模式,可用于虚拟内存及存储保护未定义指令中止模式(und)用于支持硬件协处理器的软件仿真监控模式(mon)Arm微处理器工作模式,分别为:1.用户模式(Usr)用于正常执行程序2.快速中断模式(FIQ)用于高速数据传输3.外部中断模式(IRQ)用于通常的中断处理4.特权管理模式(SVC)操作系统使用的保护模式(高权限),复位和软件中断进入5.数据访问中止模式(abt)当数据或指令预取终止时进入该模式,可用于虚拟内存及存储保护6.系统模式(sys)运行拥有特权的操作系统任务7.未定义指令终止模式(und)用于支持硬件协处理器的软件仿真(浮点、微量运算)8.监控模式(mon),可在安全模式和非安全模式切换异常模式优先级如下:1(最高)SVC复位2abt数据中止3FIQ(快速中断请求)4IRQ(外部中断请求)5abt预取指令中止6(最低)und未定义指令,SWI软件中断arm7为止使用流水线3级取指令,从寄存器装载一条指令译码为下一周期准备控制信号执行处理指令,结果写会寄存器arm9,五级流水线3级+缓冲/数据回写arm106级流水线寄存器R13用作数据栈指针,记作SP。寄存器R14称为链接寄存器,记作LR,它用于保存子程序的返回地址。寄存器R15是程序计数器,记作PC,不能用作其它用途。CPSR当前程序状态寄存器理解CPSR格式,里面标志位含义等等跳转指令,bl跳转32mb范围,跳转pc,如ldrbpc,...可以4GB范围AAPCS标准子程序调用,用R0-R3存储参数,R0存返回值I2C总线,通过串行数据线(SDA)和串行时钟线(SCL)在连接到总线的器件间传递信息。传输时包含寻址和数据信息,每个字节8位,每个字节后必须跟一个响应位。A_D转换结束的表达式是!(TSAADCCON0&(115))获取AD转换结果的表达式是(TSDATX0&0xfff)LCD16M色的像素颜色的数据格式是怎样的4个字节,前3个字节分别为红,绿,蓝三原色的色号。64K色的数据则用16位表示一个像素的颜色,三原色配比是5/6/5。android操作系统的源码结构分为3个部分:核心工程(CoreProject),扩展工程(ExternalProject),包(Package),应用程序(Application)在package/apps目录中。二、简答题:1、Cortex-A8是ARMv7-A架构的,共有哪几种工作模式,其中哪几种属于异常模式?usr用户模式fiq快速中断模式irq外部中断模式svc特权模式abt数据访问中止und未定义指令中止模式sys系统模式mon监控模式,安全模式切换8种工作模式,除用户模式,都是特权模式特权模式里面,除系统模式,其他都是异常模式。即异常模式6种:Fiq快速中断异常模式Irq外部中断请求模式svc特权模式abt数据访问中止模式und未定义指令中止模式mon监控模式2.寄存器CPSR,SPSR的功能各是什么?CPSR(当前程序状态寄存器)在任何处理器模式下被访问。它包含了条件标志位、中断禁止位、当前处理器模式标志以及其他的一些控制和状态位。中断时,保存当前程序状态,处理器模式等等。每一种处理器模式下都有一个专用的物理状态寄存器,称为SPSR(备份程序状态寄存器)。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。在异常中断退出时,可以用SPSR来恢复CPSRCPSR格式CPSR格式如下所示。SPSR和CPSR格式相同。31302928272676543210NZCVQIT[1:0]JIFTM4M3M2M1M0***条件标志位***N——n=1表示运算结果为负数,n=0表示结果为正数或零。z——z=1表示运算的结果为零;z=0表示运算的结果不为零。C——进位,借位标志V——V=1表示符号位溢出J——ThumbEE状态位M4-0模式位3、简述S5PV210外部中断处理和响应的流程。中断发生后,处理:通过堆栈和spsr寄存器,入栈保存现场,设置cpsr模式位,处理器模式变成外部中断模式。外部中断中断发生后,VIC0IRQSTATUS相应位置改变,中断向量地址VIC0ADDRESS相应位改变,,pc跳到向量表的特定地址,从该地址开始执行,跳转调用我们写的中断处理函数,执行中断处理