ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:41.84KB ,
资源ID:8194934      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8194934.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式系统习题部份汇总解读.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式系统习题部份汇总解读.docx

1、嵌入式系统习题部份汇总解读嵌入式系统复习题集一、 基础知识1、 什么是代码的临界区?答:代码的监界区是指处理时不可分割的代码,运行这些代码不允许被打断。一旦这部分代码开始执行,则不允许任何中断打入。中断不调用任何临界区的代码或不访问任何临界区使用的共享资源时,这个中断是可能可以执行。为确保临界区代码的执行,在进入临界区之前要关中断,而临界区代码执行完成以后要立即开中断。2、 什么是嵌入式系统?答:嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积及功耗严格要求的专用计算机系统,具有完成复杂功能的硬件和软件且紧密耦合在一起的计算机系统。3、 什么

2、是嵌入式操作系统?为何要使用嵌入式操作系统?答:运用在嵌入式系统上的实时操作系统,具有事件驱动和任务(进程)调度功能,且在有限时隙内能完成事件的响应和任务(进程)的切换,能可靠、实时、灵活地管理嵌入式系统上的各种资源和任务。使用嵌入式操作系统,能方便实时应用软件的开发和有机地整合,能有效地管理和协调各项工作,因此是开发和运行非常重要的环境。4、 ARM状态与Thumb状态的互换以什么条件来判断?似举出状态从ARM到Thumb或从Thumb到ARM切换的例子。答:其互换条件是执行BX 指令时,判断的最低一位b0是否为0或为1来确定的,当b0为0时,则执行的程序是ARM状态的32位指令程序,当b0

3、为1时,则执行的程序是Thumb状态的16位指令程序。如下例:;从ARM状态转变为Thumb状态 LDR R0,Lable+1 BX R0;从Thumb状态转变为ARM状态 LDR R0, Lable BX R05、 ARM体系结构支持多少种处理器模式,分别是什么?答:ARM体系结构支持7种处理器模式,分别是用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。6、 子程序利用R14(LR),获得返回到主程序的下条指令,通常有直接输入法和堆栈方法,试填写下面两种方法的代码: MOV PC, LR 或 STMFD SP!,, LR LDMFD SP!, , PC 如果是异常处

4、理后的返回,如IRQ中断返回又如何改写代码?7、 在修复产生数据中止的原因后,不管处于哪种处理器操作状态,处理程序都必须执行返回指令:SUBS PC R14_abt,#8 ;而预取中止时为:SUBS PC R14_abt,#4试解释减8原因?而在预取中止中为什么减4 ?答:由于ARM为三级流水,执行段相对取指令段差为8,产生数据中止是在执行段结束点进入,此时PC值为数据中止指令地址+12,即保存当前PC到R14_abt为数据中止指令地址+12,因此在修复产生数据中止的原因后,返回地址应为数据中止指令地址下一条指令,处理程序都必须执行返回指令:SUBS PC R14_abt,#8,才能实现其目的

5、。而在预取中止中时,出现中止异常是在执行段点,此时保存到R14_abt值为预取中止指令地址+8,因此要恢复到中止指令地址必为当前保存的R14_abt值减4,即执行SUBS PC R14_abt,#4操作,就可恢复到预取中止指令的下一条指令继续执行。8、 什么是小端存储?什么是大端存储?答:小端存储就是其存储格式为保存的字最低地址的字节看作是最低位字节,最高地址字节被看作是最高位字节。因此,存储器系统字节0连接到数据线7-0。 大端存储就是其存储格式为将最高位字节保存在最低地址字节,最低位字节保存在最高地址字节。因此存储器系统字节0连接到数据线31-24。9、 ARM7TDMI中T、D、M、I的

6、含义是什么?答:T表示具有高密度16位的Thumb指令机扩展功能;D表示具有支持片上调试功能;M表示具有64位乘法指令;I表示增加了EmbededICE观察点硬件。10、 ARM7TDMI采用几级流水线?使用何种存储器编址方式?答:ARM7TDMI采用三级流水段,分别为取指段、译码段和执行段。使用字节编址方式。11、 ARM处理器模式和ARM处理器状态有何区别?答:ARM处理器模式是指用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。每种模式都表明一种程序使用内部寄存器和一些片内外的硬件设备权利。而ARM处理器状态是指Thumb状态和ARM状态,即程序指令的执行译码按1

