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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(嵌入式系统设计与开发 马文华 课后答案Word格式文档下载.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

嵌入式系统设计与开发 马文华 课后答案Word格式文档下载.docx

1、LDR PC, PAbt_Addr ;0x0000000C预取指中止LDR PC, DAbt_Addr ;0x00000010数据中止NOP ;0x00000014保留 ;LDR PC, IRQ_AddrLDR PC, PC, #-0x0FF0 ;0x00000018中断LDR PC, FIQ_Addr ;0x0000001C快速中断X86:偏移量与段地址结合的方式五.试比较ARM和x86的I/O寻址方式有什么不同?ARM:立即数寻址:操作数本身直接在指令中给出,取出指令也就获得了操作数,这个操作数也是称为立即数。寄存器的值为操作数。ARM指令普遍采用此种寻址方式。寄存器偏移寻址:寄存器偏移寻

2、址是ARM指令集特有的寻址方式。当第二作数是寄存器偏移方式时,第二寄存器操作数在与第一操作数结合之前,选择进行移位操作。 寄存器寻址:第二操作数的移位位数可以用立即数方式或者寄存器方式给出。寄存器间接寻址:寄存器中的值为操作数的物理地址,而实际的操作数存放在存储器中。 基址加偏址寻址:将寄存器的值与指令中给出的偏移地址址量相加,所得结果作为操作数的物理地址。堆栈寻址:堆栈寻址用于数据栈与寄存器组之间批量数据传输。当数据写好和读出内存的顺序不同时,使用堆栈寻址可以很好的解决这个问题。操作数包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。操作数存放在CUP的内部寄存器中。直接寻址方式:

3、操作数的存储器中,指令中直接包含有操作数的有效地址,默认的段地址在DS段寄存器。操作数在存储器中,操作数的有效地址在基址寄存器BX、BP或变址寄存器SI、DI中。可使用段超越前缀改变 。寄存器相对寻址:操作数在存储器中,操作数有效地址是一个基址寄存器BX、BP或变址寄存器SI、DI的内容加上指令中给出的位置量之和。相对基址变址寻址:操作数在存储器中,操作数的有效地址由基址寄存器的内容与变址寄存器的内容及指令中位置量相加得到,可用段超越前缀改变。六.若允许FIQ和IRQ中断,CPSR应该如何处置?当允许IRQ中断时,CPSR【7】=0即CPSR的I位置为0.当允许FIQ中断时,CPSR【6】=0

4、即CPSR的F位为0。如果2个中断同时发生时,由于FIQ拥有最高中断优先级,而IRQ只有中等中断优先级,所以先执行FIQ中断(CPSR【7】=0),当中断结束后再执行IRQ中断(CPSR【6】=0)FIQ: CPSR4:0=0B10001 /进入FIQ模式IRQ:0=0B10010 /进入IRQ模式CPSR5=0 /在ARM状态执行CPSR6=0 / 允许FIQ中断CPSR7=0 /允许IRQ中断七.什么是ARM的E变种?E变种增加一些附加指令用于增强处理器对一些典型的DSP算法的处理性能,主要包括以下指令。几条新的实现16位数据乘法和乘加操作的指令实现饱和的带符号数的加减法操作的指令。进行双

5、字数据操作的指令,包括双字读取指令LDRD,双字写入指令STRD和协处理器的寄存器传输指令MCRR/MRRC。cache予取指令PLD。E变种首先在ARM体系结构版本5T中使用,用字符E表示。在ARM体系结构版本5以前的版本中,以及在非M变种和非T变种的版本中,E是无效的。八.ARM的哪一种(或几种)模式使用的寄存器最少,使用的是哪些寄存器?由上图可知用户模式和系统模式使用的寄存器最少,使用的有31个通用寄存器和一个状态寄存器,分别是:未分组寄存器R0R7;分组寄存器R8R14;程序计数器R15;状态寄存器CPSR九.R13通常用来存储什么?通常用来作为堆栈指针第三章1.举例说明ARM的各种寻

6、址方式(P61)答:1、立即寻址:2、寄存器寻址: ADD R0,R0,#3 ADD R0,R1,R2LER R0,R1ADD R3,R2,R1,LSL #2 3、寄存器间接寻址: 4、寄存器移位寻址:5、基址变址寻址:6、多寄存器寻址:7、堆栈寻址: LDR R0,R1,#-8 LDMIA R0,R1,R2,R3 LDMFD R13!,R0,R4-R12,PC8、拷贝寻址:9、相对寻址:LDMIA R0!,R2-R9 BL NEXT ? NEXT: ? MOV PC,LR2.R0和R1中有两个32位数,若R0R1,则R0=R0-R1;若R0R1,则R1=R1-R0;若R0=R1,则R1、R0

7、保持不变。(1)请用CMP、B和SUB指令完成上述操作。 CMP R0,R1BLT LESSBRT MORELESS:SUB R1,R1,R0 B EQ MORE:SUB R0,R0,R1EQ:或AREA StrCopy,CODE, READONLY ;程序起始定义ENTRY ;第一条指令的标识符startMOV R0,#5MOV R1,#4CMP R0,R1BLT LessBGT More END B EQB stopLessSUB R1,R1,R0 B stopMore SUB R0,R0,R1stop(2)请用条件SUB指令完成上述操作。 CMP R0,R1SUBGT R0,R0,R1S

8、UBLT R1,R1,R0AREA StrCopy, CODE, READONLYENTRYSUBLT R1,R1,R0SUBGT R0,R0,R1END3、用指令实现以下功能(1)R0=16MOV R0,#16(2)R1=R0 X 4MUL R1,R0,#4(3)R0=R1/16 ENDLSR R0,R1,#4或MOV R0,R1,LSR#4(4)R1=R2 X 7MUL R1,R2,#74、说明以下指令功能(1)、ADDS R0,R1,R1,LSL#2将R1加上4倍的R1赋值给R0。 或R0=R1+R1*4; 并根据运算结果更新标志位(2)、RSB R2,R1,#0R2=0-R1,即将R1

9、求反赋值给R25、下列指令序列完成什么功能?(1)ADD R0,R1,R1,LSL #1将R1加上左移一位后的R1并将结果赋值给R0。(R0=R1+R1*2)(2)SUB R0,R0,R1,LSL #4将R0减去左移一位后的R1并将结果赋值给R0。(R0=R0 -R1x*16)(3)ADD R0,R0,R1,LSL #7将R0加上左移7位后的R1并将结果赋值给R0。(R0=R0+R1*128)第四章1、在ARM汇编语言程序设计中,语句一般是由指令,伪操作、宏指令和伪指令组成的。什么是伪操作、宏指令和伪指令呢?它们与指令由什么不同呢?各有什么优点? 答:1)定义:A.指令:每一条指令都对应一种C

10、PU操作。B.伪操作又称为伪指令,它是在对源程序汇编期间由汇编程序处理的操作,它们可以完成如处理器选择、定义程序模式、定义数据、分配存储区、指示程序结束等功能。C.宏指令是由用户按照宏定义格式编写的一段程序,其中语句可以是指令、伪指令,甚至是已定义的宏指令。2)区别:a.每一条指令必须生成机器代码,然后在程序运行期间由CPU来执行其操作;而伪指令是在汇编期间由汇编程序执行的操作命令,除了数据定义及存储器分配伪指令分配存储器空间外,其它伪指令不生成目标码。b.宏指令的作用是把一个复杂的或者是不直观的语句或是组合用一个简单的、易记的形式表示,当编译器遇到源程序中的宏时,就把它定义的内容原封不动的c

