




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式ARM基础习题第一章什么是嵌入式操作系统答:嵌入式系统是以应用为中心,以计算机技术为基础,软 / 硬件可裁减,功能。可 靠性,成本,体积,功耗要求严格的专用计算机系统。与通用计算机相比,嵌入式系统有哪些特点答:(1)嵌入式系统通常是面向特定应用的;(2)嵌入式系统是将计算机技术, 半导体技术和电子技术与各行各业的具体应用相结合的 后的产物,是一门综合技术学科;(3) . 嵌入式系统和具体应用有机的结合在一起, 它的升级换代也是和具体产品同步进行的, 因此嵌入式产品一旦进入市场,就有较长的生命周期;(4). 为了提高执行速度和可靠性, 嵌入式系统中的软件一般都固化在存储器芯片或单片 机本身
2、中,而不是存储于磁盘等载体中;(5). 嵌入式系统本身不具有自主开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。根据嵌入式的复杂程度,嵌入式系统可分为哪4 类答:1. 单个微处理器;2. 嵌入式处理器可扩展系统;3. 复杂的嵌入式系统;4. 在制造或过程控制中使用的计算机系统; 举例介绍嵌入式处理器有哪几类答: 1. 嵌入式微处理器( Embedded Microprocessor Unit,EMPU );2. 嵌入式微控制器; ( Embedded Microcontroller Unit,EMCU)3. 嵌入式 DSP 处理器( Em
3、bedded Digital Signal Processor,EDSP);4. 嵌入式片上系统( Embedded System on Chip,EsoC ); 从硬件系统来看,嵌入式系统由哪几个部分组成画出简图。电源模块Flash微处理器MPU时钟RAM复位ROM外设USBLCDkeyboardother. 嵌入式系统中,非数值数据编码主要包括哪几种答:1. 字符表示;2. 汉字编码;3. 语音编码;若在嵌入式系统采用 CRC码进行信息传输,接收端接收到的码字为101011,已知生成多项式 g(x)=1011, 问收到的码字是否正确出错的是哪一位解:收到的码字不正确;出错的是第 4 位。方
4、法:(将收到的码字与生成多项式相除,所得结果为0011。对“ CRC出错模式(G(x)=1011)可查找出出错位为第四位) 。第三章编写 1+2+3+*+100 的汇编程序。AREA EXAMPLE1, CODE,READONLY ; 定义一个代码段,名称为;EXAMPLE1ENTRY入口MOV R0,#0MOV R1,#0给 R0 赋值为 0用 R1 来存放 1100 的总和,初 始化为 0START ADD R0,R0,#1;用来判断终止的,每次加 1ADD R1,R1,R0;从 1 加到 100CMP R0,#100;执行 R0-100 的操作,但不保存,;只影响CPSR的值BLTSTA
5、RT;带符号数小于时跳转到 START处; 执行STOPB STOP;死循环END如何实现 128 位数的减法,请举例说明。AREA EXAMPLE2,CODE,READONLYENTRYSTARTSUBS R5,R5,R9SBCS R4,R4,R8SBCS R3,R3,R7SBCS R2,R2,R6STOPB STOPEND将存储器中起始地址 M1处的4个字数据移动到 M2处。AREA EXAMPLE2,CODE,READONLYENTRYLDR R0 ,=0X10;把地址 0X10 赋给 R0LDR R5,=0X20;把地址 0X20 赋给 R5STARTSTMIA R0,R1-R4;把R
6、1到R2的值依次赋给 R0为首地址的内存单元中,每次赋完一次值,R0自; 动加 1LDMIA R5,R1-R4;把R1到R4的值依次赋给以 R5为首地;址的内存单元中,R5每次自动加1STOPB STOP ; 死循环END参考CPSR寄存器中各标志位的含义,使处理器处于系统模式。AREA EXAMPLE2,CODE,READONLYENTRYSTARTMOV R0,#0X仆;给R0赋值,2进制为11111MSR CPSR_c,R0;把CPSR勺条件位置1STOPB STOP;死循环END用跳转指令实现两段程序间的来回切换。AREA EXAMPLE5 ,CODE, READONLYENTRYBL
7、 aSTARTCMP R0,R1BNE bBEQ STOPMOV R0,#3MOV R1,#2MOV R15,R14ADD R1,R1,#1B START跳到a对RO, R1,赋值比较 R0, R1 的值不等是跳转到 b相等时跳转到 STOP对 RO, R1 赋值返回;R1自加 1跳转到 STARTSTOPB STOP死循环END第四章什么是伪指令和伪操作在 ARM匚编中有哪几种伪指令答:在ARM匚编语言程序中有些特殊助记符,这些助记符与一般指令的助记符的不同之处在于没有相对应的操作码或者机器码, 通常称这些特殊指令助记符卫伪指令, 他们多完成 的操作成为伪操作;在ARM匚编中,有如下几种伪指
8、令:(1) 符号定义伪指令;(2) 数据定义伪指令;(3) 匚编控制伪指令;(4) 信息报告伪指令;(5) 宏指令及其他伪指令。如何定义寄存器列表,试举一个使用寄存器列表的例子,要求实现4 个字的内存复制。答:AREA EXAMPLE1,CODE,READONLYENTRYLDRR0,=0XFF把地址 0XFF 赋给 R0LDRR5,=0X0F把地址 0X0F 赋给 R5STARTPBLOCKRLIST R1-R4把 R1-R4 定义为 PBLOCKSTMIAR0,PBLOCK把 R1 到 R2 的值依次赋给;R0为首地址LDMIASTOP的内存单元中,每次赋完一次R5,PBLOCKSTOP值
9、自动加 1把 R1 到 R4 的值依次赋给以 R5为首地址的内存单元中,R5每次自动加 1死循环END参考CPSR寄存器中各标志位的含义,使处理器处于系统模式。AREA EXAMPLE2,CODE,READONLYENTRYSTARTMSR CPSR_c,R0STOPB STOPEND如何定义一个宏,宏与子程序的区别是什么答:宏的格式为:MARCOS MEND$标号 宏名$参数1,$参数 2.:指令序列MENDMARCO表示一个宏定义的开始,MEND表示一个宏的结束, MARCO口 MEND前呼后应可以将一段代码定义为一个整体, 又称宏, 然后在程序中就可以在程序中通过宏的名称及参数调 用该段
10、代码。宏指令可以重复使用, 这一点的使用方式与子程序有些相似, 子程序可以节省存储空间, 提供模块化的程序设计。 但使用子程序机构时需要保存 / 恢复现场, 从而增加了系统的开销, 因此, 在代码传递的参数较多并且比较短时, 可以使用宏代替子程序, 宏在被调用的地方展 开。汇编中如何定义一个段,段有几种属性答:AREA用于定义一个代码段,数据段,或者特定属性的段。段的几种属性如下:READONLY 表示只读属性;READWRITE 表示本段可读写;CODE 定义代码段;DATA 定义数据段;ALIGN= 表达式的对齐方式为 2 的表达式次方; ;COMMON :定义一个通用段,这个段不包含用户
11、代码和数据。在一个汇编源文件中如何包含另一个文件中的内容答:通常可以使用 GET/INCLUDE旨令,在某源文件中定义一些宏指令,用MAP和FIELD定义结构化数据结构类型, 用EQU定义常量的符号名称, 然后用GET/INCLUDE各这个源文件 包含到其他源文件中。分别编写一个函数和一个宏,实现字符串的复制。MACROCOPY $P1,$P2;定义一个宏$P1 DCB HELLO分配一个字节的空间,并初始化为一个字符串$P2 DCB WORLD! ;LDRR0,=$P1;LDRR6,=$P2;LDRIAR0,R1-R5;实现把 P1 加载到 R0STRIA R6,R1-R5 ;MENDARE
12、A COPY,CODE,READONLYENTRYSTARTMACRO STR1,STR2B START ;END同上把 P1 的首地址加载到把 P2 的首地址加载到把 R0 每载一次,自加一次同理(上)调用宏死循环R0R1解释归纳变量,同族的归纳变量及基本的归纳变量。4. 8试将下面这段 C代码翻译为等效的汇编代码:int Factorial(int)要有以下几个特点:具有大量的指令和寻址方式;大多数程序只使用少量的指令就能够运行。绝大多数嵌入式处理器:精简指令系统计算机 (RISC)有一个精简的指令系统。从而提高了微理器的效率, 但需要更复杂的外部程序, 也就是把在处理器层没有完成的工作放
13、到了上层 进行,而处理器层少的这些成本可以用对物理器件速度的提高上去。RISC 有下特点:8/2 原则: 80%的程序只使用 20%的指令;采用 Load/store 指令模式,凡数据由外存到内存、内存到寄存器方向的流动统一用Load指令,而对于反方向的操作,都用 store ;用小指令集、多寄存器、指令执行简单快速;统一用单周期指令,从根本上克服了 CISC指令周期数有长有短、偶发性不确定、运行失常 的缺点。(4)ARM7 ARM9内核处理器各采用几级流水线,分别是哪几级流水线结构答:ARM7TDM采用三级流水线,分另为取指令、解码指令和执行操作。ARM9TDM采用5级流水线结构,分别为取指
14、令、译码、执行、存储、写操作五级。( 5)从内部结构及功能来看,ARM、7 ARM9、 Xscal 内核处理器各自有哪些不同,主要应用在哪些领域答:ARM7内 部结构框图,包括 Address Register(地址寄存器)、Address In creme nter(地址累加器)、Resister Bank(寄存器块)、Booth s Multiplier(乘法器)、32 位 ALU单元、Write/Read Data Register (读 / 写数据寄存器) 、逻辑控制单元等部分。 没有内存管理单片。ARM9TDM处理器内核采用 ARM V4T架构,增加了可用的存储器宽度、指令存储器接口
15、以及 数据存储器接口,可以支持16bitThumb指令集和32btiARM指令,ARM9作为高性能的32位RISC处理器内核,可以实现对指令和数据存储器的同时访问。如图2-9所示为ARM9功能结构图。主要包含以下结构:16KB指令和16KB数据缓存;存储管理单元 MMU这有别于ARM7TDMI一个 AMBA (Advanced Microprocessor Bus Architecture)总线接口;一个 Embedded Trace Macrocell (ETM) 接口。有内存管理单元,便于移植操作系统。第3章(1) 试列举ARM处理器工作模式,各工作模式主要完成怎么样的功能答:User :
16、用户模式。绝大部分的任务执行都在这种操作模式下,此为正常的程序执行模式。FIQ:快速中断模式。当一个高优先级中断产生时,系统将会进入这种操作模式,用于高速 数据传输和通道处理,由FIQ请求位发出请求信号。IRQ:普通中断模式。当一个低优先级中断产生时将会进入这种操作模式,本模式用于通常 的中断处理,由IRQ请求位发出请求信号。Supervisor :管理模式。 当复位或软中断指令执行时将会进入这种操作模式, 是一种可以供 操作系统使用的保护模式。Abort :中止模式。当存取异常时将会进入这种操作模式,此模式可以被用作虚拟存储及存 储保护,可由ABORT青求位发出请求信号。Un def :未定
17、义模式。当执行未定义指令时会进入这种操作模式,多被用于软件仿真硬件协 处理器时。(2) 试列举ARM处理器各寄存器功能,在不同的模式下可以访问哪些寄存器答: 1 个寄存器用作 PC( Program Counter ),即程序寄存器,指向程序执行位置。1 个寄存器用作 CPSR( Current Program Status Register ),即当前状态寄存器,保存当前 cpu犬态。5个寄存器用作 SPSR( Saved Program Status Registers),备份不同模式下 CPSF的值。30 个寄存器作为通用寄存器,存储数据使用。(3) 试说明CPSR寄存器各位功能。答:标
18、志位 含 义N N=1 表示运算的结果为负数; N=0 表示运算的结果为正数或零Z Z=1 表示运算的结果为零; Z=0 表示运算的结果为非零C C=1表示有进位,C=0表示没有进位V V=1表示符号位溢出,v=o表示结果没有溢出Q在ARM vTE/J架构支持,指示 DSP指令是否溢出J 仅 ARM 5TE/J 架构支持, J = 1 表示处理器处于 Jazelle 犬态I I=1 表示禁止 IRQF F=1 表示禁止 FIQT 仅 ARMxT 架构支持, T = 0 表示处理器处于 ARM 犬态, T=1 表示处理器处于 Thumb 犬态(4) 试列出ARM处理器常见中断方式,并说明ARM处
19、理器在响应这些中断时要经历哪些主要步骤答:异常类型 具体含义FIQ当处理器的快速中断请求引脚有效,且CPSF中的F位为0时,产生FIQ异常IRQ当处理器的外部中断请求引脚有效,且CPSF中的I位为0时,产生IRQ异常 异常中断当外部的ABORT俞入产生时,发生异常断软件中断 该异常由执行 SWI 指令产生,可用于用户模式下的程序调用特权操作指令,可使 用该异常机制实现系统功能调用复位 当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行未定义指令 当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使 用该异常机制进行软件仿真ARM处理异常时,将立即通过备份
20、寄存器保存当前CPU的状态。PC和CPSR寄存器中的内容被分别拷贝到 R14和SPSR中,PC和CPSR中的模式位 M0: 4根据异常类型被强制改变。 在异常中断处理中, 如果要禁止其它难以管理异常的嵌套, 可以置位中断标志位禁止再次中 断请求。在需要重复进入中断处理程序的情况下,R14和SPSR应该在中断被使能之前保存到主存储的堆栈中;当传送 SPSR寄存器到堆栈或者从堆栈传送时,需要注意的是必须传送 整个字( 32 位)。当多个异常同时产生时,优先级决定异常响应的顺序。异常处理完毕之后,ARM微处理器将连接寄存器 LR的值减去相应的偏移量后送到 PC中,同 时将SPSR复制回CPSF中,若
21、在进入异常处理时设置了中断禁止位,要在此清除。(5)为什么说ARM处理器是32位处理器,主要体现在哪些方面, 其汇编采用怎样的指令编码格式答:数据线 32位,寄存器 32位,编码 32位。(6)试列出16类指令条件域所对应的 CPSR寄存器相应位状态。答:条件码 助记符后缀 标 志 含 义0000 EQ Z 置位0001 NE Z 清零0010 CS C 置位0011 CC C 清零0100 MI N 置位0101 PL N 清零相等不相等无符号数大于或等于无符号数小于负数正数或零0110 VS V 置位 溢出0111 VC V 清零 未溢出1000 HI C置位Z清零 无符号数大于1001
22、LS C清零Z置位 无符号数小于或等于1010 GE N 等于 V 带符号数大于或等于1011 LT N 不等于 V 带符号数小于1100 GT Z清零且(N等于V)带符号数大于1101 LE Z 置位或( N 不等于 V) 带符号数小于或等于1110 AL 忽略 无条件执行(7)ARM处理器主要有哪些类型的寻址方式,各有什么特点 答:立即寻址 寄存器寻址基地址变址寻址寄存器偏移寻址 寄存器间接寻址多寄存器寻址(8) ARM指令和伪指令主要功能是什么在 ARM处理器中,有哪些类型的 ARM指令,试举例 说明相应指令编码格式, 在ARM匚编程序设计时,有哪些主要类型的伪指令, 试举例说明各 类伪
23、指令功能。答:ARM旨令:指示处理器如何工作。伪指令:协助编译器。指令略。9)试用匚编程序实现求两个数中最大数。答: (10)试用汇编程序实现 1100 的加法运算。答:(11)试用汇编程序实现 10 的阶乘运算。答:(12)完成本章中所有源代码编写及调试。答:第4章(1) 试列举在进行嵌入式软件开发时,ARM匚编语言多用来开发哪些类型的程序。答:Bootloader程序中多采用汇编程序和C语言汇合编程。操作系统中有少部分是汇编程序,绝大部分采用 C 语言编写,例如 Linux 内核。(2) 在使用ADS平台进行嵌入式应用程序开发时,armasm armcc、armcpp、armlink主要
24、功能是什么,如果要编译 Thumb指令集程序,需要使用哪些命令。答:armasm:此命令用来编译汇编程序。armcc :用来编译C程序。armcpp :用来编译C+-程序。armlink :此命令用来链接目标文件。(3) 试编写一段汇编程序,实现64 位加法运算,并使用( 2)中所列工具进行编译链接, 生成可执行二进制代码。答:(4)在ARM应用程序中,在存储时可执行文件主要分为哪几个部分,在运行时又分成哪几 个主要部分,各部分主要存储形式和存储内容是什么答:图 4-3 存储态和运行态代码分布(5)使用平台创建工程项目文件过程是什么,试安装平台创建一个工程项目,然后添加相 应源代码,使用 AX
25、D调试,写出详细操作步骤。答:(6)试编写一段 C语言与汇编程序的混合程序,在此汇编程序中,实现输入的任意两个数 的整数除法运算,在 C文件中实现测试。答:(7)试编写一段C语言与汇编程序的混合程序,在此汇编程序中,实现两个64位数的乘法运算,在C文件中调用该函数实现测试,要求明确函数参数传递及返回。答:(8 )为什么要尽可能的遵循 APCS标准,有什么好处,在 APCS中,函数调用及返回遵循哪 些规则。答:第5章( 1)从硬件和软件两个方面分析一个嵌入式系统主要具备哪些显著特点2)试列出一个嵌入式设备在硬件常见的外围接口及主要功能 答:(3)试列出一个嵌入式设备在所具备的层次结构以及各层主要功能答:(4)试指出嵌入式软件开发和传统的X86 平台软件开发的差异,常见的嵌入式开发工具和开发平台有哪些答:(5)什么是嵌入式交叉编译环境,这种开发模式有哪些主要特点答:(1)ARM处理器有哪几种主要的中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论