西安邮电大学嵌入式课后答案_第1页
西安邮电大学嵌入式课后答案_第2页
西安邮电大学嵌入式课后答案_第3页
免费预览已结束,剩余44页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式系统开发习题11什么是嵌入式系统?有何特点?答:嵌入式系统的概念有很多种,在嵌入式系统领域中比较认同的嵌入式系统的概念 是:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用 系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统的特点:嵌入式系统是将先进的计算机技术、半导体技术以及电子技术与各个行业的具体应 用相结合的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创 新的知识集成系统。 系统内核小。由于嵌入式系统一般是应用于小型电子装置中,系统资源相对有限, 所以内核较之传统的操作系统要小得多。专用性强。系统精简。系统软件

2、(OS)要求具有高实时性。 嵌入式软件开发要走向标准化,需要使用多任务的操作系统。嵌入式系统本身并不具备在其上进行进一步开发的能力。2. 嵌入式系统可以分为几层?每一层各完成哪些功能?答:嵌入式系统由硬件层、中间层、软件层和功能层组成。硬件层:以嵌入式微处理器为核心,存储器用以存储数据和执行代码,相关的设备接 口和I/O接口,这些组成了一个嵌入式系统的基础,实现逻辑运算,算术运算等。中间层:将系统上层软件和底层硬件进行分离, 封装成标准的接口, 在上层软件开发人 员无需知道底层硬件的具体情况, 完成的任务是底层硬件的初始化、 数据的输入/输出操作、 硬件的配置等功能。软件层:主要由RTOS、文

3、件系统、图形用户接口、网络系统和通用的组件模块组成, 是软件开发的基础。功能层:用来完成被控对象的控制功能。3. 嵌入式系统中硬件抽象层有什么特点?答:硬件抽象层是介于硬件层与软件层之间的中间层,它将系统上层软件与底层硬 件分离开来,具有以下两个特点: 硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软件与 硬件平台之间的接口,硬件抽象层需要为操作系统提供操作和控制具体硬件的方法。 操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系 统具有特定的硬件接口形式。4. 简述嵌入式处理器的硬件组成?答:随着集成电路集成度的不断提高,嵌入式系统板级的硬件电路模块

4、也越来越多 的集成到芯片内部,目前处理器芯片内部的电路模块组成如下: 处理器内核,以 CPU为核心,有的还包含 MMU (存储器管理单元)、Cache (高 速缓存)、ICE (在线仿真)等电路模块。DSP/协处理器,对于多媒体处理的处理器,内部一般有DSP (数字信号处理)、浮点运算、图像加速等协处理器。RAM/ROM ,在单片机处理器中,处理器芯片内部一般集成了ROM (只读存储器)和RAM (可读可写存储器)。 处理器内部控制电路,如 PLL (锁相环)、复位、DMA (直接存储器存取)、中断 控制器、低功耗控制、看门狗等电路。 芯片内部接口电路,如 GPIO (通用输入、输出)接口、

5、I2C (双向两线制的串行总 线)接口、IIS (音频总线)接口、SPI (串行外设接口) 、USB (通用串行总线) 接口、LCD (液晶显示)接口、 ADC/DAC (模数/数模转换)、UART (通用异步收发器)、IrDA (红 外接口)、CAN (控制器局域网络) 总线接口、以太网接口、 Timer/RTC (定时器/计数器) 接口等电路模块。5. 嵌入式处理器分那几类?它们有何特点?答:嵌入式微处理器。特点:处理能力强,具有较高的性能,价格也相应较高。嵌入式微控制器。特点:主要用于嵌入式体统工业的主流,跟嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下

6、降,可靠性提高。并且价格低廉,功能优良,拥有的品种和数量最多。嵌入式DSP处理器。特点:DSP处理器是专门用于信号处理方面的处理器,在系 统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令的执行速度。SoC片上系统。特点: 实现了软硬件无缝结合,直接在处理器片内嵌入操作系统 的代码模块 具有极高的综合性,在一个硅片内部运用VHDL等硬件描述语言,实现一个复杂的系统 绝大部分系统构件在系统内部,系统简洁,减少了系统的体积和功耗,提高了系 统的可靠性跟设计生产效率。6. 分析目前市场上常用的几种嵌入式处理器,说明不同嵌入式处理器的各自特点?答:目前市场上常用的嵌入式处理器有MCS51单片

7、机,ARM处理器,MIPS处理器,PowerPC 处理器,MC68000 处理器,X86处理器等。MCS51的特点是,8位CPU,片内振荡器,4KB ROM ,128KB RAM,21 个特殊功 能寄存器,32根I/O总线,片外可寻找范围分别为64KB的外部程序和数据,两个16位的定时/计数器,一个全双工串口接口,中断结构分为两级优先级,5个中断源,适于按位逻辑运算的处理器。ARM处理器的特点是,体积小,功耗低,成本低,高性能,支持16/32位双指令集,在全球有众多合作伙伴。MIPS处理器的特点是,高性能,高档次的处理器,有32位和64位的处理器,简化硬件设计,强调软硬件协同提高性能。Powe

