




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
千里之行,始于足下让知识带有温度。第第2页/共2页精品文档推荐嵌入式系统设计与开发马文华课后答案其次章
一.ARM处理器有什么特点?
ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和合作伙伴众多。
1、体积小、低功耗、低成本、高性能;
2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;
3、大量使用寄存器,指令执行速度更快;
4、大多数数据操作都在寄存器中完成;
5、寻址方式灵便容易,执行效率高;
6、指令长度固定。
二.ARM的那个寄存器作为PC使用?哪个作为LR使用
ARM的寄存器,所有共有37个32位长的寄存器。但ARM核心同时最多只可以有18个同时执行的寄存器:包含了16个通用寄存器和2个状态寄存器,16个通用寄存器中包含了3个专用寄存器,R13、R14和R15。
R13用作堆栈指针SP
R15用做程序计数器PC,
R14用做子程序链接寄存器LR。
三.ARM有几种运行模式?那些具有特权?如何转变处理器的模式?
ARM有7中工作模式:用户模式、迅速中断模式、外部中断模式、管理模式、数据拜访中止模式、未定义指令中止模式、系统模式。
除了用户模式以外,其余全部6种模式称之为特权模式,权限比用户模式高,其中特权模式中除去系统模式外的5种模式称之为异样模式,常用于处理中断或异样,以及需要拜访受庇护的系统资源等状况。
处理器模式可以通过控制举行切换,也可以通过外部中断或异样处理过程举行切换。大多数的用户程序运行在用户模式下,这时,应用程序不能拜访一些受操作系统庇护的系统,应用程序也不能直接举行处理器模式切换。当需要举行处理器模式切换时,应用程序可以产生异样处理,在异样处理中举行处理器模式的切换。
四.ARM有几种异样?其异样处理方式和x86有什么不同?
1)复位(Reset)异样(管理模式);
2)未定义指令(undefinedinstruction)异样(未定义模式);
3)软件中断(SWI)异样(管理模式);
4)指令预取中止(PrefechAbort)异样(中止模式);
5)数据拜访中止(DataAbort)(中止模式);
6)迅速中断哀求(FIQ)(FIQ模式);
7)外部中断哀求(IRQ)(IRQ模式)。
机制一样:申请中断、相应中断、中断处理、中断返回
因为硬件不一样,细节上有很大区分,比如ARM的中断向量表:
ARM:
VectorsLDRPC,Reset_Addr;0x00000000复位
LDRPC,Undef_Addr;0x00000004未定义异样
LDRPC,SWI_Addr;0x00000008软件中断
LDRPC,PAbt_Addr;0x0000000C预取指中止
LDRPC,DAbt_Addr;0x00000010数据中止
NOP;0x00000014保留;
LDRPC,IRQ_Addr
LDRPC,[PC,#-0x0FF0];0x00000018中断
LDRPC,FIQ_Addr;0x0000001C迅速中断
X86:偏移量与段地址结合的方式
五.试比较ARM和x86的I/O寻址方式有什么不同?
ARM:
立刻数寻址:操作数本身直接在指令中给出,取出指令也就获得了操作数,这个操作数也是称为立刻数。
寄存器的值为操作数。ARM指令普遍采纳此种寻址方式。
寄存器偏移寻址:寄存器偏移寻址是ARM指令集特有的寻址方式。当其次作数是寄存器偏移方式时,其次寄存器操作数在与第一操作数结合之前,挑选举行移位操作。寄存器寻址:其次操作数的移位位数可以用立刻数方式或者寄存器方式给出。
寄存器间接寻址:寄存器中的值为操作数的物理地址,而实际的操作数存放在存储器中。基址加偏址寻址:将寄存器的值与指令中给出的偏移地址址量相加,所得结果作为操作数的物理地址。
堆栈寻址:堆栈寻址用于数据栈与寄存器组之间批量数据传输。当数据写好和读出内存的挨次不同时,使用堆栈寻址可以很好的解决这个问题。
X86:
立刻数寻址:操作数包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。寄存器寻址:操作数存放在CUP的内部寄存器中。
直接寻址方式:操作数的存储器中,指令中直接包含有操作数的有效地址,默认的段地址在DS段寄存器。
寄存器间接寻址:操作数在存储器中,操作数的有效地址在基址寄存器BX、BP或变址
寄存器SI、DI中。可使用段超越前缀转变。
寄存器相对寻址:操作数在存储器中,操作数有效地址是一个基址寄存器BX、BP或变址寄存器SI、DI的内容加上指令中给出的位置量之和。
相对基址变址寻址:操作数在存储器中,操作数的有效地址由基址寄存器的内容与变址寄存器的内容及指令中位置量相加得到,可用段超越前缀转变。
六.若允许FIQ和IRQ中断,CPSR应当如何处置?
当允许IRQ中断时,CPSR【7】=0即CPSR的I位置为0.当允许FIQ中断时,CPSR【6】=0即CPSR的F位为0。
假如2个中断同时发生时,因为FIQ拥有最高中断优先级,而IRQ惟独中等中断优先级,所以先执行FIQ中断(CPSR【7】=0),当中断结束后再执行IRQ中断(CPSR【6】=0)
FIQ:CPSR[4:0]=0B10001//进入FIQ模式
IRQ:CPSR[4:0]=0B10010//进入IRQ模式
CPSR[5]=0//在ARM状态执行
CPSR[6]=0//允许FIQ中断
CPSR[7]=0//允许IRQ中断
七.什么是ARM的E变种?
E变种增强一些附加指令用于增加处理器对一些典型的DSP算法的处理性能,主要包括以下指令。
·几条新的实现16位数据乘法和乘加操作的指令
·实现饱和的带符号数的加减法操作的指令。
·举行双字数据操作的指令,包括双字读取指令LDRD,双字写入指令STRD和协处理器的寄
存器传输指令MCRR/MRRC。
·cache予取指令PLD。
E变种首先在ARM体系结构版本5T中使用,用字符E表示。在ARM体系结构版本5以前的版本中,以及在非M变种和非T变种的版本中,E是无效的。
八.ARM的哪一种(或几种)模式使用的寄存器最少,使用的是哪些寄存器?
由上图可知用户模式和系统模式使用的寄存器最少,使用的有31个通用寄存器和一个状态寄存器,分离是:未分组寄存器R0~R7;分组寄存器R8~R14;程序计数器R15;状态寄存器CPSR
九.R13通常用来存储什么?
通常用来作为堆栈指针
第三章
1.举例说明ARM的各种寻址方式(P61)
答:1、立刻寻址:
2、寄存器寻址:ADDR0,R0,#3ADDR0,R1,R2
LERR0,[R1]
ADDR3,R2,R1,LSL#23、寄存器间接寻址:4、寄存器移位寻址:
5、基址变址寻址:
6、多寄存器寻址:
7、堆栈寻址:LDRR0,[R1,#-8]LDMIAR0,{R1,R2,R3}LDMFDR13!,{R0,R4-R12,PC}
8、拷贝寻址:
9、相对寻址:
LDMIAR0!,{R2-R9}BLNEXT??NEXT:??MOVPC,LR
2.R0和R1中有两个32位数,若R0>R1,则R0=R0-R1;若R0
externvoidstrcopy(char*d,constchar*s);
intmain()
{
constchar*srcstr="abcde";
chardststr[32];
printf("Beforecopying:n");
printf("'%s'n'%s'n",srcstr,dststr);
strcopy(dststr,srcstr);
printf("Aftercopying:n");
printf("'%s'n'%s'n",srcstr,dststr);
return0;
}
Asmfile.s
AREASCopy,CODE,READONLY
EXPORTstrcopy
strcopy
;r0pointstodestinationstring
;r1pointstosourcestring
LDRBr2,[r1],#1;loadbyteandupdateaddress
STRBr2,[r0],#1;storebyteandupdateaddress;
CMPr2,#0;checkforzeroterminator
BNEstrcopy;keepgoingifnot
MOVpc,lr;Return
END
这是一个c语言调用汇编的例子,功能是为了实现字符串的拷贝,其中汇编文件为字符串拷贝的功能子函数。
5、下列语句中,那些是无效的汇编语言指令?并指出无效指令中的错误。
1)ABC:MOVR1,R3
1)错“ABC:”不能用“:”号
2)Count:LDRR0,#0X80
2)错Count大小写必须全都
3)LDMIAR5,{R1,R3,R4}
3)错Equ大小写必须全都
4)STARTLDRR0,=0x123456H
4)对
5)STARTLDRR0,=0x123456
5)对
6)对
或答:(1)、(2)(3)是错误的。(4)(5)(6)是正确的。
其中(1)中的冒号应去掉;(2)中的“Count”与(3)中
的“Equ”大小写应统一。
注重:
symbol必需顶格书写。(ARM汇编其后不加“:”)(GUN汇
编要加“:”)
symbol命名规章:由字母,数字,下划线组成;除局部标号外,不能以数字开始。
指令不能顶格书写。
ARM指令,伪指令,伪操作,寄存器名可以所有为大写字母,也可所有为小写字母;不行大小写混用。
假如语句太长,可以将一条语句分几行来书写,在行末用“\”表示换行(即下一行与本行为同一语句)。“\”后不能有任何字符,包含空格和制表符(Tab)。
6、试编写程序,实现计算2+4+6+8+?+2N的值。
答:
MOVR5,#0
MOVR3,#0
MOVR4,#0
LABLEEQU#0X2300000
MOVLABLE,#300
LKM
ADDR3,R3,#2
ADDR4,R4,R3
ADDR5,R5,#1
CMPR5,#LABLE
BLNELKM
END
或
AREAExample,CODE,READONLY
ENTRY;程序入口处
CODE32;ARM代码
START
MOVR0,#0;设定寄存器R0,R1,R2的值为0
MOVR1,#0;其中RO代表每次加的值
MOVR2,#0;R1代表每次计算的结果
csEQU100;设定累加次数为100
LJ
ADDR0,R0,#2;R0=R0+2
ADDR1,R1,R0;R1=R1+R0
ADDR2,R2,#1;R2=R2+1
CMPR2,#cs;比较R2和cs的值,达到一百时停止程序,否则跳转到LJ继续执行
BLNELJ
END
或
MOVR0,#0
LDRR1,=2N
MOVR2,#0
LOOPADDR0,R0,#2
ADDR2,R2,R0
CMPR1,R0
BNELOOP
第五章
1、简述S3C44B0X最小系统应包含哪些部分?(书P130)
答:一个最小嵌入式系统包括如下部分:供电系统(电源)、时钟系统、调试测试接口、复位电路和存储器系统及嵌入式控制器。
2、S3C44B0X可使用的外部晶振频率范围是多少?(使用/不使用PLL功能时)答:20MHZ~66MHZ
若不使用PLL功能,则晶振频率范围为20-66MHz都能工作,在使用PLL或ISP功能的时候,则须为30-55MHz才干工作,太低或太高都不能工作。
3、设一个基于S3C44B0X的系统使用的晶振为11.0592MHZ石英晶振,请计算出最大的系统时钟频率为多少MHZ?此时PLL的M值和P值为多少?
答:锁相环输出Fpllo与锁相环输入Fin的关系
S3C44B0X的PLL模块的输出时钟频率Fpllo和输入参考时钟频率Fin的关系由下式打算:Fpllo=(mxFin)/(px2^s)
m=M+8,也就是分频器M的分配值+8
p=P+2,也就是分频器P的分频值+2
规定:Fpllo大于20MHz,并且小于66MHz
又由于PLL的输入时钟是Fin=11.0592MHz,
要求PLL的输出时钟最大频率
则可以把PLLCON的三个分频系数字段值设为:
MDIV=66,即M分频系数为66
PDIV=6,即M分频系数为6
SDIV=1,即M分频系数为1
按照公式:Fout=(m*fin)/(p*2^s)
得:Fout=((66+8)*11059200)/((6+2)*2^1)=51148800=51MHz
所以PLL的输出时钟最大频率是Fout=51MHz
4、给出S3C44B0X与存储器SST39VF160、HY57V641620HG的衔接方式,并说明存储器的地
址在系统中如何映射?书P153~157,P159~160
答:(1)S3C44B0X自身不具有ROM,因此必需外接ROM来存储掉电后仍需要保存的代码和数据。本系统采纳SST39VF160闪速存储器(FLASHMemory)作为系统的ROM,此器件具有非易使性,可轻
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论