7、6位Thumb指令集还是按32位ARM指令集译码执行。12、 分别列举ARM的处理器模式和状态。答:ARM处理器模式分别是用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。ARM处理器状态是指16位Thumb指令集运行的Thumb状态和32位ARM指令集运行的ARM状态。13、 PC和LR分别使用哪个寄存器?答:PC使用R15;LR使用R14。14、 R13寄存器的通用功能是什么?答:R13寄存器在ARM状态时,可用作通用寄存器功能,但通常为堆栈指针SP,但在Thumb状态时,其压栈PUSH和弹栈POP指令都要用到R13(SP)。15、 CPSR寄存器中哪些位用来定义处

8、理器状态?答:在CPSR寄存器中b5位T定义处理器状态,T=0为ARM状态,T=1为Thumb状态。16、 ARM和Thumb指令的边界对齐有何不同?答:ARM指令长度为32位,其边界对齐存取地址位都是按b1:0=00方式进行,而Thumb指令长度为16位,其边界对齐存取地址位都是按b0=0方式进行。17、 描述一下如何禁止IRQ和FIQ的中断?答:对CPSR中的b7(I位)和b6(F位)标志位置位时,可分别来禁止IRQ和FIQ中断。18、 定义R0=0x12345678,假设使用存储指令将R0的值存放在0x4000单元中。如果存储器格式为大端格式,请写出在执行加载指令将存储器0x4000单元

9、的内容取出存放到R2寄存器操作后得R2的值;如果存储器格式改为小端格式,所得的R2值又为多少?低地址0x4000单元的字节内容分别是多少?答:按大端格式和小端格式存储,从存储器中读出的值是不变的,R2=0x12345678。按大端格式从0x4000单元读出的值为0x12, 按小端格式从0x4000单元读出的值为0x78。19、 请描述进入内核时异常操作步骤? 答:1) 在LR中保存下一条指令的地址;2) 将CPSR复制到适当的SPSR;3) 根据异常将CPSR模式强制设为某一值;4) 强制PC从相关的异常处取指。5) 异常结束时,异常处理程序必须将LR中的值减去偏移量后移入PC。6) 将SPS

10、R的值复制回CPSR。7) 清零在入口置位的中断禁止标志。20、 请描述一下ARM7TDMI产生异常的条件分别是什么?各种异常会使处理器进入哪种模式?进入异常时内核有何操作?各种异常的返回指令又是什么?答:ARM7TDMI产生异常:异常条件 模式 返回指令快速中断请求 快中断模式 SUBS PC,R14_fiq,#4中断请求 中断模式 SUBS PC,R14_irq,#4预取中止请求 中止模式 SUBS PC,R14_abt,#4数据中止请求 中止模式 SUBS PC,R14_abt,#8未定义指令中断请求 未定义指令模式 MOVS PC,R14_und软件中断请求 管理模式 MOVS PC,

11、R14_svc进入内核时异常操作是:1) 将LR中保存下一条指令的地址;2) 将CPSR复制到适当的SPSR;3) 根据异常将CPSR模式强制设为某一值;4) 强制PC从相关的异常处取指。5) 异常结束时,异常处理程序必须将LR中的值减去偏移量后移入PC。6) 将SPSR的值复制回CPSR。7) 清零在入口置位的中断禁止标志。21、 简单描述一下ARM7的三级流水线,并说明其对程序设计的影响。答:ARM7的三级流水分为取指段、分析段和执行段。对程序设计的影响:提高指令执行的速度,并使处理和存储系统连续操作。ARM ThumbPC PC 取指PC-4 PC-2 译码PC-8 PC-4 执行由此看

12、出,它对子程序调用返回、异常恢复返回,LR值需减一个常数值作为返回地址。22、 ARM7TDMI(-S)有几种寻址方式?LDR R1,R0,#0x08属于哪种寻址方式?答:有8种,分别是:寄存器寻址、立即寻址、寄存器移位寻址、寄存器间接寻址、基址寻址、(多寄存器寻址、块拷贝寻址)、堆栈寻址、相对寻址。其中:LDR R1,R0,#0x08属于基址寻址。23、 ARM指令的条件码有多少个?默认条件码是什么?答:ARM指令的条件码有16个,默认条件码是:AL 编码为1110 即无条件执行。24、 ARM指令中第二个操作数有哪几种形式?列举5个8位图立即数。答:ARM指令中第2个操作数有3种形式:1)