8、rPC处理器特点,具有优异的性能,低能量消耗,低散热量。MC68000处理器,是一个16/32位的CISC处理器,采用32位总线和寄存器,这个 结构对之后的32为产品保持兼容。X86处理器的特点,可变指令长度的CISC处理器,允许不对齐访问存储器。7. 举例说明嵌入式处理器的性能指标?并分析对嵌入式系统的影响?答:性能指标主要有主频,处理器字长,数据通路速度,运算速度,高速缓存和处理器的系统架构。主频,执行每条指令的时钟周期数一定,主频越高单位时间内执行的指令越多。处理器字长,处理器内部数据运算的基本位数,反映的是计算精度,以及单次处理数据 的总长度;数据通路速度,读取指令数据传输计算数据的速

9、度越高,处理器性能越好。运算速度,用MIPS (每秒执行多少百万条指令)表示, MIPS越大,说明运算速度越快;高速 缓存,突破主存访问速度的瓶颈,提高处理器的综合性能。8. 简述你对嵌入式操作系统的认识,分析嵌入式操作系统有哪些特点?答:嵌入式操作系统 EOS是一种支持嵌入式系统应用的操作系统软件,它是嵌入式 系统(包括软硬件系统) 极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统 内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。EOS是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等之外,还有以下特点:可装卸性,开放

10、性、可伸缩性的体系结构。 强实时性,EOS实时性一般较强,可用于各种控制系统中。 统一的接口,提供各种设备驱动接口。 操作方便、简单,提供友好的图形GUI,追求易学易用。提供强大的网络功能,支持 TCP/IP协议及其他协议,提供 TCP/UDP/IP/PPP 协议 支持及统一的MAC访问层接口,为各种移动计算设备预留接口。强稳定性,弱交互性。固化代码。 更好地硬件适应性,也就是良好的移植性。9. 试分析实时操作系统中可抢占型和不可抢占型有何区别?并举例说明。答:实时操作系统可分为可抢占型和不可抢占型两类。对于基于优先级的系统而言,可抢占型的实时操作系统是指内核可以抢占正在运行任务的CPU使用权

11、并将使用权交给进入就绪态的优先级更高的任务,是内核抢了CPU让别的任务运行。不可抢占型实时操作系统使用某种算法以决定让某个任务运行后,就把CPU的控制权完全交给该任务,直到它主动将CPU控制权还回来。比如嵌入式操作系统 uC/OS,可以根据优先级进行抢占使用CPU,优先级高的任务可以比优先级低的任务优先使用CPU。10. 简述嵌入式系统的开发过程?答:嵌入式系统的开发过程可以分为需求分析、建立开发环境、体系结构设计、软件/硬件设计、系统集成和系统优化与测试6个阶段。如果设计的流程是从需求分析开始,然后是建立开发环境,依次进行,最后是系统优化与测试,那么就叫做自上而下的设计流 程;反之就叫做自下

12、而上的设计流程。所有的嵌入式系统设计不可避免的设计这六个阶段, 更重要的是找到一个好的设计方法,目前一种比较好的设计方法是采用计算机辅助设计工 具。11. 简述在线仿真器ICE和在线调试器ICD有何区别?答:在线仿真器ICE是一种模拟 CPU的设备,能执行 CPU的全部动作。采用该方式调试时,利用仿真头代替目标板上的CPU,可以完全仿真 CPU的行为。在线调试器ICD是将CPU的调试功能的引脚引出来,让外部的硬件直接连接到这 些引脚上去监控整个 CPU的动作。12. 试分析嵌入式系统测试中的纯软件测试过程,举例说明实现方法。答:纯软件测试过程是指用工具采用软件打点技术,在被测试代码中加入一些函

13、数,这些函数用来完成数据的生成,并将数据送往目标机系统的共享内存中,同时,在目标机系统中运行一个与处理任务, 用于完成这些数据的预处理,然后将处理过的数据通过目标机的串口,网口或者 USB 口送往宿主机测试平台。举例,可以在程序中间插入函数,读出当前 所有寄存器内容,发送至目标机系统,测试者可以根据这些数据了解系统执行情况。习题21. 按照ARM处理器的命名规则,说明 ARM7TDMI 中T、D、M、I的含义。答:T:支持16位的Thumb指令集;D:支持JTAG片上调试;M :支持长乘法操作(64位结果)的 ARM 指令,包含快速乘法器;I :带有嵌入式追踪宏单元ETM(Embedded T

14、race Macro),用来设置断点和观察点。2. 什么是哈佛结构?与普林斯顿结构有何区别?答:哈佛结构是一种将程序中指令和数据分开存储的存储器结构。即哈佛结构中程序存 储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。普林斯顿结构(冯 诺伊曼结构)是一种将程序指令存储器和数据存储器合并在一起的 存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。这便 是。这便是两种结构的区别。3. 什么是RSIC ?什么是CSIC ?简述他们的特点与差别。答:RSIC是精简指令集计算机,CISC是复杂指令集计算机。两者的区别在于不同的CPU设计理念和方法。对于CISC

