收藏 分享(赏)

嵌入式系统开发_李宥谋_答案(1)new.doc

上传人:dreamzhangning 文档编号:2229356 上传时间:2018-09-06 格式:DOC 页数:24 大小:217KB
下载 相关 举报
嵌入式系统开发_李宥谋_答案(1)new.doc_第1页
第1页 / 共24页
嵌入式系统开发_李宥谋_答案(1)new.doc_第2页
第2页 / 共24页
嵌入式系统开发_李宥谋_答案(1)new.doc_第3页
第3页 / 共24页
嵌入式系统开发_李宥谋_答案(1)new.doc_第4页
第4页 / 共24页
嵌入式系统开发_李宥谋_答案(1)new.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

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

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

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

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

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

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

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

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

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

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

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

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

13、例说明实现方法。答:纯软件测试过程是指用工具采用软件打点技术,在被测试代码中加入一些函数,这些函数用来完成数据的生成,并将数据送往目标机系统的共享内存中,同时,在目标机系统中运行一个与处理任务,用于完成这些数据的预处理,然后将处理过的数据通过目标机的串口,网口或者 USB 口送往宿主机测试平台。举例,可以在程序中间插入函数,读出当前所有寄存器内容,发送至目标机系统,测试者可以根据这些数据了解系统执行情况。4习题 21. 按照 ARM 处理器的命名规则,说明 ARM7TDMI 中 T、D、M 、I 的含义。答:T:支持 16 位的 Thumb 指令集;D:支持 JTAG 片上调试; M:支持长乘

14、法操作(64 位结果)的 ARM 指令,包含快速乘法器;I :带有嵌入式追踪宏单元ETM(Embedded Trace Macro) ,用来设置断点和观察点。2. 什么是哈佛结构?与普林斯顿结构有何区别?答:哈佛结构是一种将程序中指令和数据分开存储的存储器结构。即哈佛结构中程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。普林斯顿结构(冯诺伊曼结构)是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。这便是。这便是两种结构的区别。3. 什么是 RSIC?什么是 CSIC?简述他们的特点与差别。答:RSIC

15、 是精简指令集计算机,CISC 是复杂指令集计算机。两者的区别在于不同的CPU 设计理念和方法。对于 CISC: 在 CSIC 结构的指令系统中,各种指令的使用频率相差悬殊。有 80%的指令只在 20%的运行时间内才会用到。 CISC 结构指令系统的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。 在 CISC 结构指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术来提高系统的性能。对于 RISC: 简化指令集,只保留常用的基本指令; 设计大量的通用存储器,减少访存的次数; 采用装载/保存结构,支持流水线技术,使每个周期时间相等;

16、 采用简单的指令格式、规整的指令字长和简单的寻址方式; 单机器周期指令,即大多数的指令都可以在一个机器周期内完成,并且允许处理器在同一时间内执行一系列的指令。4. ARM7 处理器是几级流水线?在 ARM7 处理器中, “PC 指向的是下一条要执行的指令”,这句话对吗?为什么?答:ARM7 处理器采用三级流水线。“PC 指向的是下一条要执行的指令” ,这句话不对。在 ARM 处理器中将 PC 程序计数器定义到 R15 寄存器,无论处理器处于何种状态, PC 总是指向“正在取值” 指令的地址,一般来说,人们习惯性的约定将“正在执行的指令作为参考点”,成为当前第一条指令,那么PC 总是指向随后的第

17、三条指令,或者说 PC 总是指向当前正在执行的指令地址再加上 2 条指令的地址,即指向正在执行指令的下下一条指令,而不是指向下一条要执行的指令。5. 简述 ARM 处理器中在线仿真器模块 EmbeddedICE-RT 的作用。答:ARM 处理器中的在线仿真器模块 EmbeddedICE-RT,一般还带有嵌入式宏跟踪单元模块 ETM,实现 ARM 处理器的在线调试和运行过程的跟踪功能;并且具有诸多 ICE 功能,例如实时寻址、断点、单步、对 ARM CPU 的完全控制、对 ASIC 系统其余部分的访问,以及对主机显示器外设访问、键盘输入和磁盘存储。6. ARM 处理器的工作状态分为哪二种?ARM

