嵌入式基础简答题

上传人:cl****1 文档编号:493535002 上传时间:2022-10-05 格式:DOCX 页数:9 大小:32.89KB
返回 下载 相关 举报
嵌入式基础简答题_第1页
第1页 / 共9页
嵌入式基础简答题_第2页
第2页 / 共9页
嵌入式基础简答题_第3页
第3页 / 共9页
嵌入式基础简答题_第4页
第4页 / 共9页
嵌入式基础简答题_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《嵌入式基础简答题》由会员分享,可在线阅读,更多相关《嵌入式基础简答题(9页珍藏版)》请在金锄头文库上搜索。

1、基础知识1、什么是代码的临界区? 答:代码的监界区是指处理时不可分割的代码,运行这些代码不允许被打断。一 旦这部分代码开始执行,则不允许任何中断打入。2、什么是嵌入式系统? 答:嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应 应用系统对功能、可靠性、成本、体积及功耗严格要求的专用计算机系统,具有 完成复杂功能的硬件和软件且紧密耦合在一起的计算机系统。3、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 答:运用在嵌入式系统上的实时操作系统,具有事件驱动和任务调度功能,且在 有限时隙内能完成事件的响应和进程的切换,能可靠、实时、灵活地管理嵌入式 系统上的各种资源和任务。使用嵌

2、入式操作系统,能方便实时应用软件的开发和 有机地整合,能有效地管理和协调各项工作,因此是开发和运行非常重要的环境。4、ARM状态与Thumb状态的互换以什么条件来判断?似举出状态从ARM到Thumb 或从 Thumb 到 ARM 切换的例子。答:其互换条件是执行BX vregisters指令时,判断vregisters的最低一位b0是 否为0或为1来确定的,当b0为0时,则执行的程序是ARM状态的32位指令程 序,当b0为1时,则执行的程序是Thumb状态的16位指令程序。如下例:;从 ARM 状态转变为 Thumb 状态LDRR0, Lable+1BX R0;从 Thumb 状态转变为 AR

3、M 状态LDRR0, LableBX R05、ARM体系结构支持多少种处理器模式,分别是什么?答: ARM 体系结构支持 7 种处理器模式,分别是用户模式、快中断模式、中断模 式、管理模式、中止模式、未定义模式和系统模式。6、子程序利用R14 (LR),获得返回到主程序的下条指令,通常有直接输入法和堆栈方法,试填写下面两种方法的代码:MOV PC,LR或STMFD SP!, vregisters,LRLDMFD SP!, vregisters,PC7、什么是小端存储?什么是大端存储?答:小端存储就是其存储格式为保存的字最低地址的字节看作是最低位字节,最 高地址字节被看作是最高位字节。因此,存储

4、器系统字节0连接到数据线7-0。大端存储就是其存储格式为将最高位字节保存在最低地址字节,最低位字节 保存在最高地址字节。因此存储器系统字节0连接到数据线31-24。8、ARM7TDMI中T、D、M、I的含义是什么?答:T表示具有高密度16位的Thumb指令机扩展功能;D表示具有支持片上调 试功能;M表示具有64位乘法指令;I表示增加了 EmbededICE观察点硬件。9、ARM7TDMI采用几级流水线?使用何种存储器编址方式?答:ARM7TDMI采用三级流水段,分别为取指段、译码段和执行段。使用字节编 址方式。10、ARM处理器模式和ARM处理器状态有何区别?答: ARM 处理器模式是指用户模

5、式、快中断模式、中断模式、管理模式、中止模 式、未定义模式和系统模式。每种模式都表明一种程序使用内部寄存器和一些片 内外的硬件设备权利。而 ARM 处理器状态是指 Thumb 状态和 ARM 状态,即程 序指令的执行译码按16位Thumb指令集还是按32位ARM指令集译码执行。11、PC和LR分别使用哪个寄存器?答:PC使用R15; LR使用R14。12、R13 寄存器的通用功能是什么?答:R13寄存器在ARM状态时,可用作通用寄存器功能,但通常为堆栈指针SP, 但在Thumb状态时,其压栈PUSH和弹栈POP指令都要用到R13 (SP)。13、CPSR寄存器中哪些位用来定义处理器状态?答:在

