版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式系统开发习题 11.什么是嵌入式系统?有何特点?答:嵌入式系统的概念有很多种,在嵌入式系统领域中比较认同的嵌入式系统的概念是:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统的特点: 嵌入式系统是将先进的计算机技术、半导体技术以及电子技术与各个行业的具体应用相结合的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。 系统内核小。由于嵌入式系统一般是应用于小型电子装置中,系统资源相对有限,所以内核较之传统的操作系统要小得多。 专用性强。 系统精简。 系统软
2、件( OS)要求具有高实时性。 嵌入式软件开发要走向标准化,需要使用多任务的操作系统。 嵌入式系统本身并不具备在其上进行进一步开发的能力。2.嵌入式系统可以分为几层?每一层各完成哪些功能?答:嵌入式系统由硬件层、中间层、软件层和功能层组成。硬件层:以嵌入式微处理器为核心,存储器用以存储数据和执行代码,相关的设备接口和 I/O 接口,这些组成了一个嵌入式系统的基础,实现逻辑运算,算术运算等。中间层: 将系统上层软件和底层硬件进行分离,封装成标准的接口,在上层软件开发人员无需知道底层硬件的具体情况,完成的任务是底层硬件的初始化、数据的输入/输出操作、硬件的配置等功能。软件层:主要由 RTOS、文件
3、系统、图形用户接口、网络系统和通用的组件模块组成,是软件开发的基础。功能层:用来完成被控对象的控制功能。3.嵌入式系统中硬件抽象层有什么特点?答:硬件抽象层是介于硬件层与软件层之间的中间层,它将系统上层软件与底层硬件分离开来,具有以下两个特点: 硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软件与硬件平台之间的接口,硬件抽象层需要为操作系统提供操作和控制具体硬件的方法。 操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。4.简述嵌入式处理器的硬件组成?答:随着集成电路集成度的不断提高,嵌入式系统板级的硬件电路模块也越来越多的集
4、成到芯片内部,目前处理器芯片内部的电路模块组成如下: 处理器内核,以 CPU 为核心,有的还包含 MMU (存储器管理单元)、 Cache(高速缓存)、 ICE (在线仿真)等电路模块。1 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 单片机,
7、ARM 处理器, MIPS 处理器, PowerPC 处理器, MC68000 处理器, X86 处理器等。MCS51 的特点是, 8 位 CPU ,片内振荡器,4KB ROM ,128KBRAM,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、单次处理数据的总长度; 数据通路速度,读取指令数据传输计算数据的速度越高,处理器性能越好。运算2速度,用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 口送往宿主机测试平台。举例,可以在程序中间插入函数,读出当前所有寄存器内容,发送至目标机系统,测试者可以根据这些数据了解系统执行情况。3习题 21.按照 ARM 处理器的命名规则,说明ARM7TDMI中 T 、 D、 M 、 I 的含义。答: T:支持 16 位的 Thumb 指令集; D :支持
14、JTAG 片上调试; M :支持长乘法操作 ( 64位结果)的 ARM 指令,包含快速乘法器;I :带有嵌入式追踪宏单元ETM(Embedded TraceMacro ),用来设置断点和观察点。2. 什么是哈佛结构?与普林斯顿结构有何区别?答:哈佛结构是一种将程序中指令和数据分开存储的存储器结构。即哈佛结构中程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。普林斯顿结构 (冯 诺伊曼结构) 是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。这便是。这便是两种结构的区别。3. 什么是 RSIC ?什么是
15、CSIC ?简述他们的特点与差别。答: RSIC 是精简指令集计算机, CISC 是复杂指令集计算机。两者的区别在于不同的 CPU 设计理念和方法。对于 CISC : 在 CSIC 结构的指令系统中,各种指令的使用频率相差悬殊。有 80% 的指令只在 20%的运行时间内才会用到。 CISC 结构指令系统的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。 在 CISC 结构指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术来提高系统的性能。对于 RISC :简化指令集,只保留常用的基本指令; 设计大量的通用存储器,减少访存的次数;
16、采用装载 /保存结构,支持流水线技术,使每个周期时间相等; 采用简单的指令格式、规整的指令字长和简单的寻址方式; 单机器周期指令,即大多数的指令都可以在一个机器周期内完成,并且允许处理器在同一时间内执行一系列的指令。4. ARM7 处理器是几级流水线?在 ARM7 处理器中, “ PC指向的是下一条要执行的指令 ”,这句话对吗?为什么?答: ARM7 处理器采用三级流水线。“ PC指向的是下一条要执行的指令”,这句话不对。在ARM 处理器中将PC 程序计数器定义到 R15 寄存器,无论处理器处于何种状态,PC 总是指向 “正在取值 ”指令的地址,一般来说,人们习惯性的约定将“正在执行的指令作为
17、参考点”,成为当前第一条指令,那么PC总是指向随后的第三条指令,或者说PC 总是指向当前正在执行的指令地址再加上2 条指令的地址,即指向正在执行指令的下下一条指令,而不是指向下一条要执行的指令。5. 简述 ARM 处理器中在线仿真器模块 EmbeddedICE-RT 的作用。答: ARM处理器中的在线仿真器模块EmbeddedICE-RT ,一般还带有嵌入式宏跟踪单元模块ETM ,实现ARM处理器的在线调试和运行过程的跟踪功能;并且具有诸多ICE 功能,例如实时寻址、断点、单步、对ARMCPU 的完全控制、对ASIC 系统其余部分的访问,以及对主机显示器外设访问、键盘输入和磁盘存储。6. AR
18、M 处理器的工作状态分为哪二种? ARM 处理器又是怎么定义和标志的?答: ARM 处理器的工作状态分为 ARM 状态和 Thumb 状态,这两种状态有程序状态字 CPSR 中 T 标志位确定,为 0 时处理器工作在 ARM 状态,为 1 时处理器工作在 Thumb 状4态。7. ARM7TDMI 支持哪几种指令集,各有什么特点?答: ARM7TDMI 处理器内核包含 2 套指令系统,分别为 ARM 指令集和 Thumb 指令集,两种指令集的特点是:ARM 指令集:处理器执行 32 位字对齐方式的 ARM 指令,每条 ARM 指令长度为 32 位,指令的功能强大。Thumb 指令集:处理器执行
19、 16 位字对齐方式的 Thumb 指令,每条 Thumb 指令长度为 16 位,是 ARM 指令功能的子集。8. ARM7 处理器有哪些工作模式?如何实现不同模式之间的切换?举例说明。答: ARM 处理器供支持7 种工作模式,分别为:用户模式( usr);快速中断模式 ( fiq );外部中断模式(irq );管理模式(svc);数据访问终止模式(abt);系统模式(sys);未定义指令中止模式 ( und)。在 7 中模式中,除用户模式外,其他的6 种模式称为特权模式,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。特权模式下通过修改当前程序状态寄存器CPSR 中控制位
20、 M4:0 的值,来改变处理器的运行模式。例如MSRCPSR_c, #( NoInt |SVC32Mode ) /从系统模式切换到管理模式MSRCPSR_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 、R1
21、4_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 个专用的寄存器, 可以缩短状态切换时需要的时间。 当 CPSR 中相应的 F 位清零, 快速中断被使能。10. 什么是中断延时?在实时系统中如何计算中断延时时间?答:中断延时是系统响应一个中断所
22、需要的时间,即从外部中断请求信号发出到执行对应的中断服务程序 ISR 的第 1 条指令所需要的时间。FIQ 的中断延时计算,当FIQ 使能时,最坏的延时包括:a) Tsyncmax:请求通过同步器的最长时间,为两个处理器周期。b)Tldm :最长执行时间,最长为20 个周期。c) Texc:数据中止异常进入时间,为三个周期。d) Tfiq : FIQ 进入时间,为两个周期总的延时可为 27 个周期。11.在内存的数据存储过程中,什么是“字对齐 ”和 “半字对齐 ”?答:在内存数据存储过程中,一般分为小端存储格式和大端存储格式。下面以小端存储格式为例来说明字对齐和半字对齐:在小端存储格式中,对于
23、地址为 A 的字单元,其中字节的低位字节到高位字节地址顺序为 A ,A+1 ,A+2 , A+3 ;对于地址为 A 的半字单元,其中字节的低位字节到高位字节地址顺序为 A ,A+1 。12.简述程序计数器(PC)在处理器工作中的作用。5答:在 ARM 处理器中将PC 程序计数器定义到R15 寄存器,无论处理器处于何种状态,PC 总是指向 “正在取值 ”指令的地址。13.简述 ARM 处理器中的返回链接寄存器(LR )在处理器工作中的作用。答:链接寄存器LR 用于保存子程序返回地址或者异常处理程序的返回地址,LR 寄存器一共有 6 个,其中子程序的返回地址使用一个R14,每种异常模式各自有一个专
24、用的LR 寄存器用于保存异常处理程序的返回地址,它们分别为R14_fiq 、 R14_svc 、 R14_abt 、R14_und、 R14_irq 。14. 分别简述 ARM 处理器中的 CPSR 、 SPSR 在处理器工作中的作用。答: ARM 内核包含1 个 CPSR 和 5 个仅供异常处理模式使用的SPSR。由于所有模式全部共享一个程序状态寄存器CPSR,因此处理器所有的状态全部都保存在 CPSR 中,也就是 ARM 内核是通过 CPSR 来监视和控制内部操作的。每种异常模式都有一个对应的程序状态保存寄存器SPSR,用于保存任务在异常发生之前的 CPSR 状态的当前值。15. 结合 C
25、PSR 的结构,说明程序状态字中各个bit 位的作用。3130292827876543210NZCV-IFTM4M3M2M1M0答:条件代码标志(共计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 的最低
26、 8 位为控制位,控制了处理器的工作方式。当发生异常时,这些位被硬件改变。当处理器处于一个特权模式时,可用软件操作这些位。它们分别是:中断禁止位包括I 和 F 位:当 I 位置位时, IRQ 中断被禁止;当 F 位置位时, FIQ 中断被禁止。T 位反映了处理器的当前状态:当位 T=1 时,处理器正在Thumb 状态下运行;当位 T=0 时,处理器正在ARM 状态下运行。模式位包括M4:0 共计 5bit ,这些位决定处理器的操作模式16. 简述 ARM7TDMI 内部有哪些寄存器及特点。答: ARM7 微处理器共有 37 个 32 位寄存器,其中 31 个为通用寄存器, 6 个为状态寄存器。
27、 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。特点:在 ARM 状态中, R0R7 是通用寄存器,是不分组寄存器;R8R14 ,SPSR
28、根据6模式进行分组的寄存器; R15 是程序计数器,不进行分组; CPSR 是状态寄存器,不进行分组。17. 什么是 ARM 处理器的异常? ARM 处理器中有哪几种异常?答:在 ARM 中,异常是一些事件,这些事件能导致正常的程序执行流程被暂时地停止,而进入到该事件对应的处理器异常模式并对该事件进行处理。ARM 中定义了复位、未定义指令、SWI(软中断)、预取指终止、预取数终止、irq 以及 fiq 等种异常,与之对应地ARM7 处理器有5 种异常模式。18. 分别简述 ARM7 的 IRQ 、 FIQ 异常处理过程,说明其异常向量地址。答: IRQ 异常的处理流程如下: 进入 IRQ 异常
29、模式。程序运行在用户模式下,当一个IRQ 异常中断发生时,内核切换到 “中断模式 ”,并自动的做如下处理。将异常处理程序的返回地址保存到异常模式下的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_ir
30、q 保存 IRQ 模式下的地址指针, R14_irq 保存了 “IRQ中断返回地址 +4”。 退出 IRQ 异常模式。中断服务程序执行完毕后,使用一条指令将返回地址送入PC,即可实现IRQ 中断返回,在返回过程中处理器会自动将SPSR_irq 中的内容复制到CPSR,恢复中断前的处理器状态。FIQ 异常进入与退出的流程与IRQ 类似,其异常入口地址是0x0000001C 。19. ARM7 处理器对哪些异常可以进行屏蔽?如何屏蔽或允许?答: FIQ 和 IRQ 可以被屏蔽。 将 CPSR 的标志位 I 和 F 分别置位对应着IRQ 和 FIQ 中断被禁止,清零这些位又可以将其使能。20. 说明
31、 CPSR 中 T 位的作用, ARM7 处理器如何切换状态?答: CPSR 中 T 标志位为0 时处理器工作在 ARM 状态,为 1 时处理器工作在 Thumb 状态。由于 ARM 采用字对齐或者半字对齐的存储模式,这意味着地址的最低一个比特位就不会在寻址过程中使用到。 故,使用地址的最低位进行区分,以何种模式取值和执行指令,当地址地位为 1 时,置 CPSR 的 T 位为 1,反之,置位为0。21. 大端存储模式和小端存储模式的含义是什么?画出在0x2000 单元中存储 0x87654321数据的大端存储模式和小端存储模式。答:大端存储模式:在大端存储格式中,对于地址为A 的字单元,其中字
32、节的低位字节到高位字节地址顺序为A+3 , A+2 , A+1 , A;对于地址为 A 的半字单元,其中字节的低位字节到高位字节地址顺序为A+1 , A 。即数据的低字节存放在高地址中的顺序进行存储。小端存储模式:在小端存储格式中,对于地址为A 的字单元,其中字节的低位字节到高位字节地址顺序为A , A+1 , A+2 , A+3 ;对于地址为 A 的半字单元,其中字节的低位字节到高位字节地址顺序为A , A+1 。即数据的高字节存放在高地址中的顺序进行存储。0x20030x210x20000x210x430x430x650x650x20000x870x20030x877上图中,左侧为大端存储
33、模式,右侧为小端存储模式。习题 31、 ARM7TDMI支持哪几种指令集,各有什么特点?答:支持 ARM 指令集和 Thumb 指令集,各自特点是 ARM 指令集的指令是32 位,执行效率高、功能全,每条指令可以根据条件执行,但是代码密度低。Thumb 指令集指令是 16 位,在功能上是ARM 指令集的子集,功能并没有降低。2、 ARM 指令的寻址方式有几种?并指出下列指令中的寻址方式。答: ARM 指令的寻址方式有 8 种,分别为立即寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址变址寻址、相对寻址、多寄存器寻址、堆栈寻址。 SUBR0, R1, R2寄存器寻址 LDRR0, R2寄存
34、器间接寻址 MVNR0, #0x0F2立即寻址 LDMIAR0, R1-R5多寄存器寻址 STRR2, R4, #0x02 ! 基址变址寻址 LDRR1, R2, R3基址变址寻址 MOVR1, R1, ROR #2寄存器移位寻址 LDRR1, R3, #0x04基址变址寻址3、 简述 ARM 指令集中第2 个操作数( operand2)的三种形式。答: 常数表达方式。该常数必须对应8 位位图,即常数是由一个8 位的常数循环右移偶数位得到。例如:MOVR2, #100; 寄存器方式。 Operand2 是 Rm 寄存器方式,在寄存器方式下操作数即位寄存器中的数值。例如: SUB R0 , R1
35、, R2; 寄存器移位方式。Rm ,shift表示将寄存器的移位结果作为操作数,但Rm 值保持不变。例如: MOV R0 ,R1, RRX ;将 R1 带扩展的循环右移 1 位,存入 R0 中。4、 指出下列指令是否正确,若不正确请说明原因。 MOVSR1, 101不正确,立即寻址方式应该是#101 MVNR1, #0x10F正确 STMDAR11, R2-R8!不正确,不能同时存储在R2 和 R8 中 ADDR0!, R2, #4正确 LDRR4, R5!不正确, LDR 是存储到单个寄存器的加载指令,而这个是两个存储器都进行存储,应该为LDRR4, R5 MRSPC, CPSR不正确 MR
36、S 是将 CPSR 传送到通用寄存器中,但这里的通用寄存器不包括R15,即 PC LDMFDSR0!, R5-R8, R2正确 ADDR3, R3, R7不正确, ADD 指令不能访问存储器(9)LDRR11, R15, R8 !正确(10) BXS R0 正确5、 何谓 ARM 指令的条件码?默认的条件码是什么?举例说明ARM 指令的条件码对指令执行的影响。答:所谓的ARM指令的 “条件执行 ”是指在指令码中含有本条指令的执行条件,当 CPSR 中的条件码标志满足时,处理器执行本条指令,否则本条指令不执行。默认是无条件执行。比如执行指令 “ ANDEQ R2 ,R1,R3”时,如果 CPSR
37、 中的 Z=1 时,执行 R2=R1&R3 ,8否则不执行该指令。6、 解释 “满堆栈 ”、 “空堆栈 ”、 “递增堆栈 ”和 “递减堆栈 ” ?ARM指令系统中是如何支持的?答:满堆栈:堆栈指针SP 指向最后压入的堆栈有效数据项。空堆栈:堆栈指针SP 指向下一个待压入数据的空位置。递增堆栈:向高地址方向生长。递减堆栈:向低地址方向生长。满递增:堆栈向上增长,SP 指向内含有效数据项的最高栈单元。指令如LDMFA 、STMFA 等;空递增:堆栈向上增长,SP 指向堆栈上的第一个空位置。指令如LDMEA 、 STMEA等;满递减:堆栈向下增长,SP 指向内含有效数据项的最低栈单元。指令如LDMF
38、D 、STMFD等;空递减:堆栈向下增长,SP 指向堆栈下的第一个空位置。指令如LDMED 、 STMED等。7、 试说明 MOV指令、 LDR 加载指令和LDR 伪指令三者的区别。答: MOV 指令是在寄存器间进行数据传送,影响标志位。LDR 指令是将存储器中的数据按给定地址加载到寄存器中,不影响标志位。LDR 伪指令是可以在一个立即数前面加等号,把一个地址写入某寄存器。8、 解释 B 指令、 BL 指令与 BX 指令的功能差别,并举例说明其使用方法。答: B 指令是分支指令, BL 指令是带链接的分支指令,BX 是带状态切换的分支指令。对于 B 指令“ B WAITA ”指跳转至标号WAI
39、TA 处开始执行, 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、 分析下列两段程序片断的功能,试用类C 语言写出其等价功能。程序片断 1:程序片断 2:CMPR0 , #10CMP
40、R0, R1ADDHIR0 , R0 , #1CMPNER1 , #20ADDLS R1 , R1 , #1ADDNER0 , R0 , R1答:( 1) if(R0 R1)( 2) if(R0 != 10)&(R1 != 20)R0+;RO = R0+R1;elseR1+;10、 使用 ARM 汇编指令的条件执行功能,试用汇编语言实现下列两条C 代码语句。 if(x = = y) if(x = = y) & ( a = = b)a = b + c;c = c * 2+b;elsea = b c;答:( 1) LDR R0,xLDRR1,yLDRR2,bLDRR3,cCMPR0,R1ADDEQ
41、R4,R2,R3SUBNER4,R2,R3( 2) LDR R0,x LDR R1,yLDRR2, aLDRR3, bLDRR4, cCMPR0 , R19 CMPEQ R2,R3, MULEQ R4, R4, #2 ADD R4 , R4, R311、 下列代码段是实现开IRQ 中断和关IRQ 中断功能,试补齐空白处内容。 MRSR0, CPSR MRSR1 ,CPSRBICR1,R0 , 0x80ORRR1, R1,#0x80MSRCPSR_c, R1MSRCPSR_c, R112、 如果 ARM 处理器中各寄存器及存储单元参数如下图所示,试写出执行下列指令后,各寄存器及存储单元中内容变化
42、情况。 STMIAR13!,R0-R3 LDMDBR13, R0-R3答:R13 R0(2), R0 R13,R1 R1+4;(1),R13+4 R1R1 R13,R1 R1+4;R13+8 R2R2 R13,R1 R1+4;R13+12 R3R3 R13,R1 R1+4;习题 41. 什么是计算机语言?一般可以分为哪几种?各自的优缺点?答:计算机语言是计算机可以识别、理解的语言。计算机语言分为三类:机器语言,汇编语言和高级语言。机器语言( Machine Language)是由 0 和 1 二进制代码表示和存储的指令与数据。它的特点是能被机器直接识别与执行;程序所占内存空间较少。其缺点是难认
43、、难记、难编、易错。汇编语言是一种面向物理层操作的计算机语言。不同的处理器类型,具有不同的汇编语言。使用汇编语言编写程序能够直接利用硬件系统的特性(如寄存器、标志、中断系统等),可直接对位、字节、字寄存器或存储单元、I/O 端口进行处理,同时也能直接使用 CPU 指令系统提供的各种寻址方式,编制出高质量的程序,这样的程序不但占用内存空间少,而且执行速度快。缺点:由于汇编语言不直接支持复杂的抽象数据类型,在描述目标系统模型时,需要程序员自己组织各种抽象数据类型的存储方式,使得汇编语言程序设计较高级语言困难的多,需要较多的软件开发时间,也增加了程序设计过程中出错的可能性,程序维护也麻烦。高级语言(
44、 High Level Language )是脱离具体机器(即独立于机器)的通用语言,不依赖于特定计算机的结构与指令系统。与目标系统的数学模型之间有着良好的对应关系,可在各种机器上通用,具有很好的通用性和可移植性。缺点:处理器是不能直接执行这种用高级语言编写的源程序,需要先将它翻译成对应的目标程序(即机器语言程序),才能运行。2.简述 ARM 汇编语言上机操作过程。答:设计、编辑汇编语言源程序;汇编、连接、下载到目标系统;调试运行;3.简述编写一个汇编语言源程序的基本步骤。答: 分析目标系统,建立数学模型,确定算法10 根据算法设计流程图 合理分配寄存器,存储空间和外设资源 根据流程图编写源程
45、序 上机调试程序 形成文档4. 循环程序设计中,循环的基本结构有几种?其循环控制方法有几种?各自的应用特点?答:循环程序的基本结构: 初始化部分:建立循环初始值。 循环体:是循环程序的主体部分。 修改部分:为执行下一次循环而修改某些参数。 控制部分:通过判断循环结束条件是否成立,决定是否继续执行循环。 结束处理部分:对循环结束进行适当处理,如存储结果和打印输出等。循环程序设计中一个重要环节就是如何控制循环次数。循环控制方法: 用计数控制循环。特点:循环比较次数是已知的,因此可以用计数器控制循环。 用条件控制循环。有些情况无法确定循环次数,但循环结束的条件是已知的,这时可通过循环测试结束条件是否
46、满足的方法,条件满足结束循环,否则继续循环。5. 汇编子程序传递参数有哪几种方式?答: 寄存器传递参数方式 存储区域传递参数方式 堆栈传递参数方式6. C 语言和 ARM 汇编语言进行程序编制时常用的开发方法有哪些?答:使用 C 语言和 ARM7 汇编语言进行程序编制时常用的开发方法:混合编程和交叉编程。7. 简述 APCS 规则。答: 寄存器使用规则。 ARM 处理器寄存器组中的 R0-R11 用来保存局部变量;R12-R15 用于系统专用:R12 用于子程序内部调用的片段寄存器;R13 当前模式的堆栈指针; R14 链接寄存器,保存子程序的返回地址;R15 用作程序计数器。其中,由于R4-
47、R11用来保存局部变量,对于遵守APCS 规则的函数,在进入该函数的时候,程序员必须注意保存 R4-R11 中会被函数使用的寄存器,当返回时,再返回它们的值。 堆栈使用规则。APCS规则中的堆栈为FD 类型,也就是满递减堆栈,并且堆栈的操作是 8 字节对齐的,所以需要在汇编程序中用伪指令PRESERVE8来告诉连接器,本程序使用的堆栈是字节对齐的。 参数传递规则。ARM7 处理器寄存器组中R0-R3 用于程序间的参数传递,其中R0传递第一个参数,R1 传递第二个参数,以此类推;如果参数数目超过4 个,那么必须使用堆栈进行传递。8.实现将某个寄存器中的字数据拆分成4 组字节数据的功能。答:不妨设
48、数据在R0 中,拆成的数据存放在R1R4 中,程序代码如下。MOVANDMOVANDMOVANDMOVANDR1,R0R1,R1,#0xFF ;R2,R0,LSR 0x08R2,R2,#0xFFR3,R0,LSR #0x08R3,R3,#0xFFR4,R0,LSR 0x08R4,R4,#0xFF程序执行完之后,四组字节的数据存放11在R1R4 的低八位,高24 为清零9. 实现统计任意字符串包含的字符个数的功能。(约定:字符串以0 为结束标志)答:R0,string;将一个字符串的地址放到R0 中。LDRMOVR1,0;将字符串结束符放R1中MOVR3,0;将统计长度的放入R3中LDRR2,R0;将字符串的第一个字符放入R2count:CMPR2,R1;将 R2 中内容与结束符0 进行比较BEQnext;如果相
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 古文增广贤文逐句注释与译文
- 孕期并发症预警及处理方案
- 三年级语文基础训练试题汇编
- 高考语文主观题答题技巧与范例
- 精神卫生法考试习题集锦
- 互联网公司市场营销策划书模板
- 中小企业网络信息安全保障方案
- 10kv电力设备迁改安全施工方案
- 多语言翻译公司运营管理方案
- 颈椎病的康复训练技巧
- T-CICC 31003-2025 手工兵棋基本要素设计规范
- 2025年人工智能应用工程师考试试卷及答案
- 牧原饲料厂安全培训课件
- 肾病患者的饮食指导课件
- 输氢管道承压设备技术规范 第3部分:容器与组合装置
- DB42∕T 1586-2020 牛沙门氏菌病诊断技术规程
- 2025年及未来5年中国杂粮行业市场调查研究及投资前景预测报告
- 《环境法(第七版)》课件全套 周珂
- 关于项目物业退场的告知函(致街道等部门)
- 2025年设备维修考试题库
- 档案开放利用与隐私保护-洞察及研究
评论
0/150
提交评论