2023年西安邮电大学嵌入式课后答案.docx
《2023年西安邮电大学嵌入式课后答案.docx》由会员分享,可在线阅读,更多相关《2023年西安邮电大学嵌入式课后答案.docx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统开发习题11 .什么是嵌入式系统?有何特点?答:嵌入式系统的概念有很多种,在嵌入式系统领域中比较认同的嵌入式系统的概念 是:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,合用于应用 系统对功能、可靠性、成本、体积、功耗有严格规定的专用计算机系统。嵌入式系统的特点: 嵌入式系统是将先进的计算机技术、半导体技术以及电子技术与各个行业的具体应 用相结合的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创 新的知识集成系统。 系统内核小。由于嵌入式系统一般是应用于小型电子装置中,系统资源相对有限, 所以内核较之传统的操作系统要小得多。专用性强。(4)系统精
2、简。(5)系统软件(OS)规定具有高实时性。(6)嵌入式软件开发要走向标准化,需要使用多任务的操作系统。 嵌入式系统自身并不具有在其上进行进一步开发的能力。2.嵌入式系统可以分为几层?每一层各完毕哪些功能?答:嵌入式系统由硬件层、中间层、软件层和功能层组成。硬件层:以嵌入式微解决器为核心,存储器用以存储数据和执行代码,相关的设备接 口和I/O接口,这些组成了一个嵌入式系统的基础,实现逻辑运算,算术运算等。中间层:将系统上层软件和底层硬件进行分离,封装成标准的接口,在上层软件开发人 员无需知道底层硬件的具体情况,完毕的任务是底层硬件的初始化、数据的输入/输出操作、 硬件的配置等功能。N:运算结果
3、的最高位反映在该标志位。对于有符号二进制补码,结果为负数时N=l,结果为正数或零时N=0;Z:指令结果为。时Z=1 (通常表达比较结果相等”),否则z=o;C:当进行加法运算,最高位产生进位时C=l,否则C=0。当进行减法运算(涉及CMP 指令),最高位产生借位时C=0,否则C=l。V:当进行加法/减法运算,并且发生有符号溢出时V=l,否则V=0,其它指令V不 变。(2)CPSR的最低8位为控制位,控制了解决器的工作方式。当发生异常时,这些位被 硬件改变。当解决器处在一个特权模式时,可用软件操作这些位。它们分别是:中断严禁位涉及I和F位:当I位置位时,IRQ中断被严禁;当F位置位时,FIQ中断
4、被严禁。T位反映了解决器的当前状态:当位T=1时,解决器正在Thumb状态下运营;当位T=0时,解决器正在ARM状态下运营。模式位涉及M4:0共计5bit,这些位决定解决器的操作模式.简述ARM7TDMI内部有哪些寄存器及特点。答:ARM7微解决器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存 器。37个寄存器定义如下:(1) 31 个通用寄存器:R0R15、R8_fiq、R9_fiq、R10_fiq Rll_fiq、R12_fiq、R13 fiq、R14 fiq、R13 svc、R14 svc、R13 abt、R14 abt、R13 und、R14 und、 R13_irq
5、R14Jrqo(2) 6 个状态寄存器:CPSRs SPSR_abt、SPSR.svc、SPSRJrq、SPSR_fiq、SPSR.undo特点:在ARM状态中,ROR7是通用寄存器,是不分组寄存器;R8R14, SPSR根据模式进行分组的寄存器;R15是程序计数器,不进行分组;CPSR是状态寄存器,不进行分 组。16 .什么是ARM解决器的异常? ARM解决器中有哪几种异常?答:在ARM中,异常是一些事件,这些事件能导致正常的程序执行流程被暂时地停止, 而进入到该事件相应的解决器异常模式并对该事件进行解决。ARM中定义了复位、未定义指令、SWI (软中断)、预取指终止、预取数终止、irq以
6、及fiq等7种异常,与之相应地ARM7解决器有5种异常模式。17 .分别简述ARM7的IRQ、FIQ异常解决过程,说明其异常向量地址。答:IRQ异常的解决流程如下: 进入IRQ异常模式。程序运营在用户模式下,当一个IRQ异常中断发生时,内核切 换到“中断模式”,并自动的做如下解决。将异常解决程序的返回地址保存到异常模式下的R14(R14_irq)中。用户模式的CPSR将被保存到中断异常模式SPSRJrq中。修改CPSR,将I置1,严禁新的IRQ中断产生,但不改变F值,不限制FIQ中断发 生,清零T标志位,进入ARM状态,修改模式位,设立为IRQ模式。将IRQ异常中断入口向量地址0x000000
7、18送入PC。在IRQ模式下,用户模式的R13和R14将不能操作,而R13_irq和R14_irq可以操作, 即R13_irq保存IRQ模式下的地址指针,R14_irq保存了“IRQ中断返回地址+4”。 退出IRQ异常模式。中断服务程序执行完毕后,使用一条指令将返回地址送入 PC,即可实现IRQ中断返回,在返回过程中解决器会自动将SPSRJrq中的内容复制到 CPSR,恢复中断前的解决器状态。FIQ异常进入与退出的流程与IRQ类似,其异常入口地址是0x0000001 Co. ARM7解决器对哪些异常可以进行屏蔽?如何屏蔽或允许?答:FIQ和IRQ可以被屏蔽。将CPSR的标志位1和F分别置位相应
8、着IRQ和FIQ中断 被严禁,清零这些位又可以将其使能。18 .说明CPSR中T位的作用,ARM7解决器如何切换状态?答:CPSR中T标志位为0时解决器工作在ARM状态,为1时解决器工作在Thumb状态。由于ARM采用字对齐或者半字对齐的存储模式,这意味着地址的最低一个比特位就不 会在寻址过程中使用到。故,使用地址的最低位进行区分,以何种模式取值和执行指令,本 地址地位为1时,置CPSR的T位为1,反之,置位为Oo.大端存储模式和小端存储模式的含义是什么?画出在0x2023单元中存储0x87654321数据的大端存储模式和小端存储模式。答:大端存储模式:在大端存储格式中,对于地址为A的字单元,
9、其中字节的低位字节 到高位字节地址顺序为A+3, A+2, A+l, A;对于地址为A的半字单元,其中字节的低位 字节到高位字节地址顺序为A+l, Ao即数据的低字节存放在高地址中的顺序进行存储。小端存储模式:在小端存储格式中,对于地址为A的字单元,其中字节的低位字节到 高位字节地址顺序为A , A+l , A+2, A+3;对于地址为A的半字单元,其中字节的低位 字节到高位字节地址顺序为A , A+lo即数据的高字节存放在高地址中的顺序进行存储。0x70?3上图中,良网去大端存储模式,右侧为小0x?,0?.3端存储模式。习题31、ARM7TDMI支持哪几种指令集,各有什么特点?答:支持ARM
10、指令集和Thumb指令集,各自特点是ARM指令集的指令是32位, 执行效率高、功能全,每条指令可以根据条件执行,但是代码密度低。Thumb指令集 指令是16位,在功能上是ARM指令集的子集,功能并没有减少。2、ARM指令的寻址方式有几种?并指出下列指令中的寻址方式。答:ARM指令的寻址方式有8种,分别为立即寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址变址寻址、相对寻址、多寄存器寻址、堆栈寻址。(1) SUB RO, RI, R2寄存器寻址LDR RO, R2寄存器间接寻址(3) MVN RO, #0x0F2 立即寻址LDMIA RO, R1-R5多寄存器寻址(5) STR R2JR4
11、, #0x02!基址变址寻址 LDR RI, R2, R3基址变址寻址(7) MOV RI, RI, ROR #2 寄存器移位寻址LDR R1JR3, #0x04 基址变址寻址3、简述ARM指令集中第2个操作数(operand!)的三种形式。答: 常数表达方式。该常数必须相应8位位图,即常数是由一个8位的常数循环右 移偶数位得到。例如:MOV R2, #100;寄存器方式。Operand2是Rm寄存器方式,在寄存器方式下操作数即位寄存 器中的数值。例如:SUB R0, RI, R2;寄存器移位方式。Rm, shift表达将寄存器的移位结果作为操作数,但Rm值 保持不变。例如:MOV R0, R
12、I, RRX;将RI带扩展的循环右移1位,存入R0 中。4、指出下列指令是否对的,若不对的请说明因素。MOVS R1, 101 不对的,立即寻址方式应当是#101(8) MVN Rl,#0xl0F 对的(9) STMDA Rll, R2-R8!不对的,不能同时存储在R2和R8中(10) ADD R0!,R2,#4 对的LDR R4, R5!不对的,LDR是存储到单个寄存器的加载指令,而这个是两个存 储器都进行存储,应当为 LDR R4, R5(6) MRS PC, CPSR 不对的MRS是将CPSR传送到通用寄存器中,但这里的通用寄 存器不涉及R15,即PC(7) LDMFDS R0!, R5
13、-R8, R2 对的(8) ADD R3, R3,R7不对的,ADD指令不能访问存储器(9) LDR Rll, R15, R8 !对的(10) BXS R0 对的5、何谓ARM指令的条件码?默认的条件码是什么?举例说明ARM指令的条件码对指令执行的影响。答:所谓的ARM指令的“条件执行”是指在指令码中具有本条指令的执行条件, 当CPSR中的条件码标志满足时,解决器执行本条指令,否则本条指令不执行。默认 是无条件执行。比如执行指令ANDEQ R2,R1,R3”时,假如CPSR中的Z=1时,执行R2=R1&R3, 否则不执行该指令。6、解释“满堆栈”、“空堆栈”、“递增堆栈”和“递减堆栈”? AR
14、M指令系统中是如何支持 的?答:满堆栈:堆栈指针SP指向最后压入的堆栈有效数据项。空堆栈:堆栈指针SP指向下一个待压入数据的空位置。递增堆栈:向高地址方向生长。递减堆栈:向低地址方向生长。满递增:堆栈向上增长,SP指向内具有效数据项的最高栈单元。指令如LDMFA、STMFA 等;空递增:堆栈向上增长,SP指向堆栈上的第一个空位置。指令如LDMEA、STMEA 等;满递减:堆栈向下增长,SP指向内具有效数据项的最低栈单元。指令如LDMFD、STMFD 等;空递减:堆栈向下增长,SP指向堆栈下的第一个空位置。指令如LDMED、STMED 等。7、试说明MOV指令、LDR加载指令和LDR伪指令三者的
15、区别。答: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指令, 带状态切换的
16、跳转,比如“BXRO”表达跳转R0指定的地址开始执行,并查看R00 位的值,假如是1,对CPSR的T位置位,解释目的程序为Thumb指令,假如是0,对CPSR的T位清零,解释目的程序为ARM指令。9、分析下列两段程序片断的功能,试用类C语言写出其等价功能。程序片断1:CM PRO, RIADDHIRO, R0,#lADDLSRI, Rl,#l(1) if(R0Rl)R0+;else程序片断2:CMP RO, #10CMPNE RI ,#20(2) if(RO != 10)&(Rl != 20)RO = RO+R1;10、使,RI4-4-; 二执行功能,试用汇编语言实现下列两条C代码语句。(1)
17、 if(x 二二 y)(2) if(x = = y) & ( a = = b)(3) LDR R0,x答.(1) LDR R0,x答.(2) LDR R0,xLDR Rl,yLDR R2,b11.LDR R3,cCMP R0.R1 (1) MRb KU, CPSR中断和关I(3) _一LDR Rl,yLDR R2, aLDR R3, bLDR R4, cCMP RO, RIBIC RI, R0, 0x80BIC RI, R0, 0x80ORR R1,RL#Qx8012、假如ARM解决器中各寄存器及存储单元参数如下图所示,试写出执行下列指令后,各寄存器及存储单元中内容变化情况。 STMIA R1
18、3!,R0-R3答:(1), R13-R。R13+4-RI习题4(2)LDMDB R13, R0-R3(2), RO-R13,R1-Rl+4;RI -R13,R1-Rl+4;R2 -R121 R1 -R1+4.什么是计算机语言? 一般可以分为哪几种?各自的优缺陷?答:计算机语言是计算机可以辨认、理解的语言。计算机语言分为三类:机器语言, 汇编语言和高级语言。机器语言(Machine Language)是由。和1二进制代码表达和存储的指令与数据。 它的特点是能被机器直接辨认与执行;程序所占内存空间较少。其缺陷是难认、难 记、难编、易错。汇编语言是一种面向物理层操作的计算机语言。不同的解决器类型,
19、具有不同的 汇编语言。使用汇编语言编写程序可以直接运用硬件系统的特性(如寄存器、标志、中 断系统等),可直接对位、字节、字寄存器或存储单元、I/O端口进行解决,同时也能 直接使用CPU指令系统提供的各种寻址方式,编制出高质量的程序,这样的程序不仅 占用内存空间少,并且执行速度快。缺陷:由于汇编语言不直接支持复杂的抽象数据 类型,在描述目的系统模型时,需耍程序员自己组织各种抽象数据类型的存储方式, 使得汇编语言程序设计较高级语言困难的多,需要较多的软件开发时间,也增长了程 序设计过程中犯错的也许性,程序维护也麻烦。高级语言(High Level Language)是脱离具体机器(即独立于机器)的
20、通用语言, 不依赖于特定计算机的结构与指令系统。与目的系统的数学模型之间有着良好的相应 关系,可在各种机器上通用,具有很好的通用性和可移植性。缺陷:解决器是不能直 接执行这种用高级语言编写的源程序,需要先将它翻译成相应的目的程序(即机器语言 程序),才干运营。1 .简述ARM汇编语言上机操作过程。答:设计、编辑汇编语言源程序;1 汇编、连接、下载到目的系统;调试运营;.简述编写一个汇编语言源程序的基本环节。答:分析目的系统,建立数学模型,拟定算法根据算法设计流程图 合理分派寄存器,存储空间和外设资源(4)根据流程图编写源程序上机调试程序(6)形成文档.循环程序设计中,循环的基本结构有几种?其循
21、环控制方法有几种?各自的应用特 点?答:循环程序的基本结构: 初始化部分:建立循环初始值。 循环体:是循环程序的主体部分。修改部分:为执行下一次循环而修改某些参数。(4)控制部分:通过判断循环结束条件是否成立,决定是否继续执行循环。(5)结束解决部分:对循环结束进行适当解决,如存储结果和打印输出等。循环程序设计中一个重要环节就是如何控制循环次数。循环控制方法:用计数 控制循环。特点:循环比较次数是已知的,因此可以用计数器控制循环。用条件控制循环。有些情况无法拟定循环次数,但循环结束的条件是已知的,这时 可通过循环测试结束条件是否满足的方法,条件满足结束循环,否则继续循环。5,汇编子程序传递参数
22、有哪几种方式?答:寄存器传递参数方式存储区域传递参数方式堆栈传递参数方式. C语言和ARM汇编语言进行程序编制时常用的开发方法有哪些?答:使用C语言和ARM7汇编语言进行程序编制时常用的开发方法:混合编程和交叉 编程。6 .简述APCS规则。答: 寄存器使用规则。ARM解决器寄存器组中的R0-R11用来保存局部变量; RI2-R15用于系统专用:R12用于子程序内部调用的片段寄存器;R13当前模式的堆栈指 针;R14链接寄存器,保存子程序的返回地址;R15用作程序计数器。其中,由于R4-R11 用来保存局部变量,对于遵守APCS规则的函数,在进入该函数的时候,程序员必须注意 保存R4-R11中
23、会被函数使用的寄存器,当返回时,再返回它们的值。 堆栈使用规则。APCS规则中的堆栈为FD类型,也就是满递减堆栈,并且堆栈的操 作是8字节对齐的,所以需要在汇编程序中用伪指令PRESERVE8来告诉连接器,本程序使用 的堆栈是字节对齐的。(3)参数传递规则。ARM7解决器寄存器组中R0-R3用于程序间的参数传递,其中R0 传递第一个参数,R1传递第二个参数,以此类推;假如参数数目超过4个,那么必须 使用堆栈进行传递。7 .实现将某个寄存器中的字数据拆提成4组字节数据的功能。答:不妨设数据在R0中,拆成的数据存放在R1R4中,程序代码如下。MOV R1,ROAND Rl,Rl,#0xFF;MOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 西安 邮电大学 嵌入式 课后 答案
限制150内