6、CPSR寄存器中b5位T定义处理器状态,T=0为ARM状态,T=1为Thumb 状态。14、ARM和Thumb指令的边界对齐有何不同?答:ARM指令长度为32位,其边界对齐存取地址位都是按b1:0=00方式进行, 而Thumb指令长度为16位,其边界对齐存取地址位都是按b0=0方式进行。15、描述一下如何禁止IRQ和FIQ的中断?答:对CPSR中的b7(I位)和b6 (F位)标志位置位时,可分别来禁止IRQ和 FIQ 中断。16、请描述进入内核时异常操作步骤?答:1)在LR中保存下一条指令的地址;2)将 CPSR 复制到适当的 SPSR;3)根据异常将CPSR模式强制设为某一值;4)强制PC从

7、相关的异常处取指。5)异常结束时,异常处理程序必须将LR中的值减去偏移量后移入PC。6)将 SPSR 的值复制回 CPSR。7)清零在入口置位的中断禁止标志。17、简单描述一下ARM7的三级流水线,并说明其对程序设计的影响。答:ARM7的三级流水分为取指段、分析段和执行段。对程序设计的影响:提高 指令执行的速度,并使处理和存储系统连续操作。18、ARM7TDMI(-S)有几种寻址方式? LDR R1, R0, #0x08属于哪种寻址 方式?答:有 8 种,分别是:寄存器寻址、立即寻址、寄存器移位寻址、寄存器间接寻 址、基址寻址、(多寄存器寻址、块拷贝寻址)、堆栈寻址、相对寻址。其中: LDR

8、Rl, R0, #0x08属于基址寻址。19、ARM指令的条件码有多少个?默认条件码是什么?答:ARM指令的条件码有16个,默认条件码是:AL编码为1110即无条件执 行。20、ARM指令中第二个操作数有哪几种形式?列举5个8位图立即数。答:ARM指令中第2个操作数有3种形式:1) #immed_8r 常数表达式;2) Rm 寄存器方式;3) Rm,shift 寄存器移位方式。例如: 0x3FC、 0、 0xF0000000、 200、 0xF0000001。21、将ARM指令中,使用第2个操作数时,第2操作数的形式可为常数表达 式#immed_8r,这种常数的合理表达方式是什么?答:这种常数

9、须对应8位位图数据的循环移位偶数位得到的任何32位数据。22、将ARM指令中,使用第2个操作数时,第2操作数的形式可为常数表达 式#immed_8r,请说明下面常数哪些合理,哪些非法?0x3FC,0x1F,0x1FE,0,0xF0000000,511,0xFFFF,0x1010,0xF0000010,200,0xF0000001,0x12800000,0x4000003B,0x0016C000答:合法常量: 0x3FC/0/0xF0000000/200/0xF0000001/0x1F,0x12800000,0x4000003B,0x0016C000;非法常量: 0x1FE/511/0xFFFF

10、/0x1010/0xF0000010。23、将比较两个值大小,并进行相应加1处理,C代码为:if(ab) a+;else b+;写出对应的ARM指令程序(其中设R0为a,R1 为 b )?答: CMP R0,R1ADDHI R0,R0,#1;若 R0R1,贝 V R0=R0+1ADDLS R1,R1,#1;若 R0 R1,则 R1=R1+124、将 C 代码:if(a!=10)&(b!=20) a=a+b 转化为 ARM 指令程序?答: CMPR0,#10;比较R0是否为10CMPNE R1,#20;若 R0 不为10,则比较 R1 是否为20CMPNE RO,RO,R1 ;若 RO 不为 1