18、 处理器又是怎么定义和标志的?答:ARM 处理器的工作状态分为 ARM 状态和 Thumb 状态,这两种状态有程序状态字CPSR 中 T 标志位确定,为 0 时处理器工作在 ARM 状态,为 1 时处理器工作在 Thumb 状5态。7. ARM7TDMI 支持哪几种指令集,各有什么特点?答:ARM7TDMI 处理器内核包含 2 套指令系统,分别为 ARM 指令集和 Thumb 指令集,两种指令集的特点是:ARM 指令集:处理器执行 32 位字对齐方式的 ARM 指令,每条 ARM 指令长度为 32位,指令的功能强大。Thumb 指令集:处理器执行 16 位字对齐方式的 Thumb 指令,每条

19、Thumb 指令长度为 16 位,是 ARM 指令功能的子集。8. ARM7 处理器有哪些工作模式?如何实现不同模式之间的切换?举例说明。答:ARM 处理器供支持 7 种工作模式,分别为:用户模式(usr) ;快速中断模式(fiq) ;外部中断模式(irq) ;管理模式(svc) ;数据访问终止模式(abt) ;系统模式(sys) ;未定义指令中止模式(und) 。在 7 中模式中,除用户模式外,其他的 6 种模式称为特权模式,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。特权模式下通过修改当前程序状态寄存器 CPSR 中控制位 M4:0的值,来改变处理器的运行模式。例如

20、MSR CPSR_c,#(NoInt |SVC32Mode)/从系统模式切换到管理模式MSR CPSR_c,#(NoInt |SYS32Mode)/从管理模式切换到系统模式9. 描述 ARM7 处理器的内部寄存器结构, 并分别说明快速中断 FIQ 有何特点?答:ARM7 微处理器共有 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_a

21、bt 、R13_und、R14_und、R13_irq 、R14_irq。 6 个状态寄存器:CPSR、SPSR_abt 、SPSR_svc 、SPSR_irq 、SPSR_fiq、 SPSR_und。快速中断 FIQ,适用于对一个突发事件的快速响应,在 ARM 状态中,快中断有 8 个专用的寄存器,可以缩短状态切换时需要的时间。当 CPSR 中相应的 F 位清零,快速中断被使能。10. 什么是中断延时?在实时系统中如何计算中断延时时间?答:中断延时是系统响应一个中断所需要的时间,即从外部中断请求信号发出到执行对应的中断服务程序 ISR 的第 1 条指令所需要的时间。FIQ 的中断延时计算,当

22、 FIQ 使能时,最坏的延时包括:a) Tsyncmax:请求通过同步器的最长时间,为两个处理器周期。b) Tldm:最长执行时间,最长为 20 个周期。c) Texc:数据中止异常进入时间,为三个周期。d) Tfiq:FIQ 进入时间,为两个周期总的延时可为 27 个周期。11. 在内存的数据存储过程中,什么是“字对齐”和“半字对齐”?答:在内存数据存储过程中,一般分为小端存储格式和大端存储格式。下面以小端存储格式为例来说明字对齐和半字对齐:在小端存储格式中,对于地址为 A 的字单元,其中字节的低位字节到高位字节地址顺序为 A ,A+1 ,A+2,A+3;对于地址为 A 的半字单元,其中字节

23、的低位字节到高位字节地址顺序为 A ,A+1。612. 简述程序计数器(PC)在处理器工作中的作用。答:在 ARM 处理器中将 PC 程序计数器定义到 R15 寄存器,无论处理器处于何种状态,PC 总是指向 “正在取值” 指令的地址。13. 简述 ARM 处理器中的返回链接寄存器( LR)在处理器工作中的作用。答:链接寄存器 LR 用于保存子程序返回地址或者异常处理程序的返回地址,LR 寄存器一共有 6 个,其中子程序的返回地址使用一个 R14,每种异常模式各自有一个专用的 LR寄存器用于保存异常处理程序的返回地址,它们分别为R14_fiq、R14_svc、R14_abt、R14_und、R1

