嵌入式实验思考题

上传人:汽*** 文档编号:562772743 上传时间:2023-10-25 格式:DOC 页数:10 大小:99.51KB
返回 下载 相关 举报
嵌入式实验思考题_第1页
第1页 / 共10页
嵌入式实验思考题_第2页
第2页 / 共10页
嵌入式实验思考题_第3页
第3页 / 共10页
嵌入式实验思考题_第4页
第4页 / 共10页
嵌入式实验思考题_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《嵌入式实验思考题》由会员分享,可在线阅读,更多相关《嵌入式实验思考题(10页珍藏版)》请在金锄头文库上搜索。

1、思考题1、如何强行重新编译ADS1.2工程的所有文件?答:Project - Remove Object Code. 删除工程中的*.obj文件2、LDR伪指令与LDR加载指令的功能和应用有何区别,举例说明?答:LDR加载指令用于从内存中读取数据到寄存器中,例如:LDR r1,r3LDR伪指令用于加载32位的立即数或一个地址值到指定的寄存器中,例如:LDR r0,#0xff1234563、在AXD调试时如何复位程序?答:File - Reload Current Image 重新加载映象文件4、指令MOV R0,#0x12345678是否正确?为什么?如何解决? 答:不正确。因为ARM是RIS

2、C结构,数据从内存到CPU之间的移动只能通过LDR/STR指令完成,而MOV只能在寄存器之间移动数据,不能干这个活,因此正确的写法是: LDR r0,#0X12345678 另外,还可以用LDR伪指令,后面跟一个“=”,LDR r0,=0x12345678,LDR伪指令和MOV是比较相似的,只不过MOV命令限制了立即数的长度为8为,也就是不要超过512,而LDR没有限制。如果LDR后面的立即数没有超过8位,那么计算机在处理的过程中,该LDR伪指令会被转化成MOV来执行的。5、使用MOV、ADD指令实现:R8=R3=X+Y且X与Y是8位图数据答:x equ 1y equ 2mov r0,#xmo

3、v r1,#yadd r3,r0,r1mov r8,r36、使用MOV、MVN、SUB指令实现:R5=0x5FFFFFF8 - R8 * 8(乘法除法用移位解决)答:MVN R0,#0xA0000007;MOV R8,#0x1SUB R5,R0,R8,LSL #37、使用CMP指令判断(5*Y/2)(2*X)吗?若大于则R5=R5&0xFFFF0000,否则R5=R5|0x000000FF答:X EQU 1 /顶格写 5*Y-ADD R2,R1,R1,LSL #2 /R1=Y,Y+4Y=5YY EQU 2STARTMOV R1,#YMOV R2,#XADD R3,R1,R1,LSL #2MOV

4、 R4,R3,LSR #1MOV R6,R2,LSL #1CMP R4,R6LDR R7,=0xFFFF0000ANDGT R5,R5,R7ORRLE R5,R5,0x000000FF8、如何实现64位加法运算(R6、R5)=(R6、R5)+(R3、R2)答: ADDS R5,R5,R2 ADC R6,R6,R39、如何使用ARM汇编指令实现结构化程序编程_1if(x y)z = 100;else z = 50;答:X EQU 1Y EQU 2Z EQU 0MOV R0,#XMOV R1,#YMOV R2,#ZCMP R0,R1MOVGT R2,#100MOV R2,#50 10、如何使用AR

5、M汇编指令实现结构化程序编程_2for(i = 0; i 10; i+)x+;/i、x均为无符号整数答:x equ 0i equ 0 area test,code,readonly entrystart mov r1,#x mov r0,#i ;控制循环loop cmp r0,#10 addcc r1,r1,#1 addcc r0,r0,#1 bcc loop b . end11、如何使用ARM汇编指令实现结构化程序编程_3while(x 0); /x为无符号整数13、如何使用ARM汇编指令实现结构化程序编程_5switch(key & 0x0F)case 0:case 2:case 3:x