13、#immed_8r 常数表达式;2)Rm 寄存器方式;3)Rm,shift 寄存器移位方式。例如:0x3FC、0、0xF0000000、200、0xF0000001。25、 将ARM指令中,使用第2个操作数时,第2操作数的形式可为常数表达式#immed_8r,这种常数的合理表达方式是什么?答:这种常数须对应8位位图数据的循环移位偶数位得到的任何32位数据。26、 将ARM指令中,使用第2个操作数时,第2操作数的形式可为常数表达式#immed_8r,请说明下面常数哪些合理,哪些非法?0x3FC,0x1F,0x1FE,0,0xF0000000,511,0xFFFF,0x1010,0xF000001

14、0,200,0xF0000001,0x12800000,0x4000003B,0x0016C000答:合法常量:0x3FC/0/0xF0000000/200/0xF0000001/0x1F,0x12800000,0x4000003B,0x0016C000;非法常量:0x1FE/511/0xFFFF/0x1010/0xF0000010。27、 将比较两个值大小,并进行相应加1处理,C代码为: if(ab) a+;else b+;写出对应的ARM指令程序(其中设R0为a,R1为b)?答:CMP R0,R1 ADDHI R0,R0,#1 ;若R0R1,则R0=R0+1 ADDLS R1,R1,#1

15、;若R0R1,则R1=R1+128、 将C代码:if(a!=10)&(b!=20) a=a+b 转化为ARM指令程序?答: CMP R0,#10 ;比较R0是否为10CMPNE R1,#20 ;若R0不为10,则比较R1是否为20CMPNE R0,R0,R1 ;若R0不为10且R1不为20,指令执行,R0=R0+R129、 LDR/STR指令的偏移形式有哪4种?LDRB和LDRSB有何区别?答:LDR/STR指令的偏移形式有:1)零偏移;2)前索引偏移;3)程序相对偏移;4)后索引偏移。LDRB仅为无符号字节数据装载,其装载后的高24位为0,而LDRSB为有符号字节数据装载,高24位为符号位的

16、扩展。30、 请指出MOV指令与LDR加载指令的区别及用途。答:MOV指令是数据处理过程中的操作,可以传递立即数和寄存器到另一个寄存器的操作,而LDR加载指令用于将存储器单元数据装载到寄存器的操作。31、 CMP指令的操作是什么?写一个程序,判断R1的值是否大于0x30,是则将R1减去0x30。答:CMP指令操作是比较操作;判断R1的值是否大于0x30,是则将R1减去0x30程序如下:CMP R1,#0x30SUBGT R1,R1,#0x30OrCMP R1,#0x30SUBHI R1,R1,#0x3032、 调用子程序是用B还是用BL指令?请写出返回子程序的指令?答:调用子程序是用BL指令。

17、返回子程序的指令:BL lable MOV PC,LR33、 LDR伪指令用途?其指令格式与LDR装载指令的差别?答:LDR伪指令用于加载32位的立即数或一个地址值到指定寄存器,映射真正指令类型由编译程序决定;LDR伪指令指令格式为LDR Rn,=expr,LDR加载指令为LDR Rn,地址值。34、 ARM状态与Thumb状态的切换指令是什么?请举例说明。答:ARM状态与Thumb状态的切换指令是BX Rm。例如:ARM_CODE ADR R0,THUMB_CODE+1 BX R0 CODE 16THUMB_CODE MOV R0,#10 MOV R1,#20 ADD R0,R1 B THU

18、M_CODE END35、 Thumb状态与ARM状态的寄存器有区别吗?Thumb指令对哪些寄存器访问受到一定限制?答:Thumb状态与ARM状态的寄存器本身并无区别,都是32位寄存器。但Thumb指令仅对R8-R15受到一定限。36、 Thumb指令集的堆栈入栈、出栈指令是哪两条?答:压栈指令:PUSH reglist,LR ;弹栈指令:POP reglist,PC37、 Thumb指令集的BL指令转移范围为何能达到4MB?其指令编码是怎样的?答:Thumb指令集的BL采用2条这样的指令组合成22位半字偏移(符号扩展为32位),使指令转移范围为4MB。其指令编码为:1111+H+offset