11、opy过来。如果程序中使用100次宏,这段代码就被复制100次。3)特点:伪操作-成如数据定义、分配存储区、指示程序结束等功能;宏指令-简化程序代码的编写和提高程序的可读性。2、对比说明ADR、ADRL与LDR的区别与联系。(P353)1)ADR:为小范围的地址读取伪指令,将基于PC相对偏移的地址值读取到寄存器中。2)ADRL:为中等范围的地址读取伪指令,将基于PC相对偏移的地址值读取到寄存器中。3)LDR:大范围的地址读取伪指令,用于加载32位的立即数或一个地址值到指定寄存器,在汇编编译源程序时,LDR伪指令被替换成一条合适的指令。如加载的常数未超出MOV或MVN的范围,则使用MOV或MVN

12、指令代替该伪指令,否则汇编器将使用文字池。指令格式:ADR cond register, expr其中 register 加载的目标寄存器expr 为地址表达式,当地址值是非字对齐时,取值范围-255255字节之间;当地址是字对齐是,取值范围-10201020字节之间。2) ADRL:指令格式ADRL cond register,exprexpr 地址表达式,当地址值是非字对齐时,取值范围-64K64K字节之间;当地址是字对齐时,取值范围-256K256K字节之间。3) LDR:LDRcond register,=expr/label_exprexpr 为32位的立即数;label_expr基

