收藏 分销(赏)

2024年西安邮电大学嵌入式课后答案.doc

上传人:快乐****生活 文档编号:8187317 上传时间:2025-02-07 格式:DOC 页数:37 大小:149.04KB 下载积分:12 金币
下载 相关 举报
2024年西安邮电大学嵌入式课后答案.doc_第1页
第1页 / 共37页
2024年西安邮电大学嵌入式课后答案.doc_第2页
第2页 / 共37页


点击查看更多>>
资源描述
嵌入式系统开发 习题1 1.什么是嵌入式系统?有何特点? 答:嵌入式系统的概念有诸多个,在嵌入式系统领域中比较认同的嵌入式系统的概念是:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适合用于应用系统对功效、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 嵌入式系统的特点: ⑴ 嵌入式系统是将先进的计算机技术、半导体技术以及电子技术与各个行业的详细应用相结合的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不停创新的知识集成系统。 ⑵ 系统内核小。因为嵌入式系统一般是应用于小型电子装置中,系统资源相对有限,因此内核较之老式的操作系统要小得多。 ⑶ 专用性强。 ⑷ 系统精简。 ⑸ 系统软件(OS)要求具备高实时性。 ⑹ 嵌入式软件开发要走向标准化,需要使用多任务的操作系统。 ⑺ 嵌入式系统自身并不具备在其上进行深入开发的能力。 2.嵌入式系统能够分为几层?每一层各完成哪些功效? 答:嵌入式系统由硬件层、中间层、软件层和功效层组成。 硬件层:以嵌入式微处理器为核心,存储器用以存储数据和执行代码,有关的设备接口和I/O接口,这些组成了一个嵌入式系统的基础,实现逻辑运算,算术运算等。 中间层:将系统上层软件和底层硬件进行分离,封装成标准的接口,在上层软件开发人员无需懂得底层硬件的详细情况,完成的任务是底层硬件的初始化、数据的输入/输出操作、硬件的配备等功效。 软件层:重要由RTOS、文献系统、图形用户接口、网络系统和通用的组件模块组成,是软件开发的基础。 功效层:用来完成被控对象的控制功效。 3.嵌入式系统中硬件抽象层有什么特点? 答:硬件抽象层是介于硬件层与软件层之间的中间层,它将系统上层软件与底层硬件分离开来,具备如下两个特点: ⑴ 硬件有关性:因为嵌入式实时系统的硬件环境具备应用有关性,而作为上层软件与硬件平台之间的接口,硬件抽象层需要为操作系统提供操作和控制详细硬件的措施。 ⑵ 操作系统有关性:不一样的操作系统具备各自的软件层次结构,因此,不一样的操作系统具备特定的硬件接口形式。 4.简述嵌入式处理器的硬件组成? 答:伴随集成电路集成度的不停提升,嵌入式系统板级的硬件电路模块也越来越多的集成到芯片内部,目前处理器芯片内部的电路模块组成如下: ⑴ 处理器内核,以CPU为核心,有的还包括MMU(存储器管理单元)、Cache(高速缓存)、ICE(在线仿真)等电路模块。 ⑵ DSP/协处理器,对于多媒体处理的处理器,内部一般有DSP(数字信号处理)、浮点运算、图像加速等协处理器。 ⑶ RAM/ROM,在单片机处理器中,处理器芯片内部一般集成了ROM(只读存储器)和RAM(可读可写存储器)。 ⑷ 处理器内部控制电路,如PLL(锁相环)、复位、DMA(直接存储器存取)、中断控制器、低功耗控制、看门狗等电路。 ⑸ 芯片内部接口电路,如GPIO(通用输入、输出)接口、I2C(双向两线制的串行总线)接口、IIS(音频总线)接口、SPI(串行外设接口)、USB(通用串行总线)接口、LCD(液晶显示)接口、ADC/DAC(模数/数模转换)、UART(通用异步收发器)、IrDA(红外接口)、CAN(控制器局域网络)总线接口、以太网接口、Timer/RTC(定期器/计数器)接口等电路模块。 5.嵌入式处理器分那几类?它们有何特点? 答:⑴嵌入式微处理器。特点:处理能力强,具备较高的性能,价格也对应较高。 ⑵ 嵌入式微控制器。特点:重要用于嵌入式体统工业的主流,跟嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提升。并且价格低廉,功效优良,拥有的品种和数量最多。 ⑶ 嵌入式DSP处理器。特点:DSP处理器是专门用于信号处理方面的处理器,在系统结构和指令算法方面进行了特殊设计,具备很高的编译效率和指令的执行速度。 ⑷ SoC片上系统。特点:①实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块 ②具备极高的综合性,在一个硅片内部利用VHDL等硬件描述语言,实现一个复杂的系统 ③绝大部分系统构件在系统内部,系统简洁,减少了系统的体积和功耗,提升了系统的可靠性跟设计生产效率。 6.分析目前市场上常用的几个嵌入式处理器,阐明不一样嵌入式处理器的各自特点? 答:目前市场上常用的嵌入式处理器有MCS51单片机,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位的处理器,简化硬件设计,强调软硬件协同提升性能。 PowerPC处理器特点,具备优秀的性能,低能量消耗,低散热量。 MC68000处理器,是一个16/32位的CISC处理器,采取32位总线和存储器,这个结构对之后的32为产品保持兼容。 X86处理器的特点,可变指令长度的CISC处理器,允许不对齐访问存储器。 7.举例阐明嵌入式处理器的性能指标?并分析对嵌入式系统的影响? 答:性能指标重要有主频,处理器字长,数据通路速度,运算速度,高速缓存和处理器的系统架构。主频,执行每条指令的时钟周期数一定,主频越高单位时间内执行的指令越多。处理器字长,处理器内部数据运算的基本位数,反应的是计算精度,以及单次处理数据的总长度;数据通路速度,读取指令数据传输计算数据的速度越高,处理器性能越好。运算速度,用MIPS(每秒执行多少百万条指令)表示,MIPS越大,阐明运算速度越快;高速缓存,突破主存访问速度的瓶颈,提升处理器的综合性能。 8.简述你对嵌入式操作系统的认识,分析嵌入式操作系统有哪些特点? 答:嵌入式操作系统EOS是一个支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括软硬件系统)极为重要的组成部分,一般包括与硬件有关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。 EOS是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功效,如任务调度、同时机制、中断处理、文献功效等之外,尚有如下特点: ⑴ 可装卸性,开放性、可伸缩性的体系结构。 ⑵ 强实时性,EOS实时性一般较强,可用于各种控制系统中。 ⑶ 统一的接口,提供各种设备驱动接口。 ⑷ 操作以便、简单,提供友好的图形GUI,追求易学易用。 ⑸ 提供强大的网络功效,支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。 ⑹ 强稳定性,弱交互性。 ⑺ 固化代码。 ⑻ 愈加好地硬件适应性,也就是良好的移植性。 9.试分析实时操作系统中可抢占型和不可抢占型有何区分?并举例阐明。 答:实时操作系统可分为可抢占型和不可抢占型两类。对于基于优先级的系统而言,可抢占型的实时操作系统是指内核能够抢占正在运行任务的CPU使用权并将使用权交给进入就绪态的优先级更高的任务,是内核抢了CPU让别的任务运行。不可抢占型实时操作系统使用某种算法以决定让某个任务运行后,就把CPU的控制权完全交给该任务,直到它积极将CPU控制权还回来。 例如嵌入式操作系统uC/OS,能够依照优先级进行抢占使用CPU,优先级高的任务能够比优先级低的任务优先使用CPU。 10.简述嵌入式系统的开发过程? 答:嵌入式系统的开发过程能够分为需求分析、建立开发环境、体系结构设计、软件/硬件设计、系统集成和系统优化与测试6个阶段。假如设计的流程是从需求分析开始,然后是建立开发环境,依次进行,最后是系统优化与测试,那么就叫做自上而下的设计流程;反之就叫做自下而上的设计流程。所有的嵌入式系统设计不可防止的设计这六个阶段,更重要的是找到一个好的设计措施,目前一个比很好的设计措施是采取计算机辅助设计工具。 11. 简述在线仿真器ICE和在线调试器ICD有何区分? 答:在线仿真器ICE是一个模拟CPU的设备,能执行CPU的所有动作。采取该方式调试时,利用仿真头替代目标板上的CPU,能够完全仿真CPU的行为。 在线调试器ICD是将CPU的调试功效的引脚引出来,让外部的硬件直接连接到这些引脚上去监控整个CPU的动作。 12. 试分析嵌入式系统测试中的纯软件测试过程,举例阐明实现措施。 答:纯软件测试过程是指用工具采取软件打点技术,在被测试代码中加入某些函数,这些函数用来完成数据的生成,并将数据送往目标机系统的共享内存中,同时,在目标机系统中运行一个与处理任务,用于完成这些数据的预处理,然后将处理过的数据通过目标机的串口,网口或者USB口送往宿主机测试平台。举例,能够在程序中间插入函数,读出目前所有存储器内容,发送至目标机系统,测试者能够依照这些数据了解系统执行情况。 习题2 1. 按照ARM处理器的命名规则,阐明ARM7TDMI中T、D、M、I的含义。 答:T:支持16位的Thumb指令集;D:支持JTAG片上调试;M:支持长乘法操作(64位成果)的ARM指令,包括迅速乘法器;I:带有嵌入式追踪宏单元ETM(Embedded Trace Macro),用来设置断点和观测点。 2. 什么是哈佛结构?与普林斯顿结构有何区分? 答:哈佛结构是一个将程序中指令和数据分开存储的存储器结构。即哈佛结构中程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。 普林斯顿结构(冯·诺伊曼结构)是一个将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不一样物理位置。这便是。这便是两种结构的区分。 3. 什么是RSIC?什么是CSIC?简述他们的特点与差异。 答:RSIC是精简指令集计算机,CISC是复杂指令集计算机。二者的区分在于不一样的CPU设计理念和措施。 对于CISC:⑴ 在CSIC结构的指令系统中,各种指令的使用频率相差悬殊。有80%的指令只在20%的运行时间内才会用到。 ⑵ CISC结构指令系统的复杂性带来了计算机体系结构的复杂性,这不但增加了研制时间和成本,并且还轻易导致设计错误。 ⑶ 在CISC结构指令系统中,因为各条指令的功效不均衡性,不利于采取先进的计算机体系结构技术来提升系统的性能。 对于RISC:⑴ 简化指令集,只保存常用的基本指令; ⑵ 设计大量的通用存储器,减少访存的次数; ⑶ 采取装载/保存结构,支持流水线技术,使每个周期时间相等; ⑷ 采取简单的指令格式、规整的指令字长和简单的寻址方式; ⑸ 单机器周期指令,即大多数的指令都能够在一个机器周期内完成,并且允许处理器在同一时间内执行一系列的指令。 4. ARM7处理器是几级流水线?在ARM7处理器中,“PC指向的是下一条要执行的指令”,这句话对吗?为何? 答:ARM7处理器采取三级流水线。 “PC指向的是下一条要执行的指令”,这句话不对。在ARM处理器中将PC程序计数器定义到R15存储器,无论处理器处在何种状态,PC总是指向“正在取值”指令的地址,一般来说,人们习惯性的约定将“正在执行的指令作为参考点”,成为目前第一条指令,那么PC总是指向随即的第三条指令,或者说PC总是指向目前正在执行的指令地址再加上2条指令的地址,即指向正在执行指令的下下一条指令,而不是指向下一条要执行的指令。 5. 简述ARM处理器中在线仿真器模块EmbeddedICE-RT的作用。 答:ARM处理器中的在线仿真器模块EmbeddedICE-RT,一般还带有嵌入式宏跟踪单元模块ETM,实现ARM处理器的在线调试和运行过程的跟踪功效;并且具备诸多ICE功效,例如实时寻址、断点、单步、对ARM CPU的完全控制、对ASIC系统其他部分的访问,以及对主机显示器外设访问、键盘输入和磁盘存储。 6. ARM处理器的工作状态分为哪二种?ARM处理器又是怎么定义和标志的? 答:ARM处理器的工作状态分为ARM状态和Thumb状态,这两种状态有程序状态字CPSR中T标志位确定,为0时处理器工作在ARM状态,为1时处理器工作在Thumb状态。 7. ARM7TDMI支持哪几个指令集,各有什么特点? 答:ARM7TDMI处理器内核包括2套指令系统,分别为ARM指令集和Thumb指令集,两种指令集的特点是: ARM指令集:处理器执行32位字对齐方式的ARM指令,每条ARM指令长度为32位,指令的功效强大。 Thumb指令集:处理器执行16位字对齐方式的Thumb指令,每条Thumb指令长度为16位,是ARM指令功效的子集。 8. ARM7处理器有哪些工作模式?怎样实现不一样模式之间的切换?举例阐明。 答:ARM处理器供支持7种工作模式,分别为:用户模式(usr);迅速中断模式(fiq);外部中断模式(irq);管理模式(svc);数据访问终止模式(abt);系统模式(sys);未定义指令中断模式(und)。在7中模式中,除用户模式外,其他的6种模式称为特权模式,特权模式能够自由的切换处理器模式,而用户模式不能直接切换到别的模式。特权模式下通过修改目前途序状态存储器CPSR中控制位M[4:0]的值,来变化处理器的运行模式。 例如 MSR CPSR_c,#(NoInt |SVC32Mode)//从系统模式切换到管理模式 MSR CPSR_c,#(NoInt |SYS32Mode)//从管理模式切换到系统模式 9. 描述ARM7处理器的内部存储器结构,并分别阐明迅速中断FIQ有何特点? 答:ARM7微处理器共有37个32位存储器,其中31个为通用存储器,6个为状态存储器。37个存储器定义如下: ⑴ 31个通用存储器:R0~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。 迅速中断FIQ,适合用于对一个突发事件的迅速响应,在ARM状态中,快中断有8个专用的存储器,能够缩短状态切换时需要的时间。当CPSR中对应的F位清零,迅速中断被使能。 10. 什么是中断延时?在实时系统中怎样计算中断延时时间? 答:中断延时是系统响应一个中断所需要的时间,即从外部中断祈求信号发出到执行对应的中断服务程序ISR的第1条指令所需要的时间。 FIQ的中断延时计算,当FIQ使能时,最坏的延时包括: a) Tsyncmax:祈求通过同时器的最长时间,为两个处理器周期。 b) Tldm:最长执行时间,最长为20个周期。 c) Texc:数据中断异常进入时间,为三个周期。 d) Tfiq:FIQ进入时间,为两个周期 总的延时可为27个周期。 11. 在内存的数据存储过程中,什么是“字对齐”和“半字对齐”? 答:在内存数据存储过程中,一般分为小端存储格式和大端存储格式。下面以小端存储格式为例来阐明字对齐和半字对齐: 在小端存储格式中,对于地址为A的字单元,其中字节的低位字节到高位字节地址次序为A ,A+1 ,A+2,A+3;对于地址为A的半字单元,其中字节的低位字节到高位字节地址次序为A ,A+1。 12. 简述程序计数器(PC)在处理器工作中的作用。 答:在ARM处理器中将PC程序计数器定义到R15存储器,无论处理器处在何种状态,PC总是指向“正在取值”指令的地址。 13. 简述ARM处理器中的返回链接存储器(LR)在处理器工作中的作用。 答:链接存储器LR用于保存子程序返回地址或者异常处理程序的返回地址,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来监视和控制内部操作的。 每种异常模式都有一个对应的程序状态保存存储器SPSR,用于保存任务在异常发生之前的CPSR状态的目前值。 15. 结合CPSR的结构,阐明程序状态字中各个bit位的作用。 答:⑴条件代码标志(共计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位为控制位,控制了处理器的工作方式。当发生异常时,这些位被硬件变化。当处理器处在一个特权模式时,可用软件操作这些位。它们分别是: 中断严禁位包括I和F位: 当I位置位时,IRQ中断被严禁; 当F位置位时,FIQ中断被严禁。 T位反应了处理器的目前状态: 当位T=1时,处理器正在Thumb状态下运行; 当位T=0时,处理器正在ARM状态下运行。 模式位包括M[4:0]共计5bit,这些位决定处理器的操作模式 16. 简述ARM7TDMI内部有哪些存储器及特点。 答:ARM7微处理器共有37个32位存储器,其中31个为通用存储器,6个为状态存储器。37个存储器定义如下: ⑴ 31个通用存储器:R0~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。 特点:在ARM状态中,R0~R7是通用存储器,是不分组存储器;R8~R14,SPSR依照模式进行分组的存储器;R15是程序计数器,不进行分组;CPSR是状态存储器,不进行分组。 17. 什么是ARM处理器的异常?ARM处理器中有哪几个异常? 答:在ARM中,异常是某些事件,这些事件能导致正常的程序执行流程被暂时地停止,而进入到该事件对应的处理器异常模式并对该事件进行处理。 ARM中定义了复位、未定义指令、SWI(软中断)、预取指终止、预取数终止、irq以及fiq等7种异常,与之对应地ARM7处理器有5种异常模式。 18. 分别简述ARM7的IRQ、FIQ异常处理过程,阐明其异常向量地址。 答:IRQ异常的处理流程如下: ⑴ 进入IRQ异常模式。程序运行在用户模式下,当一个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_irq保存IRQ模式下的地址指针,R14_irq保存了“IRQ中断返回地址+4”。 ⑵ 退出IRQ异常模式。中断服务程序执行完成后,使用一条指令将返回地址送入PC,即可实现IRQ中断返回,在返回过程中处理器会自动将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采取字对齐或者半字对齐的存储模式,这意味着地址的最低一个比特位就不会在寻址过程中使用到。故,使用地址的最低位进行辨别,以何种模式取值和执行指令,本地址地位为1时,置CPSR的T位为1,反之,置位为0。 21. 大端存储模式和小端存储模式的含义是什么?画出在0x单元中存储0x87654321数据的大端存储模式和小端存储模式。 答:大端存储模式:在大端存储格式中,对于地址为A的字单元,其中字节的低位字节到高位字节地址次序为A+3,A+2,A+1,A;对于地址为A的半字单元,其中字节的低位字节到高位字节地址次序为A+1,A。即数据的低字节存储在高地址中的次序进行存储。 小端存储模式:在小端存储格式中,对于地址为A的字单元,其中字节的低位字节到高位字节地址次序为A ,A+1 ,A+2,A+3;对于地址为A的半字单元,其中字节的低位字节到高位字节地址次序为A ,A+1。即数据的高字节存储在高地址中的次序进行存储。 0x21 0x43 0x65 0x87 0x21 0x43 0x65 0x87 0x 0x 0x 0x 上图中,左侧为大端存储模式,右侧为小端存储模式。 习题3 1、 ARM7TDMI支持哪几个指令集,各有什么特点? 答:支持ARM指令集和Thumb指令集,各自特点是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, [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值保持不变。例如: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传送到通用存储器中,但这里的通用存储器不包括R15,即PC ⑺ LDMFDS R0!, { R5-R8, R2} 正确 ⑻ ADD R3, [R3], R7 不正确,ADD指令不能访问存储器 (9) LDR R11, [R15,R8] ! 正确 (10) BXS R0 正确 5、 何谓ARM指令的条件码?默认的条件码是什么?举例阐明ARM指令的条件码对指令执行的影响。 答:所谓的ARM指令的“条件执行”是指在指令码中含有本条指令的执行条件,当CPSR中的条件码标志满足时,处理器执行本条指令,否则本条指令不执行。默认是无条件执行。 例如执行指令“ANDEQ R2,R1,R3”时,假如CPSR中的Z=1时,执行R2=R1&R3,否则不执行该指令。 6、 解释“满堆栈”、“空堆栈”、“递增堆栈”和“递减堆栈”? ARM指令系统中是怎样支持的? 答:满堆栈:堆栈指针SP指向最后压入的堆栈有效数据项。 空堆栈:堆栈指针SP指向下一个待压入数据的空位置。 递增堆栈:向高地址方向生长。 递减堆栈:向低地址方向生长。 ⑴满递增:堆栈向上增加,SP指向内含有效数据项的最高栈单元。指令如LDMFA、STMFA等; ⑵空递增:堆栈向上增加,SP指向堆栈上的第一个空位置。指令如LDMEA、STMEA等; ⑶满递减:堆栈向下增加,SP指向内含有效数据项的最低栈单元。指令如LDMFD、STMFD等; ⑷空递减:堆栈向下增加,SP指向堆栈下的第一个空位置。指令如LDMED、STMED等。 7、 试阐明MOV指令、LDR加载指令和LDR伪指令三者的区分。 答:MOV指令是在存储器间进行数据传送,影响标志位。 LDR指令是将存储器中的数据按给定地址加载到存储器中,不影响标志位。 LDR伪指令是能够在一个立即数前面加等号,把一个地址写入某存储器。 8、 解释B指令、BL指令与BX指令的功效差异,并举例阐明其使用措施。 答:B指令是分支指令,BL指令是带链接的分支指令,BX是带状态切换的分支指令。对于B指令“B WAITA”指跳转至标号WAITA处开始执行,B指令的跳转范围为±32M,对于BL指令,实现程序跳转,并保持PC到链存储器LR中,跳转范围±32M,举例“BL DELAY”完成的跳转至标号DELAY处执行,并把PC-4存入LR。BX指令,带状态切换的跳转,例如“BX R0”表示跳转R0指定的地址开始执行,并查看R0[0]位的值,假如是1,对CPSR的T位置位,解释目标程序为Thumb指令,假如是0,对CPSR的T位清零,解释目标程序为ARM指令。 9、 分析下列两段程序片断的功效,试用类C语言写出其等价功效。 程序片断2: CMP R0 , #10 CMPNE R1 , #20 ADDNE R0 , R0 , R1 (2)if((R0 != 10)&&(R1 != 20)) RO = R0+R1; (1) if(R0 > R1) R0++; else R1++; 答: 10、 使用ARM汇编指令的条件执行功效,试用汇编语言实现下列两条C代码语句。 ⑴ if(x = = y) a = b + c; else a = b – c; ⑵ if(x = = y) && ( a = = b) c = c * 2+b; (2) LDR R0,x LDR R1,y LDR R2,a LDR R3,b LDR R4,c CMP R0,R1 CMPEQ R2,R3, MULEQ R4,R4,#2 ADD R4,R4,R3 STR c,R4 (1) LDR R0,x LDR R1,y LDR R2,b LDR R3,c CMP R0,R1 ADDEQ R4,R2,R3 SUBNE R4,R2,R3 STR a,R4 答: 11、 下列代码段是实现开IRQ中断和关IRQ中断功效,试补齐空白处内容。 ⑵ MRS R1,CPSR ORR R1, R1,#0x80 MSR CPSR_c, R1 ⑴ MRS R0,CPSR BIC R1,R0,0x80 MSR CPSR_c, R1 12、 假如ARM处理器中各存储器及存储单元参数如下图所示,试写出执行下列指令后,各存储器及存储单元中内容变化情况。 ⑴ STMIA R13!,{R0-R3} ⑵LDMDB R13, { R0-R3} (2), R0←[R13],R1←R1+4; R1←[R13],R1←R1+4; R2←[R13],R1←R1+4; R3←[R13],R1←R1+4; (1), [R13]←R0 [R13+4]←R1 [R13+8]←R2 [R13+12]←R3 答: 习题4 1. 什么是计算机语言?一般能够分为哪几个?各自的优缺陷? 答:计算机语言是计算机能够识别、了解的语言。计算机语言分为三类:机器语言,汇编语言和高级语言。 机器语言(Machine Language)是由0和1二进制代码表示和存储的指令与数据。它的特点是能被机器直接识别与执行;程序所占内存空间较少。其缺陷是难认、难记、难编、易错。 汇编语言是一个面对物理层操作的计算机语言。不一样的处理器类型,具备不一样的汇编语言。使用汇编语言编写程序能够直接利用硬件系统的特性(如存储器、标志、中断系统等),可直接对位、字节、字存储器或存储单元、I/O端口进行处理,同时也能直接使用CPU指令系统提供的各种寻址方式,编制出高质量的程序,这么的程序不但占用内存空间少,并且执行速度快。 缺陷:因为汇编语言不直接支持复杂的抽象数据类型,在描述目标系统模型时,需要程序员自己组织各种抽象数据类型的存储方式,使得汇编语言程序设计较高级语言困难的多,需要较多的软件开发时间,也增加了程序设计过程中犯错的也许性,程序维护也麻烦。 高级语言(High Level Language)是脱离详细机器(即独立于机器)的通用语言,不依赖于特定计算机的结构与指令系统。与目标系统的数学模型之间有着良好的对应关系,可在各种机器上通用,具备很好的通用性和可移植性。缺陷:处理器是不能直接执行这种用高级语言编写的源程序,需要先将它翻译成对应的目标程序(即机器语言程序),才能运行。 2. 简述ARM汇编语言上机操作过程。 答:⑴设计、编辑汇编语言源程序; ⑵汇编、连接、下载到目标系统; ⑶调试运行; 3. 简述编写一个汇编语言源程序的基本步骤。 答:⑴ 分析目标系统,建立数学模型,确定算法 ⑵ 依照算法设计流程图 ⑶ 合理分派存储器,存储空间和外设资源 ⑷ 依照流程图编写源程序 ⑸ 上机调试程序 ⑹ 形成文档 4. 循环程序设计中,循环的基本结构有几个?其循环控制措施有几个?各自的应用特点? 答:循环程序的基本结构: ⑴ 初始化部分:建立循环初始值。 ⑵ 循环体:是循环程序的主体部分。 ⑶ 修改部分:为执行下一次循环而修改某些参数。 ⑷ 控制部分:通过判断循环结束条件是否成立,决定是否继续执行循环。 ⑸ 结束处理部分:对循环结束进行适当处理,如存储成果和打印输出等。 循环程序设计中一个重要步骤就是怎样控制循环次数。循环控制措施:⑴ 用计数控制循环。特点:循环比较次数是已知的,因此能够用计数器控制循环。 ⑵ 用条件控制循环。有些情况无法确定循环次数,但循环结束的条件是已知的,这时可通过循环测试结束条件是否满足的措施,条件满足结束循环,否则继续循环。 5. 汇编子程序传递参数有哪几个方式? 答:⑴ 存储器传递参数方式 ⑵ 存储区域传递参数方式 ⑶ 堆栈传递参数方式 6. C语言和ARM汇编语言进行程序编制时常用的开发措施有哪些? 答:使用C语言和ARM7汇编语言进行程序编制时常用的开发措施:混合编程和交叉编程。 7. 简述APCS规则。 答:⑴ 存储器使用规则。ARM处理器存储器组中的{R0-R11}用来保存局部变量;{R12-R15}用于系统专用:R12用于子程序内部调用的片段存储器;R13目前模式的堆栈指针;R14链接存储器,保存子程序的返回地址;R15用作程序计数器。其中,因为{R4-R11}用来保存局部变量,对于遵守APCS规则的函数,在进入该函数的时候,程序员必须注意保存{R4-R11}中会被函数使用的存储器,当返回时,再返回它们的值。 ⑵ 堆栈使用规则。APCS规则中的堆栈为FD类型,也就是满递减堆栈,并且堆栈的操作是8字节对齐的,因此需要在汇编程序中用伪指令PRESERVE8来告诉连接器,本程序使用的堆栈是字节对齐的。 ⑶ 参数传递规则。ARM7处理器存储器组中{R0-R3}用于程序间的参数传递,其中R0传递第一个参数,R1传递第二个参数,以此类推;假如参数数目超出4个,那么必须使用堆栈进行传递。 8. 实现将某个存储器中的字数据拆提成4组字节数据的功效。 答:不妨设数据在R0中,拆成的数据存储在R1~R4中,程序代码如下。 MOV R1,R0 AND R1,R1,#0xFF ; MOV R2,R0,LSR 0x08 AND R2,R2,#0xFF MOV R3,R0,LSR #0x08 AND R3,R3,#0xFF MOV R4,R0,LSR 0x08 AND R4,R4,#0xFF 程序执行完之后,四组字节的数据存储在R1~R4的低八位,高24为清零 9. 实现统计任意字符串包括的字符个数的功效。(约定:字符串以0为结束标志) 答: LDR R0,string; 将一个字符串的地址放到R0中。 MOV R1,0; 将字符串结束符放R1中 MOV R3,0; 将统计长度的放入R3中 LDR R2,[R0]; 将字符串的第一个字符放入R2 count: CMP R2,R1; 将R2中内容与结束符0进行比较 BEQ next; 假如相等,阐明比较结束 ADD R3,R3,#1; 假如不等长度值加1 LDR R2,[R0+#1];讲下一个字节装入R2 B count; 分支结构,返回至比较处,继续比较。 next: ;跳出这个算法的标号 10. 实现10个64位有符号数的相加运算。 答: 不妨假设这10个64位数紧密排列存储在存储器中,每个64位数占用8个字节的内存空间,按小端模式存储,首地址为sp LDR
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服