15、: 在CSIC结构的指令系统中,各种指令的使用频率相差悬殊。有80%的指令只在20%的运行时间内才会用到。CISC结构指令系统的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制 时间和成本,而且还容易造成设计错误。在CISC结构指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算 机体系结构技术来提高系统的性能。对于RISC : 简化指令集,只保留常用的基本指令; 设计大量的通用存储器,减少访存的次数; 采用装载/保存结构,支持流水线技术,使每个周期时间相等; 采用简单的指令格式、规整的指令字长和简单的寻址方式; 单机器周期指令,即大多数的指令都可以在一个机器周期内完成,并且允许处

16、理器 在同一时间内执行一系列的指令。4. ARM7处理器是几级流水线?在ARM7处理器中,PC指向的是下一条要执行的指令”这句话对吗?为什么?答:ARM7处理器采用三级流水线。PC指向的是下一条要执行的指令 ”这句话不对。在 ARM处理器中将PC程序计数器 定义到R15寄存器,无论处理器处于何种状态,PC总是指向 正在取值”指令的地址,一般来说,人们习惯性的约定将正在执行的指令作为参考点”成为当前第一条指令,那么PC总是指向随后的第三条指令,或者说PC总是指向当前正在执行的指令地址再加上2条指令的地址,即指向正在执行指令的下下一条指令,而不是指向下一条要执行的指令。5. 简述ARM处理器中在线

17、仿真器模块 EmbeddedICE-RT 的作用。答:ARM处理器中的在线仿真器模块EmbeddedICE-RT ,一般还带有嵌入式宏跟踪单元模块ETM,实现ARM处理器的在线调试和运行过程的跟踪功能;并且具有诸多ICE功能,例如实时寻址、断点、单步、对ARM CPU的完全控制、对 ASIC系统其余部分的访问,以及对主机显示器外设访问、键盘输入和磁盘存储。6. ARM处理器的工作状态分为哪二种?ARM处理器又是怎么定义和标志的?答:ARM处理器的工作状态分为 ARM状态和Thumb 状态,这两种状态有程序状态字 CPSR中T标志位确定,为 0时处理器工作在 ARM状态,为1时处理器工作在 Th

18、umb状 态。7. ARM7TDMI 支持哪几种指令集,各有什么特点?答:ARM7TDMI处理器内核包含 2套指令系统,分别为 ARM指令集和Thumb指令 集,两种指令集的特点是:ARM指令集:处理器执行 32位字对齐方式的 ARM指令,每条ARM指令长度为32 位,指令的功能强大。Thumb指令集:处理器执行 16位字对齐方式的 Thumb指令,每条Thumb指令长 度为16位,是ARM指令功能的子集。8. ARM7处理器有哪些工作模式?如何实现不同模式之间的切换?举例说明。答:ARM处理器供支持7种工作模式,分别为:用户模式(usr);快速中断模式(fiq);外部中断模式(irq );管

19、理模式(svc);数据访问终止模式(abt );系统模式(sys); 未定义指令中止模式(und )。在7中模式中,除用户模式外,其他的 6种模式称为特权模 式,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。特权模 式下通过修改当前程序状态寄存器CPSR中控制位 M4:0的值,来改变处理器的运行模式。例如MSRCPSR_c, # (Nolnt |SVC32Mode) II从系统模式切换到管理模式MSRCPSR_c,#( Nolnt |SYS32Mode) II从管理模式切换到系统模式9. 描述ARM7处理器的内部寄存器结构,并分别说明快速中断FIQ有何特点?答:ARM7微

20、处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存 器。37个寄存器定义如下: 31 个通用寄存器:R0R15、R8_fiq、 R9_fiq、 R10_fiq、 R11_fiq、 R12_fiq、 R13_fiq、 R14_fiq、R13_svc、R14_svc、R13_abt、R14_abt、R13_und、 R14_und、R13_irq、R14_irq 。 6 个状态寄存器:CPSR、SPSR_abt、SPSR_svc、SPSR_irq、SPSR_fiq、SPSR_und 。快速中断FIQ,适用于对一个突发事件的快速响应,在 ARM状态中,快中断有8个专 用的寄存器,可

21、以缩短状态切换时需要的时间。 当CPSR中相应的F位清零,快速中断被使 能。10. 什么是中断延时?在实时系统中如何计算中断延时时间?答:中断延时是系统响应一个中断所需要的时间,即从外部中断请求信号发出到执行对 应的中断服务程序ISR的第1条指令所需要的时间。FIQ的中断延时计算,当 FIQ使能时,最坏的延时包括:a) Tsy ncmax :请求通过同步器的最长时间,为两个处理器周期。b) Tldm :最长执行时间,最长为 20个周期。c) Texc :数据中止异常进入时间,为三个周期。d) Tfiq : FIQ进入时间,为两个周期总的延时可为27个周期。11. 在内存的数据存储过程中,什么是