24、4_irq。14. 分别简述 ARM 处理器中的 CPSR、SPSR 在处理器工作中的作用。答:ARM 内核包含 1 个 CPSR 和 5 个仅供异常处理模式使用的 SPSR。由于所有模式全部共享一个程序状态寄存器 CPSR,因此处理器所有的状态全部都保存在 CPSR 中,也就是 ARM 内核是通过 CPSR 来监视和控制内部操作的。每种异常模式都有一个对应的程序状态保存寄存器 SPSR,用于保存任务在异常发生之前的 CPSR 状态的当前值。15. 结合 CPSR 的结构,说明程序状态字中各个 bit 位的作用。N Z C V I- - - - - - - - - -F T M 4 M 3 M

25、 2 M 1 M 03 13 02 9 2 8 2 7 8 7 6 54 32 1 0答:条件代码标志(共计 4bit)含义如下:N:运算结果的最高位反映在该标志位。对于有符号二进制补码,结果为负数时N=1,结果为正数或零时 N=0;Z:指令结果为 0 时 Z=1(通常表示比较结果“相等”) ,否则 Z=0;C:当进行加法运算,最高位产生进位时 C=1,否则 C=0。当进行减法运算(包括 CMP 指令),最高位产生借位时 C=0,否则 C=1。V:当进行加法/减法运算,并且发生有符号溢出时 V=1,否则 V=0,其它指令 V 不变。CPSR 的最低 8 位为控制位,控制了处理器的工作方式。当发

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

27、R15、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。7特点:在 ARM 状态中,R0R7 是通用寄存器,是不分组寄存器;R8R14 ,SPSR 根据模式进行分组的寄存器;R15 是程序计数器,不进行分组;CPSR 是状态寄存器,不进行分组。17. 什么是 ARM 处

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