13、于PC的地址表达式或外部表达式。3)联系:ADR、ADRL和LDR均为地址读取伪指令。3、编写一个汇编程序,在ARM程序代码中调用Thumb子程序,并返回ARM程序完成其功能。CODE32BLX TSUB1CODE16TSUB1BX R14或 ;转向ARM ;表明以下是Thumb指令 ;表明以下是ARM指令AREA EXAMPLE,CODE,READONLYENTRY ;程序入口处CODE16 ;thumb 代码ThumbADD R1,R1,R0 ;R1=R1+R0BX LR ;返回到arm状态CODE32 ;ARM 代码StartMOV R0,#1 ;及时数1赋值给R0MOV R1,#5 ;

14、及时数5赋值给R1ADR R3,Thumb + 1 ;获取目标地址,末位1,MOV LR,PC ; 保存返回地址BX R3 ; 切换到thumb状态4、编一段C语言与汇编语言的混合代码,在C语言程序中调用汇编语言代码,完成字符STR1,STR2内容的转换。unsigned char str1=A;unsigned char str2=Bprintf(%c,str1);,str2);_asm /嵌入汇编代码mov al,str1 /将str1的值赋给a1xchg al,str2 /交换al和str2的值,现 str2=str1mov str1,al /将a1的值赋给str1 /输出getchar

15、();#include stdio.hvoid main()/定义字符串str1的内容为A/定义字符串str2的内容为Bstr1和str2的初始值n);%c /输出str1的值%cn /输出str2的值_asm /汇编交换子程序xchg al,str2 /将a1的值与str2交换str1和str2交换后的值nCfile.c#include extern void strcopy(char *d, const char *s);int main()const char *srcstr = abcdechar dststr32;Before copying:n %sn ,srcstr,dststr

16、);strcopy(dststr,srcstr);After copying:return 0;Asmfile.sAREA SCopy, CODE, READONLYEXPORT strcopystrcopy r0 points to destination string r1 points to source stringLDRB r2, r1,#1 ; load byte and update addressSTRB r2, r0,#1 ; store byte and update address;CMP r2, #0 ; check for zero terminatorBNE str

17、copy ; keep going if notMOV pc,lr ; Return这是一个c语言调用汇编的例子,功能是为了实现字符串的拷贝,其中汇编文件为字符串拷贝的功能子函数。5、下列语句中,那些是无效的汇编语言指令?并指出无效指令中的错误。1)ABC: MOV R1,R31)错“ABC:”不能用“:”号2) Count: LDR R0,#0X802)错Count 大小写必需一致3)LDMIA R5,R1,R3,R43)错Equ 大小写必需一致4)START LDR R0,=0x123456H4)对5)START LDR R0,=0x1234565)对6)对或答:(1)、(2)(3)是错误

18、的。(4)(5)(6)是正确的。其中(1)中的冒号应去掉;(2)中的“Count”与(3)中的“Equ”大小写应统一。注意:symbol必须顶格书写。(ARM汇编其后不加“:”)(GUN汇编要加“:”)symbol命名规则:由字母,数字,下划线组成;除局部标号外,不能以数字开头。指令不能顶格书写。ARM指令,伪指令,伪操作,寄存器名可以全部为大写字母,也可全部为小写字母;不可大小写混用。如果语句太长,可以将一条语句分几行来书写,在行末用“”表示换行(即下一行与本行为同一语句)。“”后不能有任何字符,包含空格和制表符(Tab)。6、试编写程序,实现计算2468?+2N的值。MOV R5,#0MO