22、 字对齐”和 半字对齐”?答:在内存数据存储过程中,一般分为小端存储格式和大端存储格式。下面以小端存储 格式为例来说明字对齐和半字对齐:在小端存储格式中,对于地址为 A的字单元,其中字节的低位字节到高位字节地址顺 序为A ,A+1,A+2,A+3 ;对于地址为 A的半字单元,其中字节的低位字节到高位字节地址顺序为 A,A+1。12. 简述程序计数器(PC)在处理器工作中的作用。答:在ARM处理器中将PC程序计数器定义到 R15寄存器,无论处理器处于何种状态, PC总是指向 正在取值”指令的地址。13. 简述ARM处理器中的返回链接寄存器(LR )在处理器工作中的作用。答:链接寄存器 LR用于保

23、存子程序返回地址或者异常处理程序的返回地址,LR寄存器一共有6个,其中子程序的返回地址使用一个R14,每种异常模式各自有一个专用的LR寄存器用于保存异常处理程序的返回地址,它们分别为R14_fiq、R14_svc、R14_abt、R14_und、R14_irq。14. 分别简述ARM 处理器中的CPSR、SPSR在处理器工作中的作用。答:ARM内核包含1个CPSR和5个仅供异常处理模式使用的SPSR。由于所有模式全部共享一个程序状态寄存器CPSR,因此处理器所有的状态全部都保存在CPSR中,也就是 ARM内核是通过 CPSR来监视和控制内部操作的。每种异常模式都有一个对应的程序状态保存寄存器S

24、PSR,用于保存任务在异常发生之前的CPSR状态的当前值。15. 结合CPSR的结构,说明程序状态字中各个bit位的作用。3130292827876543210NZCVIFTM4M3M2M1M0答:条件代码标志(共计 4bit )含义如下:N :运算结果的最高位反映在该标志位。对于有符号二进制补码,结果为负数时N=1,结果为正数或零时 N=0 ;Z:指令结果为0时Z=1 (通常表示比较结果 相等”),否则Z=0 ;C:当进行加法运算,最高位产生进位时C=1,否则 C=0。当进行减法运算(包括CMP指令),最高位产生借位时 C=0,否则C=1。V :当进行加法/减法运算,并且发生有符号溢出时V=

25、1 ,否则V=0,其它指令 V不变。CPSR的最低8位为控制位,控制了处理器的工作方式。当发生异常时,这些位被硬件改变。当处理器处于一个特权模式时,可用软件操作这些位。它们分别是:中断禁止位包括I和F位:当I位置位时,IRQ中断被禁止;当F位置位时,FIQ中断被禁止。T位反映了处理器的当前状态:当位T=1时,处理器正在Thumb状态下运行;当位T=0时,处理器正在 ARM状态下运行。模式位包括 M4:0共计5bit,这些位决定处理器的操作模式16. 简述ARM7TDMI内部有哪些寄存器及特点。答:ARM7微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存 器。37个寄存器定

26、义如下: 31 个通用寄存器:R0R15、R8_fiq、 R9_fiq、 R10_fiq、 R11_fiq、 R12_fiq、 R13_fiq、R14_fiq、R13_svc、R14_svc、R13_abt、R14_abt、R13_und、 R14_und、R13_irq、R14_irq。 6 个状态寄存器:CPSR、SPSR_abt、SPSR_svc、SPSR_irq、SPSR_fiq、SPSR_und。特点:在ARM 状态中,R0R7是通用寄存器,是不分组寄存器;R8R14,SPSR根据模式进行分组的寄存器;R15是程序计数器,不进行分组;CPSR是状态寄存器,不进行分组。17. 什么是A

27、RM处理器的异常? ARM处理器中有哪几种异常?答:在 ARM中,异常是一些事件,这些事件能导致正常的程序执行流程被暂时地停 止,而进入到该事件对应的处理器异常模式并对该事件进行处理。ARM中定义了复位、未定义指令、SWI (软中断)、预取指终止、预取数终止、irq以及fiq等7种异常,与之对应地 ARM7处理器有5种异常模式。18. 分别简述ARM7的IRQ、FIQ异常处理过程,说明其异常向量地址。答:IRQ异常的处理流程如下: 进入IRQ异常模式。程序运行在用户模式下,当一个IRQ异常中断发生时,内核切换到 中断模式”,并自动的做如下处理。 将异常处理程序的返回地址保存到异常模式下的R14