6、= key + y;break; case 5:x = key - y;break; case 7:x = key * ybreak; default:x = 168;break; /x、y、key均为无符号整数14、在用户模式或系统模式下读取SPSR寄存器会有何结果? 答:除了用户模式和系统模式,其余模式都有自己的一个私有的SPSR寄存器,用来保存状态切换之前的运行状态,之所以用户模式和系统模式没有SPSR是因为,通常CPU大部分时间执行在用户模式下,当产生异常或系统调用时会分别切换进入另外几种模式,保存用户模式下的状态,当切换回原先模式时,直接回复SPSR的值到CPSR就可以了,因此,用户

7、模式和系统模式下不需要SPSR,所以用户模式和系统模式不可以直接读取SPSR,可以利用中断,如果强行读取的话,会出现不可预期的结果。15、在非特权模式下能否对CPSR寄存器设置?能否读取CPSR寄存器的值? 答:因为我们不可以直接修改CPSR的状态标志为,只能通过SPSR来修改CPSR,在异常模式中,程序状态寄存器SPSR可以被访问,此时处于特权模式,因此在非特权模式下,不可以对SPSR进行修改,但可以读取CPSR的值!16、在非特权模式下如何使能/禁止IRQ或FIQ中断? 答:在中断初始化的时候设置CPSR寄存器I-bit和F-bit位为1,例如: Msr cpsr_c, #0xdf17、程

8、序中能不能通过MSR指令直接修改CPSR中的T位来实现ARM状态/Thumb状态的切换? 答:不能通过MSR直接修改CPSR中T位来实现状态的切换,必须使用BX指令完成处理器运行状态的切换,因为BX指令属于切换指令,他会打断流水线的状态,以实现处理器状态的切换。18、使用TST指令测试R5的bit1是否为1,若是则将bit2位清零(使用BIC指令)答:TST指令为位测试指令,而BIC指令为位清除指令,TST指令相当于“&”, TST R5,#0X01 BIC R5,#0X1018、使用TST指令测试R5的bit1是否为1,若是则将bit2位清零(使用BIC指令) 答:TST指令为位测试指令,而

9、BIC指令为位清除指令,TST指令相当于“&”, TST R5,#0X01 BIC R5,#0X1019、 如何控制蜂鸣器报警速度?*-File Info-* File name: main.c* Last modified Date: 2011-04-09* Last Version: 1.0* Descriptions: The main() function example template*-* Created by: lxliu* Created date: 2011-04-09* Version: 1.0*/#include config.h#define BEEP 10;dly-

10、) for(i=0;i50000;i+);/* 函数名称:main()* 函数功能:用P0.7控制BEEP,让蜂鸣器蜂鸣* 调试说明:需将跳线JP11和BEEP短接*/int main (void) PINSEL0=0x00000000; /设置P0口为GPIO功能 IO0DIR=BEEP; /设置P0.7为输出 while(1) IO0SET=BEEP; /蜂鸣器停止蜂鸣 DelayNS(10); /延时 IO0CLR=BEEP; /蜂鸣器蜂鸣 DelayNS(100); /延时 return 0;嵌入式系统基础复习题一、简答题1、 什么是嵌入式系统?嵌入到对象体系中的专用计算机应用系统。2

11、、 嵌入式系统的3个基本特点?嵌入性、专用性、计算机3、 什么是嵌入式处理器,嵌入式处理器可以分为几大类?嵌入式处理器是为了完成特殊的应用而设计的特殊目的的处理器。分为嵌入式微处理器、嵌入式微控制器、嵌入式DSP处理器、嵌入式片上系统(SOC)。4、 广泛使用的三种类型的操作系统?多道批处理操作系统、分时操作系统以及实时操作系统。5、 常见的4种嵌入式操作系统?嵌入式Linux、Win CE、VxWorks、C/OS-II6、 ARM是什么样的公司?它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC处理器。特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。7、 什么是RISC?什么是CISC?RISC是精简指令集计算机的缩写。CISC是复杂指

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

当前位置:首页 > 高等教育 > 习题/试题

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