19、V R3,#0MOV R4,#0LABLE EQU #0X2300000MOV LABLE,#300LKMADD R3,R3,#2ADD R4,R4,R3ADD R5,R5,#1CMP R5,#LABLEBLNE LKMAREA Example,CODE,READONLYSTARTMOV R0,#0 ;设定寄存器R0,R1,R2的值为0MOV R1,#0 ;其中RO代表每次加的值MOV R2,#0 ;R1代表每次计算的结果cs EQU 100 ;设定累加次数为100LJADD R0,R0,#2 ;R0=R0+2ADD R2,R2,#1 ;R2=R2+1CMP R2,#cs ;比较R2和cs的值

20、,达到一百时停止程序,否则跳转到LJ继续执行BLNE LJMOV R0,#0LDR R1,=2NMOV R2,#0LOOP ADD R0,R0,#2ADD R2,R2,R0CMP R1,R0BNE LOOP第五章1、简述S3C44B0X最小系统应包含哪些部分? (书P130)一个最小嵌入式系统包括如下部分:供电系统(电源)、时钟系统、调试测试接口、复位电路和存储器系统及嵌入式控制器。2、S3C44B0X可使用的外部晶振频率范围是多少?(使用/不使用PLL功能时) 答:20MHZ66MHZ若不使用PLL功能,则晶振频率范围为20-66MHz都能工作,在使用PLL或ISP功能的时候,则须为30-5

21、5MHz才能工作,太低或太高都不能工作。3、设一个基于S3C44B0X的系统使用的晶振为11.0592MHZ石英晶振,请计算出最大的系统时钟频率为多少MHZ?此时PLL的M值和P值为多少?锁相环输出Fpllo与锁相环输入Fin的关系S3C44B0X的PLL模块的输出时钟频率Fpllo和输入参考时钟频率Fin的关系由下式决定: Fpllo=(m x Fin)/(p x 2s)m=M+8,也就是分频器M的分配值+8p=P+2,也就是分频器P的分频值+2规定:Fpllo大于20MHz,并且小于66MHz又因为PLL的输入时钟是Fin=11.0592MHz,要求PLL的输出时钟最大频率则可以把PLLC

22、ON的三个分频系数字段值设为:MDIV=66,即M分频系数为66PDIV=6,即M分频系数为6SDIV=1,即M分频系数为1根据公式:Fout=(m*fin)/(p*2s)得:Fout=(66+8)*11059200)/(6+2)*21)=51148800=51MHz所以PLL的输出时钟最大频率是Fout=51MHz4、给出S3C44B0X与存储器SST39VF160、HY57V641620HG的连接方式,并说明存储器的地址在系统中如何映射?书P153157,P159160(1)S3C44B0X自身不具有ROM,因此必须外接ROM来存储掉电后仍需要保存的代码和数据。本系统采用SST39VF16

23、0闪速存储器(FLASH Memory)作为系统的ROM,此器件具有非易使性,可轻易擦写。S3C44B0X与存储器SST39VF160的连接方式(2)HY57V641620HG分成4个Bank;每个Bank的容量为1M16位。Bank的地址由BA1和BA0决定,00对应Bank0、01对应Bankl、10对应Bank2、 11对应Bank3。在每个Bank中,分别用行地址脉冲选通RAS和列地址脉冲选通CAS进行寻址。HY57V641620HG的行地址取地址线A0A11位,即RA0RA11;列地址取地址线低8位,即CA0CA7。SDRAM由S3C44B0X专用SDRAM片选信号nSCS0/nGCS6选通,地址空间为0x0C0000000x0C7FFFFF。S3C44B0X与存储器HY57V641620HG的连接方式5. S3C44B0X的中断寄存器包括哪些?采用外部中断方式触发设计3X3键盘,画出接口电路,并给出键盘扫描法。S3C44B0X的中断寄存器包括中断控制寄存器,;中断挂起寄存器;中断模式寄存器;中断屏蔽寄存器;IRQ从群优先级寄存器;IRQ主群优先级寄存器;当前IRQ从群优先级寄存器;当前IRQ主群优先级寄存器;IRQ中断服务挂起寄存器。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2