28、(R14_irq)中。 用户模式的CPSR将被保存到中断异常模式SPSR_irq中。 修改CPSR,将I置1,禁止新的IRQ中断产生,但不改变 F值,不限制FIQ中断发生,清零T标志位,进入 ARM状态,修改模式位,设置为IRQ模式。 将IRQ异常中断入口向量地址 0x00000018 送入PC。 在IRQ模式下,用户模式的 R13和R14将不能操作,而 R13_irq和R14_irq可以操作,即R13_irq保存IRQ模式下的地址指针,R14_irq保存了 IRQ中断返回地址+4 ”。 退出IRQ异常模式。中断服务程序执行完毕后,使用一条指令将返回地址送入PC,即可实现IRQ中断返回,在返回

29、过程中处理器会自动将SPSR_irq中的内容复制到CPSR,恢复中断前的处理器状态。FIQ异常进入与退出的流程与IRQ类似,其异常入口地址是0x0000001C 。19. ARM7处理器对哪些异常可以进行屏蔽?如何屏蔽或允许?答:FIQ和IRQ可以被屏蔽。将CPSR的标志位I和F分别置位对应着IRQ和FIQ中断 被禁止,清零这些位又可以将其使能。20. 说明CPSR中T位的作用,ARM7处理器如何切换状态?答:CPSR中T标志位为0时处理器工作在 ARM状态,为1时处理器工作在 Thumb状态。由于ARM采用字对齐或者半字对齐的存储模式,这意味着地址的最低一个比特位就不会在寻址过程中使用到。

30、故,使用地址的最低位进行区分,以何种模式取值和执行指令,当 地址地位为1时,置CPSR的T位为1,反之,置位为 0。21. 大端存储模式和小端存储模式的含义是什么?画出在0x2000 单元中存储0x87654321数据的大端存储模式和小端存储模式。答:大端存储模式:在大端存储格式中,对于地址为A的字单元,其中字节的低位字节到高位字节地址顺序为A+3 ,A+2,A+1 , A;对于地址为 A的半字单元,其中字节的低位字节到高位字节地址顺序为A+1,A。即数据的低字节存放在高地址中的顺序进行存储。小端存储模式:在小端存储格式中,对于地址为A的字单元,其中字节的低位字节到高位字节地址顺序为 A ,A

31、+1 ,A+2,A+3 ;对于地址为 A的半字单元,其中字节的低位字节到高位字节地址顺序为A ,A+1。即数据的高字节存放在高地址中的顺序进行存储。0x210x20030x210x20000x430x430x650x650x870x20000x870x2003上图中,左侧为大端存储模式,右侧为小端存储模式。习题31、ARM7TDMI 支持哪几种指令集,各有什么特点?答:支持ARM指令集和Thumb指令集,各自特点是 ARM指令集的指令是32位,执行效率高、功能全,每条指令可以根据条件执行,但是代码密度低。Thumb指令集指令是16位,在功能上是 ARM指令集的子集,功能并没有降低。2、ARM指

32、令的寻址方式有几种?并指出下列指令中的寻址方式。答:ARM指令的寻址方式有 8种,分别为立即寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址变址寻址、相对寻址、多寄存器寻址、堆栈寻址。SUB RO, R1, R2 寄存器寻址LDR R0, R2 寄存器间接寻址MVNR0, #0x0F2 立即寻址LDMIA R0, R1-R5 多寄存器寻址STR R2, R4, #0x02 !基址变址寻址LDR R1, R2, R3基址变址寻址MOV R1, R1, ROR #2 寄存器移位寻址LDR R1, R3, #0x04基址变址寻址3、 简述ARM指令集中第2个操作数(operand2 )的三种形

33、式。答: 常数表达方式。该常数必须对应8位位图,即常数是由一个8位的常数循环右移偶数位得到。例如:MOV R2,#100 ;寄存器方式。Operand2 是Rm寄存器方式,在寄存器方式下操作数即位寄存器中的数值。例如:SUB R0,R1,R2 ;寄存器移位方式。Rm,shift表示将寄存器的移位结果作为操作数,但Rm值保持不变。例如:MOV R0,R1,RRX ;将R1带扩展的循环右移1位,存入R0中。4、指出下列指令是否正确,若不正确请说明原因。MOVS R1, 101不正确,立即寻址方式应该是 #101 MVN R1, #0x10F 正确STMDA R11, R2-R8!不正确,不能同时存

34、储在 R2和R8中 ADD RO!, R2, #4 正确LDR R4, R5! 不正确,LDR是存储到单个寄存器的加载指令,而这个是两个存 储器都进行存储,应该为LDR R4, R5MRS PC, CPSR 不正确MRS是将CPSR传送到通用寄存器中,但这里的通用寄 存器不包括R15,即PC LDMFDS R0!, R5-R8, R2 正确ADD R3, R3, R7不正确,ADD指令不能访问存储器(9) LDR R11, R15,R8 ! 正确(10) BXS R0 正确5、 何谓ARM指令的条件码?默认的条件码是什么?举例说明ARM 指令的条件码对指 令执行的影响。答:所谓的 ARM指令的

