网站大量收购闲置独家精品文档,联系QQ:2885784924

山东大学嵌入式实验报告.docVIP

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

嵌入式实验报告

班级:电信工X班姓名:XXX学号XXX

实验一、ARM汇编指令实验-简单数据搬移实验

实验目的:

熟悉实验开发环境,掌握简单ARM汇编的使用方法

实验内容

熟悉开发环境并使用LDR/STR,MOV等指令访问寄存器或存储单元;

使用ADS/SUB/LSL/LSR/AND/ORR等指令完成基本数学/逻辑运算。

实验要求

按照前面叙述介绍的方法,在ADS下创建一个工程asmlabl,定义两个变量x,y和堆栈地址0x1000,将变量x的内容存到堆栈顶,然后计算x+y,并将和存到堆栈的下一个单元。通过AXD查看寄存器和memory和寄存器中数据的变化。

在指令后面加上适当注释,说明指令功能。

指出程序执行后各相关寄存器及存储器单元的具体内容。

程序代码截图如下:

程序运行结果截图:

由实验结果可知堆栈的第二个单元中存放了x+y的值6D

练习题

编写程序实现对一段数据的最大值和最小值有哪些信誉好的足球投注网站,最大值存在于max变量之中,最小值存在于min变量之中。提示:数据的定义采用伪指令:DCD来实现。

基本思路:利用R0做基地址,将R1,R2分别放入第一单元的内容,利用R3做循环计数,利用R4遍历读取第2至最后一个数据,如果R1的数据小于新读入的R4数据则将R4的内容存入R1,如果R2的内容大于R4的内容则将R4的内容存入R2,。遍历完成之后,R1将存放最大数据,R2将存放最小数据。

程序代码截图如下:

程序运行结果截图:

方式调用程序,验证工作的模式,使用寄存器观察切换到不同的工作模式下观察SP(R13)的变化情况。

实验过程中请记录并思考以下内容:

程序复位之后系统处于什么模式?

记录每种模式下的厨师堆栈指针,以及执行R1-R12内容压栈后本模式堆栈相关内存单元的数值。并分析快速中断FIQ模式与其他模式存入的R1-R12有什么不同。

切换成用户模式之后还能否从用户模式切换到其他模式?

用户模式下能否执行堆栈压栈操作?如果能的话,观察用户模式下压栈之前和之后其堆栈区域的变化情况。

观察本程序模式切换过程中SPSR有无变化,并解释其原因。

程序运行结果截图:

程序复位之后系统处于什么模式?

答:程序复位之后系统处于管理模式。

记录每种模式下的初始堆栈指针,以及执行R1-R12内容压栈后本模式堆栈相关内存单元的数值。并分析快速中断FIQ模式与其他模式存入的R1-R12有什么不同。

答:(管理模式)

即管理模式的栈顶指针为0x8240

满递减模式,r1-r12压栈后,管理模式栈顶指针为0x8210相距0x30,压入12个字

(中断模式)

观察r13,中断模式的堆栈地址为0x8340

满递减模式,r1-r12压栈后,中断模式栈顶指针为0x8310,相距0x30,压入12个字

(快速中断模式)

观察r13,快速中断模式的堆栈地址为0x8380

满递减模式,观察运行结果发现,快速中断模式中只有R1-R7压栈了,这是因为在快速中断模式中,可访问的寄存器只有R1-R7,不能访问R8-R12,快速中断模式下有自己的R8-R12。

(中止模式)

观察r13,中止模式的堆栈地址为0x83C0

满递减模式,r1-r12压栈后,中止模式栈顶指针为0x8310,相距0x30,压入12个字

(未定义模式)

观察r13,未定义模式的堆栈地址为0x8400

满递减模式,r1-r12压栈后,未定义模式栈顶指针为0x83d0,相距0x30,压入12个字

(系统模式)

观察r13,系统模式的堆栈地址为0x81C0

满递减模式,r1-r12压栈后,系统模式栈顶指针为0x8190,相距0x30,压入12个字

分析快速中断FIQ模式与其他模式存入的R1-R12有什么不同:

快速中断FIQ模式中:R8~R13都是0。这是因为在快速中断模式中,可访问的寄存器只有R1-R7,不能访问R8-R12,快速中断模式下有自己的R8-R12。

切换成用户模式之后还能否从用户模式切换到其他模式(如系统模式)?

答:在该例程中,由用户模式不可以切换到系统模式。当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源,也不能改变模式,除非异常发生。

用户模式下能否执行堆栈压栈操作?如果能的话,观察用户模式下压栈之前和之后其堆栈区域的变化情况。

答:用户模式下能执行堆栈压栈操作。

未压栈时:用户模式堆栈指针初始值为0X8190

压栈之后,堆栈指针减小0x30,这是因为堆栈设置为满递减模式,所以堆栈指针减小0x30,存放12个字。

观察本程序模式切换过程中SPSR有无变化,并解释其原因。

答:模式切换过程中SPSR无变化,因为在整个切换过程中没有异常发生,所以SPSR无变化。

实验四ARM汇编与C混合编程实验----ARM启动过程控制实验

实验目的

掌握建立基本完

文档评论(0)

188****0197 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档