19、11共16位。其中H为1位,offset11为了11位。38、 在中断向量中转移指令为什么没有用B指令?而是用什么指令实现跳转的?答:在中断向量中转移指令没有用B指令是由于B指令转移范围仅在32MB内,因此满足不了中断向量的全地址范围内的转移。实际中断向量中转移指令是用LDR PC ,addr,和文字池(DCD伪指令)来实现的,它可以实现4GB范围内跳转。39、 LPC2114可使用的外部晶振频率范围是多少(使用/不使用PLL功能时)?答:使用PLL功能时,外部晶振频率范围为10-25MHZ;不使用PLL功能时为1-30MHZ。在复位时。40、 描述一下LPC2210的P0.14、P1.20、

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和BOOT0引脚在芯片复位时决定复位后存储器的来源以及存储器的宽度。 LPC2000系列ARM7微控制器的复位处理流程:流程略(见书P119、120)。41、 LPC2000系列ARM7微控制器对向量表有何要求(向量表中的保留字)?

21、答:LPC2000系列ARM7微控制器要求:在向量表中所有32个32位指令二进制编码的向量按有符合数据累加之和为0,这时向量表才有效,且芯片复位后,能脱机独立运行。因此向量表中的保留字是配置数据累加和为0而留着的。42、 如何启动LPC2000系列ARM7微控制器的ISP功能?相关电路应该如何设计?答:微控制器在复位后可能有多种初始状态,决定于引脚状态和只读存储器的数据。当有外部复位信号Reset ,P0.14低电平时,进入ISP状态,当P0.14为高电平时,同时BOOT0和BOOT1为高电平时,进入ISP状态。相关电路应该为:43、 LPC2000系列ARM7微控制器片内Flash是多少位宽

22、度的接口?它是通过哪个功能模块来提高Flash的访问速度?答:LPC2000系列ARM7微控制器片内Flash是128位宽度的接口,是通过数据缓冲模块、预取缓冲模块、分支跟踪缓存模块、两Flash存储模块来提高Flash的访问速度。44、 LPC2210的BANK0存储块使用32位总线,访问BANK0时,地址线A1、A0是否有效?EMC模块中的BLS0BLS3具有什么功能?答:如果存储器组配置成32位宽度,地址线A0和A1无用,这是由于地址位的增减与存储器数据增减同步,此时A0和A1可作为GPIO使用(由PINSEL2设置)。EMC模块中的BLS0BLS3具有字节定位的选择信号功能,当BLS0

23、为低时,存取定位到低8位字节上,当BLS1为低时,存取定位次到低8位字节上,当BLS2为低时,存取定位到次高字节,当BLS3为低时,存取定位到高位字节上。45、 如果存储器组配置寄存器中RBLE位置1,表示按字节区分存储器组,现有程序: LDR R0,=0x80000001 mov R1,0x55STR R1,R0 请问执行STR指令后,存储器地址线上的地址应为 0x80000000,数据线的前16位数据中,低8位为 无效 ,高8位为 0x55 。EMC模块中的引脚线BLS0和BLS1电平分别为 高电平 和 低电平 。(填高低电平)46、 在startup.s启动代码中,设置异常向量表时,IR

24、Q入口处为什么放置LDR PC,PC,# -0x0ff0指令而非LDR PC,IRQ_Addr。答:这是由于LDR PC,IRQ_Addr指令不能提供灵活的转移地址,在处理时就要耗费大量的时间解决IRQ转移分类问题。而LDR PC,PC,# -0ff0指令转移地址来源于完部的VICVectAddr寄存器保存的地址值。不同的中断异常,其VICVectAddr的值不同,可通过初始配置,节省了软件的转移选择开销。47、 在startup.s启动代码中,设置异常向量表时,IRQ入口处放置LDR PC,PC,# -0x0ff0指令中PC-0x0FF0地址单元是指向 VICVectAddr 寄存器的地址。

25、48、 BOOT0和BOOT1与BCFG029:28的关系和区别是什么?答:Bank0用于引导程序运行,BCFG029:28的复位值与BOOT0和BOOT1设定有关。BOOT0和BOOT1与BCFG029:28的关系: Bank 复位时BOOT1:0的状态 BCFG29:28 存储器宽度 0 LL 00 8位 0 LH 01 16位 0 HL 10 32位 0 HH 10 32位 1 xx 10 32位 2 xx 01 16位 3 xx 00 8位而对Bank1、Bank2和Bank3而言, BCFG29:28决定存储器宽度,与BOOT1:0设定无关。对Bank0而言,BCFG29:28的复位