35、 条件执行”是指在指令码中含有本条指令的执行条件,当CPSR中的条件码标志满足时,处理器执行本条指令,否则本条指令不执行。默认是无条件执行。比如执行指令“ ANDEQ R2,R1,R3”时,如果 CPSR中的Z=1 时,执行R2=R1 &R3,否则不执行该指令。6、 解释 满堆栈”、空堆栈”、递增堆栈”和 递减堆栈”? ARM指令系统中是如何支持的?答:满堆栈:堆栈指针 SP指向最后压入的堆栈有效数据项。空堆栈:堆栈指针 SP指向下一个待压入数据的空位置。递增堆栈:向高地址方向生长。递减堆栈:向低地址方向生长。满递增:堆栈向上增长,SP指向内含有效数据项的最高栈单元。指令如LDMFA

36、、STMFA 等;空递增:堆栈向上增长,SP指向堆栈上的第一个空位置。指令如LDMEA、STMEA等;满递减:堆栈向下增长,SP指向内含有效数据项的最低栈单元。指令如LDMFD 、STMFD 等;空递减:堆栈向下增长,SP指向堆栈下的第一个空位置。指令如LDMED、STMED等。7、试说明MOV指令、LDR加载指令和LDR伪指令三者的区别。答:MOV指令是在寄存器间进行数据传送,影响标志位。LDR指令是将存储器中的数据按给定地址加载到寄存器中,不影响标志位。LDR伪指令是可以在一个立即数前面加等号,把一个地址写入某寄存器。8、解释B指令、BL指令与BX指令的功能差别,并举例说明其使用方法。答:

37、B指令是分支指令,BL指令是带链接的分支指令,BX是带状态切换的分支指令。对于B指令“ B WAITA ”指跳转至标号 WAITA处开始执行,B指令的跳转范围为土 32M,对于BL指令,实现程序跳转,并保持PC到链寄存器LR中,跳转范围土 32M, 举例“ BL DELAY ”完成的跳转至标号 DELAY处执行,并把PC-4存入LR。BX指令,带状态切换的跳转,比如“ BX R0 ”表示跳转R0指定的地址开始执行,并查看 R00 位的值,如果是1,对CPSR的T位置位,解释目标程序为 Thumb指令,如果是0, 对CPSR的T位清零,解释目标程序为 ARM指令。9、分析下列两段程序片断的功能,

38、试用类C语言写出其等价功能。程序片断1:CMP R0, R1ADDHI R0 , R0 , #1ADDLS R1 , R1 , #1程序片断2 :CMP R0 , #10CMPNE R1 , #20ADDNE R0,R0,R1答:(1) if(R0 > R1)R0+;elseR1+;(2)if(R0 != 10)&&(R1 != 20)RO = R0+R1;10、使用ARM汇编指令的条件执行功能,试用汇编语言实现下列两条C代码语句。 if(x = = y) if(x = = y) && ( a = = b)答:a = b + c; elsea = b -c

39、;c = c * 2+b;LDRR0,xLDRR1,yLDRR2,bLDRR3,cCMPR0,R1ADDEQ R4,R2,R3SUBNE R4,R2,R3STRa,R4(1)LDRLDRR2,aLDRR3,bLDRR4,cCMPR0,R1CMPEgR2,R3,MULEQR4,R4, #2ADD R4 ,R4,R3R0,xLDRR1,ySTR c,R411、下列代码段是实现开IRQ中断和关IRQ中断功能,试补齐空白处内容。 MRS R0,CPSRBIC R1,RO, 0x80MSR CPSR_c, R1 MRS R1,CPSRORR R1, R1,#0x80MSR CPSR_c, R112、如果

40、ARM处理器中各寄存器及存储单元参数如下图所示,试写出执行下列指令后,各寄存器及存储单元中内容变化情况。 STMIA R13!,R0-R3 LDMDB R13, R0-R3答:(1), R13 - R0R13+4 R1R13+8 R2(2) , R0 R13,R1 R1+4;R13+12 R3R1 R13,R1 R1+4;R2 R13,R1 R1+4;R3 R13,R1 R1+4;习题41. 什么是计算机语言? 一般可以分为哪几种?各自的优缺点?答:计算机语言是计算机可以识别、理解的语言。计算机语言分为三类:机器语言,汇编语言和高级语言。机器语言(Machine Language )是由0和1

41、二进制代码表示和存储的指令与数据。它的特点是能被机器直接识别与执行;程序所占内存空间较少。其缺点是难认、难记、难编、易错。汇编语言是一种面向物理层操作的计算机语言。不同的处理器类型,具有不同的汇编语言。使用汇编语言编写程序能够直接利用硬件系统的特性(如寄存器、标志、中断系统等),可直接对位、字节、字寄存器或存储单元、I/O端口进行处理,同时也能直接使用CPU指令系统提供的各种寻址方式,编制出高质量的程序,这样的程序不但 占用内存空间少,而且执行速度快。缺点:由于汇编语言不直接支持复杂的抽象数据类型,在描述目标系统模型时,需要程序员自己组织各种抽象数据类型的存储方式, 使得汇编语言程序设计较高级