29、地址保存到异常模式下的 R14(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 异

30、常模式。中断服务程序执行完毕后,使用一条指令将返回地址送入PC,即可实现 IRQ 中断返回,在返回过程中处理器会自动将 SPSR_irq 中的内容复制到CPSR,恢复中断 前的处理器状态。FIQ 异常进入与退出的流程与 IRQ 类似,其异常入口地址是 0x0000001C。19. ARM7 处理器对哪些异常可以进行屏蔽?如何屏蔽或允许?答:FIQ 和 IRQ 可以被屏蔽。将 CPSR 的标志位 I 和 F 分别置位对应着 IRQ 和 FIQ 中断被禁止,清零这些位又可以将其使能。20. 说明 CPSR 中 T 位的作用,ARM7 处理器如何切换状态?答:CPSR 中 T 标志位为 0 时处理器

31、工作在 ARM 状态,为 1 时处理器工作在 Thumb 状态。由于 ARM 采用字对齐或者半字对齐的存储模式,这意味着地址的最低一个比特位就不会在寻址过程中使用到。故,使用地址的最低位进行区分,以何种模式取值和执行指令,当地址地位为 1 时,置 CPSR 的 T 位为 1,反之,置位为 0。21. 大端存储模式和小端存储模式的含义是什么?画出在 0x2000 单元中存储 0x87654321数据的大端存储模式和小端存储模式。答:大端存储模式:在大端存储格式中,对于地址为 A 的字单元,其中字节的低位字节到高位字节地址顺序为 A+3,A+2,A+1,A;对于地址为 A 的半字单元,其中字节的低

32、位字节到高位字节地址顺序为 A+1,A。即数据的低字节存放在高地址中的顺序进行存储。小端存储模式:在小端存储格式中,对于地址为 A 的字单元,其中字节的低位字节到高位字节地址顺序为 A ,A+1 ,A+2 ,A+3;对于地址为 A 的半字单元,其中字节的低位字节到高位字节地址顺序为 A ,A+1。即数据的高字节存放在高地址中的顺序进行存储。0x210x430x650x870x210x430x650x870x20030x20000x20000x20038上图中,左侧为大端存储模式,右侧为小端存储模式。习题 31、 ARM7TDMI 支持哪几种指令集,各有什么特点?答:支持 ARM 指令集和 Th

33、umb 指令集,各自特点是 ARM 指令集的指令是 32位,执行效率高、功能全,每条指令可以根据条件执行,但是代码密度低。Thumb指令集指令是 16 位,在功能上是 ARM 指令集的子集,功能并没有降低。2、 ARM 指令的寻址方式有几种?并指出下列指令中的寻址方式。答:ARM 指令的寻址方式有 8 种,分别为立即寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址变址寻址、相对寻址、多寄存器寻址、堆栈寻址。 SUB R0, R1, R2 寄存器寻址 LDR R0, R2 寄存器间接寻址 MVN R0, #0x0F2 立即寻址 LDMIA R0, R1-R5 多寄存器寻址 STR R2,

34、R4, #0x02! 基址变址寻址 LDR R1, R2, R3 基址变址寻址 MOV R1, R1, ROR #2 寄存器移位寻址 LDR R1, R3, #0x04 基址变址寻址3、 简述 ARM 指令集中第 2 个操作数(operand2 )的三种形式。答: 常数表达方式。该常数必须对应 8 位位图,即常数是由一个 8 位的常数循环右移偶数位得到。例如:MOV R2,#100; 寄存器方式。 Operand2 是 Rm 寄存器方式,在寄存器方式下操作数即位寄存器中的数值。例如:SUB R0,R1 ,R2 ; 寄存器移位方式。 Rm, shift 表示将寄存器的移位结果作为操作数,但 Rm

35、值保持不变。例如:MOV R0,R1 ,RRX ;将 R1 带扩展的循环右移 1 位,存入 R0中。4、 指出下列指令是否正确,若不正确请说明原因。 MOVS R1, 101 不正确,立即寻址方式应该是#101 MVN R1, #0x10F 正确 STMDA R11, R2-R8! 不正确,不能同时存储在 R2 和 R8 中 ADD R0!, R2, #4 正确 LDR R4, R5! 不正确,LDR 是存储到单个寄存器的加载指令,而这个是两个存储器都进行存储,应该为 LDR R4, R5 MRS PC, CPSR 不正确 MRS 是将 CPSR 传送到通用寄存器中,但这里的通用寄存器不包括

36、R15,即 PC LDMFDS R0!, R5-R8, R2 正确 ADD R3, R3, R7 不正确,ADD 指令不能访问存储器(9) LDR R11, R15,R8 ! 正确 (10) BXS R0 正确5、 何谓 ARM 指令的条件码?默认的条件码是什么?举例说明 ARM 指令的条件码对指令执行的影响。答:所谓的 ARM 指令的“条件执行”是指在指令码中含有本条指令的执行条件,9当 CPSR 中的条件码标志满足时,处理器执行本条指令,否则本条指令不执行。默认是无条件执行。比如执行指令“ANDEQ R2,R1,R3”时,如果 CPSR 中的 Z=1 时,执行R2=R1else a = b

37、 c; if(x = = y) (1) if(R0 R1)R0+;elseR1+;(2)if(R0 != 10)(2) LDR R0,xLDR R1,yLDR R2,aLDR R3,bLDR R4,cCMP R0,R1CMPEQ R2,R3,MULEQ R4,R4,#2ADD R4,R4 ,R3STR c,R410答:11、 下列代码段是实现开 IRQ 中断和关 IRQ 中断功能,试补齐空白处内容。12、 如果 ARM 处理器中各寄存器及存储单元参数如下图所示,试写出执行下列指令后,各寄存器及存储单元中内容变化情况。 STMIA R13!,R0-R3 LDMDB R13, R0-R3答 : 习

38、题 41. 什么是计算机语言?一般可以分为哪几种?各自的优缺点?答:计算机语言是计算机可以识别、理解的语言。计算机语言分为三类:机器语言,汇编语言和高级语言。机器语言(Machine Language)是由 0 和 1 二进制代码表示和存储的指令与数据。它的特点是能被机器直接识别与执行;程序所占内存空间较少。其缺点是难认、难记、难编、易错。汇编语言是一种面向物理层操作的计算机语言。不同的处理器类型,具有不同的汇编语言。使用汇编语言编写程序能够直接利用硬件系统的特性(如寄存器、标志、中断系统等) ,可直接对位、字节、字寄存器或存储单元、I/O 端口进行处理,同时也能直接使用 CPU 指令系统提供

39、的各种寻址方式,编制出高质量的程序,这样的程序不但占用内存空间少,而且执行速度快。 缺点:由于汇编语言不直接支持复杂的抽象数据类型,在描述目标系统模型时,需要程序员自己组织各种抽象数据类型的存储方式,使得汇编语言程序设计较高级语言困难的多,需要较多的软件开发时间,也增加了程序设计过程中出错的可能性,程序维护也麻烦。高级语言(High Level Language)是脱离具体机器(即独立于机器)的通用语言,不依赖于特定计算机的结构与指令系统。与目标系统的数学模型之间有着良好的对应关系,可在各种机器上通用,具有很好的通用性和可移植性。缺点:处理器是不能直接执行这种用高级语言编写的源程序,需要先将它

40、翻译成对应的目标程序(即机器语言程序) ,才能运行。2. 简述 ARM 汇编语言上机操作过程。答:设计、编辑汇编语言源程序;汇编、连接、下载到目标系统; MRS R0,CPSRBIC R1,R0 ,0x80MSR CPSR_c, R1 MRS R1,CPSRORR R1, R1,#0x80MSR CPSR_c, R1(1), R13 R0R13+4 R1R13+8 R2R13+12 R3(2), R0 R13,R1 R1+4;R1 R13,R1 R1+4;R2 R13,R1 R1+4;R3 R13,R1 R1+4;(1) LDR R0,xLDR R1,yLDR R2,bLDR R3,cCMP

41、R0,R1ADDEQ R4,R2,R3SUBNE R4,R2,R3STR a,R411调试运行;3. 简述编写一个汇编语言源程序的基本步骤。答: 分析目标系统,建立数学模型,确定算法 根据算法设计流程图 合理分配寄存器,存储空间和外设资源 根据流程图编写源程序 上机调试程序 形成文档4. 循环程序设计中,循环的基本结构有几种?其循环控制方法有几种?各自的应用特点?答:循环程序的基本结构: 初始化部分:建立循环初始值。 循环体:是循环程序的主体部分。 修改部分:为执行下一次循环而修改某些参数。 控制部分:通过判断循环结束条件是否成立,决定是否继续执行循环。 结束处理部分:对循环结束进行适当处理,

42、如存储结果和打印输出等。 循环程序设计中一个重要环节就是如何控制循环次数。循环控制方法: 用计数控制循环。特点:循环比较次数是已知的,因此可以用计数器控制循环。 用条件控制循环。有些情况无法确定循环次数,但循环结束的条件是已知的,这时可通过循环测试结束条件是否满足的方法,条件满足结束循环,否则继续循环。5. 汇编子程序传递参数有哪几种方式?答: 寄存器传递参数方式 存储区域传递参数方式 堆栈传递参数方式6. C 语言和 ARM 汇编语言进行程序编制时常用的开发方法有哪些?答:使用 C 语言和 ARM7 汇编语言进行程序编制时常用的开发方法:混合编程和交叉编程。7. 简述 APCS 规则。答:

43、寄存器使用规则。ARM 处理器寄存器组中的 R0-R11用来保存局部变量;R12-R15用于系统专用:R12 用于子程序内部调用的片段寄存器;R13 当前模式的堆栈指针;R14 链接寄存器,保存子程序的返回地址; R15 用作程序计数器。其中,由于 R4-R11用来保存局部变量,对于遵守 APCS 规则的函数,在进入该函数的时候,程序员必须注意保存R4-R11中会被函数使用的寄存器,当返回时,再返回它们的值。 堆栈使用规则。APCS 规则中的堆栈为 FD 类型,也就是满递减堆栈,并且堆栈的操作是 8 字节对齐的,所以需要在汇编程序中用伪指令 PRESERVE8 来告诉连接器,本程序使用的堆栈是

44、字节对齐的。 参数传递规则。ARM7 处理器寄存器组中R0-R3 用于程序间的参数传递,其中R0 传递第一个参数,R1 传递第二个参数,以此类推;如果参数数目超过 4 个,那么必须使用堆栈进行传递。8. 实现将某个寄存器中的字数据拆分成 4 组字节数据的功能。答:不妨设数据在 R0 中,拆成的数据存放在 R1R4 中,程序代码如下。MOV R1,R0AND R1,R1,#0xFF ;MOV R2,R0,LSR 0x08AND R2,R2,#0xFFMOV R3,R0,LSR #0x08AND R3,R3,#0xFFMOV R4,R0,LSR 0x08AND R4,R4,#0xFF程序执行完之后

45、,四组字节的数据存放在 R1R4 的低八位,高 24 为清零129. 实现统计任意字符串包含的字符个数的功能。 (约定:字符串以 0 为结束标志)答:10. 实现 10 个 64 位有符号数的相加运算。答:11. 实现如下功能:已知 BUF1 中有 N1 个按从小到大顺序排列的互不相等的字符号数,BUF2 中有 N2 个从小到大顺序排列的互不相等的字符号数,将 BUF1 和 BUF2 中的数合并到 BUF3 中,并按从小到大顺序排列且互不相等。LDR R0,string; 将一个字符串的地址放到 R0 中。MOV R1,0; 将字符串结束符放 R1 中MOV R3,0; 将统计长度的放入 R3

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

47、;BEQ next;LDR R4,R0, #-8;ADC R1,R1,R4;LDR R5,R0, #-12;ADD R2,R2,R5;SUB R0,R0,#8;SUB R3,R3,#1CLR C;next:目标达到,10 个数相加的结果高 32 位放在 R1 中,低 32 位放在 R2 中。13答:AREA COPY,CODE,READONLYENTRYCODE32startLDRB R2,=BUF1LDRB R3,=BUF2LDRB R4,=BUF3LDR R5,=N1LDR R6,=N2ADD R5,R5,R6MOV R1,#0BL LOOPstopMOV R0,#0x18LDR R1,=

48、0x20026SWI 0x123456LOOPCMP R5,R1BEQ stopLDRB R0,R2LDRB R6,R3CMP R0,R6BLS COPY1BHI COPY2COPY1LDRB R0,R2,#1STRB R0,R4,#1ADD R1,R1,#1CMP R0,#0BEQ LOOPCOPY2LDRB R0,R3,#1STRB R0,R3,#1ADD R1,R1,#1CMP R0,#0BEQ LOOPAREA COPYDATA,DATA,READWRITEBUF1 DCB “whos speaking“,0BUF2 DCB “this is “,0BUF3 DCB “A“,N1 DC

49、D 8N2 DCD 614习题 51、 什么是存储器映射?简述 LPC2000 系列处理器中各种资源是如何映射的?答:将物理存储器分配到逻辑地址的过程称为存储器映射。LPC2000 系列处理器中的存储器映射空间范围为:0x00000000-0xFFFFFFFF,起始地址依次为:FLASH 0x00000000,SRAM0x40000000,BOOTBLOCK0x7FFFE000,外部存储器0x80000000,VPB(低速外设地址)0xE0000000,AHB0xF0000000.2、 什么是重映射?试分析重映射的原理与实现机制。答:存储器重映射:将已经映射过的存储器再次映射的过程称为存储器重映射,它使同一物理存储单元映射多个不同的逻辑地址。原理:此时运用了异常向量表重映射技术,就

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报