辽宁科技大学电信学院曲强email:askdqq@163.com嵌入式系统设计与应用复习题辽宁科技大学辽宁科技大学电信学院曲强email:askdqq@163.com-1-第1章嵌入式系统概论1.1什么是嵌入式系统?嵌入式系统是以应用为中心,以计算机技术为基础,软、硬件可裁减,功能可靠,成本、体积、功耗要求严格的专用计算机系统。1.2在嵌入式系统中,操作系统具有怎样主要功能和特点?方便用户使用,操作系统应该使计算机系统使用起来十分方便。扩展机器功能,操作系统应该对系统硬件功能进行充分融合利用,扩充机器功能。管理系统资源,操作系统应该管理好系统中的所有硬件软、件资源。提高系统效率,操作系统应该充分利用计算机系统的资源,提高计算机系统的效率。构筑开放环境,操作系统应该构筑出一个开放环境。支持体系结构的可伸缩性和可扩展性,支持应用程序在不同平台上的可移植性。1.3在设计嵌入式系统时,在选择嵌入式处理器和实时操作系统时,分别考虑哪些主要因素?在嵌入式系统设计时,以满足系统要求为依据。在选择处理器时,主要考虑功能、功耗、体积、可靠性等因素,在选择操作系统时,主要考虑操作系统的实时性,可靠性,可裁剪性等。1.4常见微处理器有哪些类型,各有什么特点。微控制器:微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器的片上外设资源一般比较丰富,适合于控制。数字信号处理器:在系统结构和指令算法方面进行了特殊设计,数字信号处理器在数字滤波、快速傅里叶变换(FFT)、谱分析等各种仪器上获得了大规模的应用。嵌入式微处理器:以最低的功耗和资源实现嵌入式应用的特殊要求。和工业控制计算机相比嵌入式微处理器具有体积小、重量轻、成本低、低功耗、可靠性高的优点。片上系统是基于FPGA技术的系统。1.5与通用计算机相比,嵌入式系统有哪些特点?嵌入式系统通常是面向特定应用的;嵌入式系统是将计算机技术,半导体技术和电子技术与各行各业的具体应用相结合的产物,是一门综合技术学科;嵌入式系统和具体应用有机的结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式产品一旦进入市场,就有较长的生命周期;为了提高执行速度和可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中;嵌入式系统本身不具有自主开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。1.6嵌入式系统与传统的单片机系统在软件和硬件上有哪些主要的不同?在硬件上,嵌入式系统至少拥有一个高性能处理器作为硬件平台,而单片机系统一般为8位处理器和16位处理器。在软件上,嵌入式系统拥有一个多任务操作系统为软件系统平台,单片机系统则一般为单任务软件。辽宁科技大学电信学院曲强email:askdqq@163.com-2-1.7常见的实时操作系统有哪些?Vxworks操作系统、WinCE操作系统、Symbian操作系统、Linux操作系统、μC/OS操作系统。辽宁科技大学电信学院曲强email:askdqq@163.com3第2章ARM微处理器硬件结构2.1在ARM内核处理器命名上,T、D、M、I、E、S和J各代表什么意义?T表示支持16位Thumb指令集;D表示支持在线Debug;M表示内嵌乘法器Multiplier;I表示嵌入式ICE,支持在线断点和调试;E表示DSP指令,支持DSP的特定指令,主要是16bit;S表示具有可综合功能,提供VHDL或者Verilog语言设计,可以实现自己特定的硬件;J表示支持新的JAVA功能。2.2常用的CPU架构有哪两类?这两类架构主要有哪些不同?冯诺依曼结构:采用冯诺依曼结构的微处理器的程序空间和数据是合在一起的,即取指令和取操作数都是在同一条总线上,通过时分复用的方式进行的。哈佛结构:采用哈佛总线结构的芯片内部程序空间和地址空间是分开的,这就允许同时取指令(来自程序空间)和同时取操作数(来自数据空间)。2.3通用计算机与嵌入式处理器各采用哪种指令集,这两类指令集有哪些不同?通用计算机一般采用复杂指令系统(CISC)包含一个丰富的微代码系统,简化了处理器上运行程序的编制。主要有以下几个特点:具有大量的指令和寻址方式;大多数程序只使用少量的指令就能够运行。绝大多数嵌入式处理器采用精简指令系统(RISC)。从而提高了微理器的效率,但需要更复杂的外部程序,也就是把在处理器层没有完成的工作放到了上层进行,而处理器层少的这些成本可以用于物理器件速度的提高上去。RISC有下特点:1、8/2原则:80%的程序只使用20%的指令;2、采用Load/store指令模式,凡数据由外存到内存、内存到寄存器方向的流动统一用Load指令,而对于反方向的操作,都用store;3、用小指令集、多寄存器、指令执行简单快速;4、统一用单周期指令,从根本上克服了CISC指令周期数有长有短、偶发性不确定、运行失常的缺点。2.4ARM7、ARM9内核处理器各采用几级流水线,分别是哪几级流水线结构?ARM7TDMI采用三级流水线,分另为取指令、解码指令和执行操作。ARM9TDMI采用5级流水线结构,分别为取指令、译码、执行、存储、写操作五级。2.5从内部结构来看ARM9内核处理器主要是由哪些部件组成的?ARM9TDMI处理器内核采用ARMV4T架构,增加了可用的存储器宽度、指令存储器接口以及数据存储器接口,可以支持16位Thumb指令集和32位ARM指令,ARM9作为高性能的32位RISC处理器内核,可以实现对指令和数据存储器的同时访问。2.6试列举ARM处理器工作模式,各工作模式主要完成什么功能?用户模式(User)。绝大部分的任务执行都在这种操作模式下,此为正常的程序执行模式。快速中断模式(FIQ)。当一个高优先级中断产生时,系统将会进入这种操作模式,用于高速数据传输和通道处理,由FIQ请求位发出请求信号。辽宁科技大学电信学院曲强email:askdqq@163.com4普通中断模式(IRQ)。当一个低优先级中断产生时将会进入这种操作模式,本模式用于通常的中断处理,由IRQ请求位发出请求信号。管理模式(Supervisor)。当复位或软中断指令执行时将会进入这种操作模式,是一种可以供操作系统使用的保护模式。中止模式(Abort)。当存取异常时将会进入这种操作模式,此模式可以被用作虚拟存储及存储保护,可由ABORT请求位发出请求信号。未定义模式(Undef)。当执行未定义指令时会进入这种操作模式,多被用于软件仿真硬件协处理器时。2.7试列举ARM处理器各寄存器功能?1个寄存器用作PC即程序寄存器,指向程序执行位置。1个寄存器用作CPSR即当前状态寄存器,保存当前CPU状态。5个寄存器用作SPSR,备份不同模式下CPSR的值。30个寄存器作为通用寄存器,存储数据使用。2.8试说明CPSR寄存器各位功能。N位结果为负数标志位。N=1表示运算的结果为负数;N=0表示运算的结果为正数或零。Z位结果为零标志位。Z=1表示运算的结果为零;Z=0表示运算的结果为非零。C位为进位标志位。C=1表示有进位,C=0表示没有进位。V溢出标志位。V=1表示符号位溢出,V=0表示结果没有溢出。Q位DSP指令溢出标志位。在ARMvTE/J架构支持,指示DSP指令是否溢出。J位为Jazelle支持标志位。仅ARM5TE/J架构支持,J=1表示处理器处于Jazelle状态。I位为IRQ中断禁止位。I=1表示禁止IRQ,I=0表示允许IRQ中断。F位为FIQ中断禁止位。F=1表示禁止FIQ,F=0表示允许FIQ中断。T为为Thumb状态标志位。仅ARMxT架构支持,T=0表示处理器处于ARM状态,T=1表示处理器处于Thumb状态。2.9试列出ARM处理器常见异常方式及其含义。快速中断(FIQ):当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常中断请求信号(IRQ):当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常中止异常:当外部的ABORT输入产生时,发生此异常。软件中断(SWI):该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令,可使用该异常机制实现系统功能调用。复位:当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。未定义异常:当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真。2.10为什么说ARM处理器是32位处理器数据线32位,寄存器32位,编码32位。2.11在ARM9中如何保证FIQ相应速度快于IRQ的相应速度。FIQ异常模式下有足够的私有寄存器,且支持数据传输和通道处理方式,从而避免了对寄存器保护的要求,提高响应速度。辽宁科技大学电信学院曲强email:askdqq@163.com5FIQ异常处于所有异常向量的之后,这样FIQ中断处理程序可以直接的放在中断向量处,而不必安排一条跳转指令。FIQ的优先级高于IRQ的优先级。辽宁科技大学电信学院曲强email:askdqq@163.com6第3章ARM寻址方式与指令系统3.1试列出16类指令条件域所对应的CPSR寄存器相应位状态。助记符标志含义EQZ置位相等NEZ清零不相等CSC置位无符号数大于或等于CCC清零无符号数小于MIN置位负数PLN清零正数或零VSV置位溢出VCV清零未溢出HIC置位Z清零无符号数大于LSC清零Z置位无符号数小于或等于GEN等于V带符号数大于或等于LTN不等于V带符号数小于GTZ清零且(N等于V)带符号数大于LEZ置位或(N不等于V)带符号数小于或等于AL忽略无条件执行3.2ARM处理器主要有哪些类型的寻址方式,各有什么特点?立即寻址:操作数在指令中直接给出。寄存器寻址:操作数存储在寄存器中。基地址变址寻址:操作数的地址为基地址与变址的和。寄存器间接寻址:操作数的地址存储在寄存器中的一种寻址方式。多寄存器寻址:操作数存储在多个寄存器中的一种寻址方式。辽宁科技大学电信学院曲强email:askdqq@163.com-7-第4章汇编语言程序设计4.1什么是伪指令和伪操作?在ARM汇编中有哪几种伪指令?在ARM汇编语言程序中有些特殊助记符,这些助记符与一般指令的助记符的不同之处在于没有相对应的操作码或者机器码,通常称这些特殊指令助记符为伪指令,他们所完成的操称为伪操作。在ARM汇编中,有如下几种伪指令:(1)符号定义伪指令;(2)数据定义伪指令;(3)汇编控制伪指令;(4)信息报告伪指令;(5)宏指令及其他伪指令。4.2熟悉常用伪指令的含义。(详见课堂PPT)4.3如何定义一个宏,宏与子程序的区别是什么?宏定义的格式为:MACRO[$标号]宏名[$参数1,$参数2…..]指令序列MENDMACRO表示一个宏定义的开始,MEND表示一个宏的结束,MACRO和MEND前呼后应可以将一段代码定义为一个整体,又称宏,然后在程序中就可以在程序中通过宏的名称及参数调用该段代码。宏与子程序的区别:宏指令可以重复使用,这一点的使用方式与子程序有些相似,子程序可以节省存储空间,提供模块化的程序设计。但使用子程序机构时需要保存/恢复现场,从而增加了系统的开销,因此,在代码传递的参数较多并且比较短时,可以使用宏代替子程序,宏在被调用的地方展开。4.4利用跳转表实现具有下述功能的汇编程序:(1)当r0为1时,调用子程序CASE1,完成r1加r2把结果放入r3的计算;(2)当r0为2时,调用子程序CASE2,完成r1减r2把结果放入r3的计算;(3)当r0为3时,调用子程序CASE3,完成r1与r2把结果放入r3的计算;(4)否则,完成r1或r2把结果放入r3的计算。参考程序AREAJumpTest,CODE,READONLY;定义代码段CODE32;设置为arm指令集ENTRY;程序入口startMOVr0,#1MOVr1,#3MOVr2,#2辽宁科技大学电信学院曲强email:askdqq@163.com-8-ADRr4,JumpTabl