42、语言困难的多,需要较多的软件开发时间,也增加了程 序设计过程中出错的可能性,程序维护也麻烦。高级语言(High Level Language)是脱离具体机器(即独立于机器)的通用语言,不依赖于特定计算机的结构与指令系统。与目标系统的数学模型之间有着良好的对应 关系,可在各种机器上通用,具有很好的通用性和可移植性。缺点:处理器是不能直 接执行这种用高级语言编写的源程序,需要先将它翻译成对应的目标程序(即机器语言程序),才能运行。2. 简述ARM汇编语言上机操作过程。答:设计、编辑汇编语言源程序;汇编、连接、下载到目标系统;调试运行;3. 简述编写一个汇编语言源程序的基本步骤。答: 分析目标系统,

43、建立数学模型,确定算法根据算法设计流程图合理分配寄存器,存储空间和外设资源根据流程图编写源程序上机调试程序形成文档4. 循环程序设计中,循环的基本结构有几种?其循环控制方法有几种?各自的应用特点?答:循环程序的基本结构:初始化部分:建立循环初始值。 循环体:是循环程序的主体部分。修改部分:为执行下一次循环而修改某些参数。 控制部分:通过判断循环结束条件是否成立,决定是否继续执行循环。 结束处理部分:对循环结束进行适当处理,如存储结果和打印输出等。循环程序设计中一个重要环节就是如何控制循环次数。循环控制方法:用计数控制循环。特点:循环比较次数是已知的,因此可以用计数器控制循环。用条件控制循环。有

44、些情况无法确定循环次数,但循环结束的条件是已知的,这时可通过循环测试结束条件是否满足的方法,条件满足结束循环,否则继续循环。5. 汇编子程序传递参数有哪几种方式?答:寄存器传递参数方式存储区域传递参数方式堆栈传递参数方式6. C语言和ARM汇编语言进行程序编制时常用的开发方法有哪些?答:使用C语言和ARM7汇编语言进行程序编制时常用的开发方法:混合编程和交叉 编程。7. 简述APCS规则。答: 寄存器使用规则。 ARM 处理器寄存器组中的 R0-R11用来保存局部变量;R12-R15用于系统专用:R12用于子程序内部调用的片段寄存器;R13当前模式的堆栈指针;R14链接寄存器,保存子程序的返回

45、地址;R15用作程序计数器。其中,由于R4-R11用来保存局部变量,对于遵守APCS规则的函数,在进入该函数的时候,程序员必须注意保存R4-R11中会被函数使用的寄存器,当返回时,再返回它们的值。 堆栈使用规则。APCS规则中的堆栈为 FD类型,也就是满递减堆栈,并且堆栈的 操作是8字节对齐的,所以需要在汇编程序中用伪指令PRESERVE8来告诉连接器,本程序使用的堆栈是字节对齐的。 参数传递规则。ARM7处理器寄存器组中R0-R3用于程序间的参数传递,其中R0传递第一个参数,R1传递第二个参数,以此类推;如果参数数目超过4个,那么必须使用堆栈进行传递。8. 实现将某个寄存器中的字数据拆分成4

46、组字节数据的功能。答:不妨设数据在 R0中,拆成的数据存放在 R1R4中,程序代码如下。MOVR1,R0ANDR1,R1,#0xFF ;MOVR2,R 0,L SR 0x08ANDR2,R2,#0xFFMOVR3,R0,LSR #0x08ANDR3,R3,#0xFFMOVR4,R0,LSR 0x08ANDR4,R4,#0xFF程序执行完之后,四组字节的数据存放在R1R4的低八位,高24为清零9. 实现统计任意字符串包含的字符个数的功能。(约定:字符串以0为结束标志)答:LDR RO,string;将一个字符串的地址放到R0中。MOV R1,0;将字符串结束符放 R1中MOV R3,0;将统计长

47、度的放入 R3中LDR R2,R0;将字符串的第一个字符放入R2cou nt:CMP R2,R1; 将R2中内容与结束符 0进行比较 BEQ n ext;如果相等,说明比较结束ADD R3,R3,#1;如果不等长度值加 1LDR R2,R0+#1;讲下一个字节装入 R2B count;分支结构,返回至比较处,继续比较。next:;跳出这个算法的标号10.实现10个64位有符号数的相加运算。答:不妨假设这10个64位数紧密排列存储在存储器中,每个 内存空间,按小端模式存放,首地址为sp64位数占用8个字节的LDR R0,SP;LDRR1,R0;LDRR2,R0, #-4;MOVR3,#9;cou

48、nt:CMPR3,#0;BEQn ext;LDRR4,R0, #-8;ADCR1,R1,R4;LDR R5,R0, #-12;ADDR2,R2,R5;SUBR0,R0,#8;SUBR3,R3,#1CLRC;n ext:目标达到,10个数相加的结果高感谢下载载32位放在R1中,低32位放在R2中。11.实现如下功能:已知 BUF1中有N1个按从小到大顺序排列的互不相等的字符号数,BUF2中有N2个从小到大顺序排列的互不相等的字符号数,将BUF1和BUF2中的数合并到BUF3中,并按从小到大顺序排列且互不相等。答:AREA COPY ,CODE,READONL YENTRYCODE32startL