11、0 且 R1 不为 20,指令执行,RO=RO+R125、LDR/STR指令的偏移形式有哪4种? LDRB和LDRSB有何区别?答:LDR/STR指令的偏移形式有:1)零偏移;2)前索引偏移;3)程序相对偏 移;4)后索引偏移。LDRB仅为无符号字节数据装载,其装载后的高24位为0, 而LDRSB为有符号字节数据装载,高24位为符号位的扩展。26、请指出MOV指令与LDR加载指令的区别及用途。答: MOV 指令是数据处理过程中的操作,可以传递立即数和寄存器到另一个寄存 器的操作,而LDR加载指令用于将存储器单元数据装载到寄存器的操作。27、CMP指令的操作是什么?写一个程序,判断R1的值是否大

12、于0x30,是 则将R1减去0x30。答: CMP指令操作是比较操作;判断R1的值是否大于0x30,是则将R1减去0x30 程序如下:CMPR1,#0x30SUBGTR1,R1,#0x30OrCMPR1,#0x30SUBHIR1,R1,#0x3028、调用子程序是用B还是用BL指令?请写出返回子程序的指令?答:调用子程序是用BL指令。返回子程序的指令: BL lableMOV PC,LR29、计算一个数n的阶乘,即n!=n*(n-1)*(n-2)(1)。FACTORIALLOOPMOV R6,#10MOV R4,R6SUBS R6,R6,#1MULNE R4,R4,R6BNE LOOP30、L

13、DR伪指令用途?其指令格式与LDR装载指令的差别?答: LDR 伪指令用于加载 32 位的立即数或一个地址值到指定寄存器,映射真正 指令类型由编译程序决定; LDR 伪指令指令格式为 LDR Rn,=expr,LDR 装载指 令为LDR Rn,地址值。31、ARM状态与Thumb状态的切换指令是什么?请举例说明。答: ARM 状态与 Thumb 状态的切换指令是 BX Rm。34、Thumb状态与ARM状态的寄存器有区别吗? Thumb指令对哪些寄存器访问受到一定限制?答:Thumb状态与ARM状态的寄存器本身并无区别,都是32位寄存器。但Thumb 指令仅对 R8-R15 受到一定限。32、

14、Thumb 指令集的堆栈入栈、出栈指令是哪两条? 答:压栈指令: PUSH reglist,LR ;弹栈指令: POP reglist,PC33、Thumb指令集的BL指令转移范围为何能达到4MB?其指令编码是怎 样的?答:Thumb指令集的BL采用2条这样的指令组合成22位半字偏移(符号扩展为 32位),使指令转移范围为土4MB。其指令编码为:1111+H+offsetll共16位。其 中H为1位,offset11为11位。34、在中断向量中转移指令为什么没有用 B 指令?而是用什么指令实现跳转 的?答:在中断向量中转移指令没有用B指令是由于B指令转移范围仅在32MB内, 因此满足不了中断向

15、量的全地址范围内的转移。实际中断向量中转移指令是用LDR PC ,addr,和文字池(DCD伪指令)来实现的,它可以实现4GB范围内跳转。35、LPC2114 可使用的外部晶振频率范围是多少(使用 /不使用 PLL 功能 时)?答:使用PLL功能时,外部晶振频率范围为10-25MHZ;不使用PLL功能时为 1-30MHZ。在复位时。36、 描述一下 LPC2210 的 P0.14、P1.20、P1.26、BOOT1 和 BOOT0 引脚在芯片 复位时分别有什么作用?并简单说明LPC2000系列ARM7微控制器的复位处理 流程。答: LPC2210的P0.14决定外部复位后是否进入ISP状态,如为低电平则进入ISP 状态。P1.20决定复位后是否使用P1.16-P1.25作为跟踪端口进行跟踪同步。P1.26决定复位后是否使用P1.31-P1.26作为调试端口。BOOT1和BOOTO引脚在芯片复位时决定复位后存储器的来源以及存储器的 宽度。LPC2000 系列 ARM7 微控制器的复位处理流程:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号