26、值由BOOT1:0设定决定,且存储器宽度也由BOOT1:0决定。49、 请问引脚连接模块选择寄存器有哪些?请举一个例子说明选择寄存器的功能?答:引脚连接模块选择寄存器有PINSEL0、PINSEL1和PINSEL2。如设定:PINSEL0 &= 0x00000001;则选择P0.0脚,功能为TxD(UART0)。50、 启动代码中总线引脚设置为:ResetInit LDR R0,=PINSEL2IF : DEF:EN_CRP LDR R1,=0x0f814910ELSE LDR R1,=0x0f814914ENDIF STR R1,R0 分析每条代码的含义,并说明PINSEL2配置0x0f81

27、4910和配置0x0f814914的区别?答:程序清单中,当预定义有EN_CRP宏时,将会编译程序清单LDR R1,=0x0f814910语句,并将PINSEL2寄存器设置为0x0f814910,否则编译LDR R1,=0x0f814914语句,并将PINSEL2寄存器设置为0x0f814914。区别:前一种执行禁止使用JTAG口调试,起到加密作用。后一种使用JTAG口调试。51、 LPC2000系列ARM7微控制器具有引脚功能复用特性,那么如何设置某个引脚为指定功能?答:例如通过设置PINSEL01:0=00时,引脚为GPIO功能;设置为01时,引脚为UART0的TxD功能。设置为10时,引

28、脚为PWM1功能脚。52、 设置引脚为GPIO功能时,如何控制某个引脚单独输入/输出?当需要知道某个引脚当前的输出状态时,是读取IOPIN寄存器还是读取IOSET寄存器?答:设置引脚为GPIO功能时,控制某个引脚单独输入/输出是用IODIR方向控制寄存器控制,寄存器中每位对应控制着I/O位,如IODIR0对应px.0脚,IODIR31对应px.31脚,写入1时对应引脚作为输出功能,写入0时作为输入功能。当需要知道某个引脚当前的输出状态时,是读取IOPIN寄存器。53、 P0.2和P0.3口是I2C接口,当设置它们为GPIO时,是否需要外接上拉电阻才能输出高电平?答:需要外接上拉电阻1-10K,

29、这是因此I2C接口两根线都开漏输出。54、 使用SPI主模式时,SSEL引脚是否可以作为GPIO?若不能,SSEL引脚应如何处理?答:使用SPI主模式时,SSEL引脚不可以作为GPIO,对SSEL引脚的处理,使用SPI主模式时,必须选择相应的引脚用作SSEL功能并使其保持高电平。55、 LPC2114的两个UART是符合什么标准?哪一个UART可用ISP通信?哪一个UART具有MODEM接口?答:必须符合16C550工业标准; UART0可用ISP通信,UART1具有MODEM接口功能。56、 LPC2114具有几个32位定时器?PWM定时器是否可以作通用定时器使用?答:LPC2114具有2个

30、32位定时器,定时器0和定时器1,PWM定时器是专用定时器,不可作通用定时器使用。57、 LPC2000系列ARM7 微控制器具有哪两种低耗模式?如何降低系统的功耗?答:LPC2000系列ARM7 微控制器具空闲模式和掉电模式的低耗模式。在空闲模式下,处理器、存储器系统和相关控制器以及内部总线不再消耗功率,但外设继续保持并可产生中断使处理器恢复运行。在掉电模式下,振荡器关闭,芯片没有任何内部时钟,处理器状态和寄存器、外设寄存器以及内部SRAM值在掉电模式下被保持。芯片的逻辑电平保持静态。复位或特定的不需要时钟仍能工作的中断可终止掉模式,并使芯片恢复正常运行。58、 有符号和无符号加法下面给出A

31、和B的值,可先手动计算A+B,并预测N、Z、V和C标志位的值。其中(A,B)值分别为(0xFFFF000F,0x0000FFF1)或(0x7FFFFFFF,0x02345678)或(67654321、23110000),将三组用分别用LDR伪指令向寄存器(R0,R1)附值。其程序如下:START LDR R0,=A LDR R1, =BLOOP BL ADD_SUB B LOOPADD_SUB ADDS R0,R0,R1 MOV PC,LREND试判断如果A和B为有符号数时,计算结果和标志位的状态?如果为无符号数时,计算结果和标志的状态?答: 0xFFFF000F 0x7FFFFFFF 67654321 A+ 0x0000FFF1 0x02345678 23110000 B结果: 0x100000000 0x82345677 90764321 N=0;Z=1;V=0;C=1 N=1;Z=0;V=1;C=0 N=

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1