49、DRB R2,=BUF1LDRB R3,=BUF2LDRB R4,=BUF3LDR R5,=N1LDR R6,=N2ADD R5,R5,R6MOV R1,#0BL LOOP习题51、什么是存储器映射?简述 LPC2000系列处理器中各种资源是如何映射的?答:将物理存储器分配到逻辑地址的过程称为存储器映射。LPC2000系列处理器中的存储器映射空间范围为:OxOOOOOOOO-OxFFFFFFFF , 起始地址依次为:FLASH 0x00000000,SRAM 0x40000000,BOOTBLOCK 0x7FFFE000,外部存储器 0x80000000 ,VPB (低速外设地址)一0xE00

50、00000 ,AHB 0xF0000000.2、什么是重映射?试分析重映射的原理与实现机制。答:存储器重映射:将已经映射过的存储器再次映射的过程称为存储器重映射,它使同一物理存储单元映射多个不同的逻辑地址。原理:此时运用了异常向量表重映射技术,就是将 Boot Block 的 0x7FFFE0000x7FFFE03F ,片内 SRAM 的 0x400000000x4000003F及片外存储器的 0x800000000x8000003F向量表分别重映射到 0x00000x003F 地址空间。实现机制:使用存储器映射控制机制来改变0x00000x003F区间的中断向量映射关系,比如LPC2000提

51、供了一个存储映射控制寄存器MEMMAP,可以被读写,低两位为00、01、10、11时分别重映射 Boot Block 、片内Flash、片内SRAM 和片外存储器。3、什么是中断?叙述中断处理过程。答:计算机在执行正常程序过程中,当出现某种异常事件或某种外部请求时,处理器就暂停执行当前的程序,而转去执行对异常事件或某种外部请求的处理操作。当处理完毕后,CPU再返回到被暂停执行的程序,继续执行,这个过程称为中断。中断处理过程一般包括五个步骤:中断请求,中断响应,断点保护,中断处理和中断返回。4、 ARM7 的中断类型有哪些?哪种方式最快?当有多个中断源同时向CPU发出中断申 请时,CPU依据什么

52、来进行响应中断?答:根据中断源的不同,中断可以分为硬件中断和软件中断。有三类:非向量IRQ中断,向量IRQ中断,FIQ中断。它们的优先级依次升高。所以FIQ中断的处理速度最快。当多个中断源同时向 CPU发出中断申请时,CPU只能按一定的次序处理相应和处理, 这个响应的次序称为中断优先级。处理原则为: 不同优先级的多个中断源同时发出中断请求,按优先级由高到低依次处理。 低优先级中断正在处理,出现高优先级请求,应转去处理高优先级请求,服务结束后再返回原优先级较低的中断服务程序继续执行。 高优先级中断正在处理,出现低优先级请求,可暂不响应。 中断处理时,出现同级别请求,应在当前中断处理结束以后再处理

53、新的请求。5、LPC2000系列有那些降低功耗的方法?简述空闲模式和掉电模式的区别。答:降低功耗的方法有空闲模式和掉电模式。除了采用这两种模式外,还允许程序对某个外设进行关闭控制,可以独立的关闭应用中不需要的外设,这样进一步降低功耗。空闲模式和掉电模式的区别:在空闲模式下,处理器停止执行指令,此时处理器,存储器,内部总线以及相关的控制器不再消耗功率,但整个系统的时钟仍然有效,外设也能在空闲模式下继续工作,并可产生中断使处理器恢复运行。然而在掉电模式下,振荡器关闭, 这样芯片内部没有任何时钟。处理器状态和寄存器,外设寄存器,内部SRAM值以及引脚的逻辑电平在掉电模式下被保持。6、简述LPC200

54、0系列中PLL的工作原理,说明系统时钟的配置过程。答:PLL接受的输入时钟频率范围为1025MHz ,PLL的输出时钟信号是由电流控制振荡器(CCO)分频得到的,CCO的振荡频率由“相位频率检测”部件控制,该部件会比较 输出时钟信号和 CCO经过M分频后信号的相位和频率,并根据误差输出不同的电流值以 控制CCO的振荡频率,CCO的输出频率经过 M分频后再送给“相位频率检测”部件检测 以控制CCO的振荡频率,经过反复拉锯调节过程,能够使得“相位频率检测”部件的两路 输入信号频率和相位逐步接近,渐渐稳定到预期的频率值上。这种反复拉锯调节过程称为 PLL锁定过程,输出频率稳定后即“锁定”成功。其配置过程:1. 选择处理器的操作频率,选择振荡器的频率,计算M值和P值;2. 配置PLLCON使能但不连接的 PLL的模式,根据P和M的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论