嵌入式实验思考题精品版.docx

上传人:b****3 文档编号:1922310 上传时间:2022-10-25 格式:DOCX 页数:16 大小:62.99KB
下载 相关 举报
嵌入式实验思考题精品版.docx_第1页
第1页 / 共16页
嵌入式实验思考题精品版.docx_第2页
第2页 / 共16页
嵌入式实验思考题精品版.docx_第3页
第3页 / 共16页
嵌入式实验思考题精品版.docx_第4页
第4页 / 共16页
嵌入式实验思考题精品版.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

嵌入式实验思考题精品版.docx

《嵌入式实验思考题精品版.docx》由会员分享,可在线阅读,更多相关《嵌入式实验思考题精品版.docx(16页珍藏版)》请在冰豆网上搜索。

嵌入式实验思考题精品版.docx

嵌入式实验思考题精品版

思考题

1、如何强行重新编译ADS1.2工程的所有文件?

答:

Project->RemoveObjectCode...删除工程中的*.obj文件

2、LDR伪指令与LDR加载指令的功能和应用有何区别,举例说明?

答:

LDR加载指令用于从内存中读取数据到寄存器中,例如:

LDRr1,[r3]

LDR伪指令用于加载32位的立即数或一个地址值到指定的寄存器中,例如:

LDRr0,#0xff123456

3、在AXD调试时如何复位程序?

答:

File->ReloadCurrentImage重新加载映象文件

4、指令MOVR0,#0x12345678是否正确?

为什么?

如何解决?

答:

不正确。

因为ARM是RISC结构,数据从内存到CPU之间的移动只能通过LDR/STR指令完成,而MOV只能在寄存器之间移动数据,不能干这个活,因此正确的写法是:

LDRr0,#0X12345678另外,还可以用LDR伪指令,后面跟一个“=”,LDRr0,=0x12345678,LDR伪指令和MOV是比较相似的,只不过MOV命令限制了立即数的长度为8为,也就是不要超过512,而LDR没有限制。

如果LDR后面的立即数没有超过8位,那么计算机在处理的过程中,该LDR伪指令会被转化成MOV来执行的。

5、使用MOV、ADD指令实现:

R8=R3=X+Y且X与Y是8位图数据

答:

xequ1

yequ2

movr0,#x

movr1,#y

addr3,r0,r1

movr8,r3

6、使用MOV、MVN、SUB指令实现:

R5=0x5FFFFFF8-R8*8(乘法除法用移位解决)

答:

MVNR0,#0xA0000007

;MOVR8,#0x1

SUBR5,R0,R8,LSL#3

7、使用CMP指令判断(5*Y/2)>(2*X)吗?

若大于则R5=R5&0xFFFF0000,否则R5=R5|0x000000FF

答:

XEQU1//顶格写5*Y-->ADDR2,R1,R1,LSL#2//R1=Y,Y+4Y=5Y

YEQU2

START

MOVR1,#Y

MOVR2,#X

ADDR3,R1,R1,LSL#2

MOVR4,R3,LSR#1

MOVR6,R2,LSL#1

CMPR4,R6

LDRR7,=0xFFFF0000

ANDGTR5,R5,R7

ORRLER5,R5,0x000000FF

8、如何实现64位加法运算(R6、R5)=(R6、R5)+(R3、R2)

答:

ADDSR5,R5,R2

ADCR6,R6,R3

9、如何使用ARM汇编指令实现结构化程序编程_1

if(x>y)z=100;

elsez=50;

答:

XEQU1

YEQU2

ZEQU0

MOVR0,#X

MOVR1,#Y

MOVR2,#Z

CMPR0,R1

MOVGTR2,#100

MOVR2,#50

10、如何使用ARM汇编指令实现结构化程序编程_2

for(i=0;i<10;i++)

{

x++;

}

//i、x均为无符号整数

答:

xequ0

iequ0

areatest,code,readonly

entry

start

movr1,#x

movr0,#i;控制循环

loopcmpr0,#10

addccr1,r1,#1

addccr0,r0,#1

bccloop

b.

end

11、如何使用ARM汇编指令实现结构化程序编程_3

while(x<=y)

{

x*=2;

}

//x、y均为无符号整数

答:

xequ2

yequ32

areatest,code,readonly

entry

start

movr0,#x

movr1,#y

loopcmpr0,r1

movler0,r0,lsl#1

bleloop

b.

end

12、如何使用ARM汇编指令实现结构化程序编程_4

do

{

x--;

}while(x>0);

//x为无符号整数

13、如何使用ARM汇编指令实现结构化程序编程_5

switch(key&0x0F)

{

case0:

case2:

case3:

x=key+y;

break;

case5:

x=key-y;

break;

case7:

x=key*y

break;

default:

x=168;

break;

}

//x、y、key均为无符号整数

14、在用户模式或系统模式下读取SPSR寄存器会有何结果?

答:

除了用户模式和系统模式,其余模式都有自己的一个私有的SPSR寄存器,用来保存状态切换之前的运行状态,之所以用户模式和系统模式没有SPSR是因为,通常CPU大部分时间执行在用户模式下,当产生异常或系统调用时会分别切换进入另外几种模式,保存用户模式下的状态,当切换回原先模式时,直接回复SPSR的值到CPSR就可以了,因此,用户模式和系统模式下不需要SPSR,所以用户模式和系统模式不可以直接读取SPSR,可以利用中断,如果强行读取的话,会出现不可预期的结果。

15、在非特权模式下能否对CPSR寄存器设置?

能否读取CPSR寄存器的值?

答:

因为我们不可以直接修改CPSR的状态标志为,只能通过SPSR来修改CPSR,在异常模式中,程序状态寄存器SPSR可以被访问,此时处于特权模式,因此在非特权模式下,不可以对SPSR进行修改,但可以读取CPSR的值!

16、在非特权模式下如何使能/禁止IRQ或FIQ中断?

答:

在中断初始化的时候设置CPSR寄存器I-bit和F-bit位为1,例如:

Msrcpsr_c,#0xdf

17、程序中能不能通过MSR指令直接修改CPSR中的T位来实现ARM状态/Thumb状态的切换?

答:

不能通过MSR直接修改CPSR中T位来实现状态的切换,必须使用BX指令完成处理器运行状态的切换,因为BX指令属于切换指令,他会打断流水线的状态,以实现处理器状态的切换。

18、使用TST指令测试R5的bit1是否为1,若是则将bit2位清零(使用BIC指令)答:

TST指令为位测试指令,而BIC指令为位清除指令,TST指令相当于“&”,

TSTR5,#0X01

BICR5,#0X10

18、使用TST指令测试R5的bit1是否为1,若是则将bit2位清零(使用BIC指令)

答:

TST指令为位测试指令,而BIC指令为位清除指令,TST指令相当于“&”,

TSTR5,#0X01

BICR5,#0X10

19、如何控制蜂鸣器报警速度?

**--------------FileInfo--------------------------------------------------

**Filename:

main.c

**LastmodifiedDate:

2011-04-09

**LastVersion:

1.0

**Descriptions:

Themain()functionexampletemplate

**-------------------------------------------------------------------------

**Createdby:

lxliu

**Createddate:

2011-04-09

**Version:

1.0

**************************************************************************/

#include"config.h"

#defineBEEP1<<7//P0.7控制蜂鸣器,低电平蜂鸣

/*************************************************************************

**函数名称:

DelayNS()

**函数功能:

长软件延时

**入口参数:

dly延时控制值,值越大,延时越长

**出口参数:

*************************************************************************/

voidDelayNS(uint32dly)

{

uint32i;

for(;dly>0;dly--)

for(i=0;i<50000;i++);

}

/*************************************************************************

**函数名称:

main()

**函数功能:

用P0.7控制BEEP,让蜂鸣器蜂鸣

**调试说明:

需将跳线JP11和BEEP短接

*************************************************************************/

intmain(void)

{PINSEL0=0x00000000;//设置P0口为GPIO功能

IO0DIR=BEEP;//设置P0.7为输出

while

(1)

{IO0SET=BEEP;//蜂鸣器停止蜂鸣

DelayNS(10);//延时

IO0CLR=BEEP;//蜂鸣器蜂鸣

DelayNS(100);//延时

}

return0;

}

嵌入式系统基础复习题

一、简答题

1、什么是嵌入式系统?

嵌入到对象体系中的专用计算机应用系统。

2、嵌入式系统的3个基本特点?

嵌入性、专用性、计算机

3、什么是嵌入式处理器,嵌入式处理器可以分为几大类?

嵌入式处理器是为了完成特殊的应用而设计的特殊目的的处理器。

分为嵌入式微处理器、嵌入式微控制器、嵌入式DSP处理器、嵌入式片上系统(SOC)。

4、广泛使用的三种类型的操作系统?

多道批处理操作系统、分时操作系统以及实时操作系统。

5、常见的4种嵌入式操作系统?

嵌入式Linux、WinCE、VxWorks、μC/OS-II

6、ARM是什么样的公司?

它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC处理器。

特点是只设计芯片,而不生产。

它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。

7、什么是RISC?

什么是CISC?

RISC是精简指令集计算机的缩写。

CISC是复杂指令集计算机的缩写。

8、举出2个ARM公司当前应用比较多的ARM处理器核?

ARM7系列、ARM9系列、ARM10系列、ARM11系列、intel的Xscale系列和MPCore系列。

9、ARM7TDMI中的T、D、S、I分别表示什么含义?

T:

支持高密度16位的Thumb指令集

D:

支持片上调试

S:

ARM7TDMI的可综合(synthesizable)版本(软核)

I:

支持EmbededICE观察硬件

M:

支持64位乘法

10、ARM7TDMI处理器采用什么样的体系结构,其可寻址地址空间多大?

ARM处理器使用冯.诺依曼结构

使用单个平面的232个8位字节地址空间。

地址空间可以看作是包含230个32位字,或231个16位半字。

11、ARM7TDMI处理器采用几级流水

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

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

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