




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式系统实验报告开课学院及实验室:电子楼 618 室 2016年 5 月 23 日学院物理与电子工程学院年级、专业、班电子132姓名黎杰华学号1319200055实验课程名称嵌入式系统实验II成绩实验项目名称嵌入式系统开发环境认识、汇编指令实验指导老师揭海1、 实验目的熟悉ADS嵌入式系统开发环境和常用汇编指令,编写简单的汇编程序。二、实验内容及原理为了使用CodeWarrior来创建一个应用程序,一般须创建许多文件来构成一个工程(Project)。该工程的设置和所有这些文件的指针都被存放在一个工程文件中。这些设置包括编译和链接设置、源文件、库文件以及它们之间用于产生最终程序的相互关系。可以
2、将这个工程文件看作该工程的大脑:它保存了所有文件相互依存的关系并知道如何将它们组合成为一个可用的应用程序。1、 运行CodeWarrior for ARM Developer Suite点击菜单File/New或工具栏,新建一个工程(project)图 Error! No text of specified style in document.1 新建工程对话框在Location指定工程存储路径,在Project name中输入工程名称,确定后CodeWarrior将在指定位置创建与工程名称同名的文件夹,并在其中创建同名的工程文件,后缀为.mcp。图 Error! No text of spe
3、cified style in document.2 显示工程信息的工程窗口(图示为空的情况)2、 编辑源代码点击工具栏的,新建文本文件;或者用其它文本编辑器(Notepad或EditPlus等),输入以下代码:COUNT EQU 0x40003100 AREA Example1,CODE,READONLY ENTRY CODE32START LDR R1,=COUNT MOV R0,#0 STR R0,R1LOOP LDR R1,=COUNT LDR R0,R1 ADD R0,R0,#1 CMP R0,#10 MOVHS R0,#0 STR R0,R1 B LOOP END将文件保存在前面新
4、建的工程的文件夹中,保存时注意要输入适当的扩展名(.s、.c或.h等)。3、 添加程序文件至工程点击菜单Project / Add Files或在工程窗口空白处右键,在出现的对话框中选择前面保存的程序源文件。如果有多个文件,则重复本步骤直至所需文件全部添加进工程中。4、 编译和链接在正式开始编译源代码之前,首先定制 CodeWarrior 的编译方式。图 Error! No text of specified style in document.3 定制 CodeWarrior 的编译方式在出现的对话框中(如图1-4),点击左边列表框内Language Settings中的ARM Assemb
5、ler,在右边的Target选项卡,设定合适的处理器内核型号。如果需要,对ARM C Compiler、ARM C+ Compiler、Thumb C Compiler和Thumb C+ Compiler都可以做类似设置。点击OK或Apply使设置生效。图 Error! No text of specified style in document.4 编译方式设置对话框点击菜单Project / Make ,或工程窗口中的,或按F7,编译工程。在图1-5所示的窗口中可以看到是否工程是否有错误。若有,双击某个错误即可定位到错误位置进行修改。图 Error! No text of specifie
6、d style in document.5 编译结果窗口5、 调试(Debug)调试就是在的程序代码中找到一个问题并着手去解决它的过程。不管是谁,在编程时都难免出现一些输入或程序逻辑上的错误,这个问题可能只是一个输入上的小错误或者只是一个变量用错了,但是因为这个错误的存在使得你的程序无法实现预期的功能。有时候会更糟糕,以致机器都崩溃了。这时就必须借助调试来解决问题。点击菜单Project / Debug ,或工程窗口中的,或按F5,启动AXD调试环境。点击菜单Options / Configure Target ,选择合适的仿真器。本实验没有连接真正的硬件仿真器,因此选择ARMUL。图1-6中
7、后两项需要首先安装相应的仿真器驱动程序,然后点击Add,在驱动程序安装文件夹中找到相应的dll文件,添加进来。图 Error! No text of specified style in document.6 仿真器设置对话框若AXD启动时出现错误对话框,应当首先检查此处仿真器选择是否有误。双击某个仿真器,在出现的对话框(如图1-7)中可以设置处理器内核型号。图 Error! No text of specified style in document.7 仿真器设置对话框一般情况下,可以点击工具栏中的和 ,打开寄存器和存储器监视窗口。双击某个寄存器或存储器单元可以修改其值;右键选择Forma
8、t,可以改变显示进制;对于存储器可以输入要监视的单元地址并回车,有多个选项卡,可以同时监视多片存储区;右键选择Size可以设置按字节、半字或字显示内容。接下来点击单步运行程序,或者在某条语句标号左边双击设置断点后,点击运行程序,观察寄存器和存储器内容是否符合预期,进而判断错误位置。本实验设定监视寄存器R0、R1和0x40003100存储单元。新建工程,输入以下代码:X EQU 9n EQU 8 AREA Example3,CODE,READONLY ENTRY CODE32START LDR SP,=0x40003F00 LDR R0,=X LDR R1,=n BL POW;调用子程序POWH
9、ALT B HALTPOW STMFD SP!,R1-R12,LR MOVS R2,R1;R2作为计数器 MOVEQ R0,#1;若n为0,结果为1 BEQ POW_END;然后立即返回HALT MOV R1,R0 SUB R2,R2,#1POW_L1 BL DO_MUL;子程序嵌套调用,所以前面要将LR保存在堆栈中 SUBS R2,R2,#1 BNE POW_L1;若计数器不为0,执行一次乘法运算POW_END LDMFD SP!,R1-R12,PC;返回HALTDO_MUL MUL R0,R1,R0 MOV PC,LR END编译后调试,监视寄存器R0、R1、R2、R13(SP)、R14(
10、LR)、R15(PC)以及存储器0x40003EC0,单步或断点运行,观察各处值的变化,分析其原因。三、使用仪器、器材1、硬件平台:无。2、软件开发工具:ADS集成开发环境。 四、实验步骤1、运行CodeWarrior for ARM Developer Suite2、编辑源代码3、添加程序文件至工程4、编译和链接5、调试(Debug)五、实验过程原始数据记录输入程序1:COUNT EQU 0x40003100 AREA Example1,CODE,READONLY ENTRY CODE32START LDR R1,=COUNT MOV R0,#0 STR R0,R1LOOP LDR R1,=
11、COUNT LDR R0,R1 ADD R0,R0,#1 CMP R0,#10 MOVHS R0,#0 STR R0,R1 B LOOP END程序1现象: R0自增,每次自增1,到10时变为0继续自增;输入程序2:X EQU 9n EQU 8 AREA Example3,CODE,READONLY ENTRY CODE32START LDR SP,=0x40003F00 LDR R0,=X LDR R1,=n BL POW;调用子程序POWHALT B HALTPOW STMFD SP!,R1-R12,LR MOVS R2,R1;R2作为计数器 MOVEQ R0,#1;若n为0,结果为1 BEQ POW_END;然后立即返回HALT MOV R1,R0 SUB R2,R2,#1POW_L1 BL DO_MUL;子程序嵌套调用,所以前面要将LR保存在堆栈中 SUBS R2,R2,#1 BNE POW_L1;若计数器不为0,执行一次乘法运算POW_END LDMFD SP!,R1-R12,PC;返回HALTDO_MUL MUL R0,R1,R0 MOV PC,LR END程序2现象:存储器从0x40003F00开始往前存储着R1-R12,LR的数据,最终R0的值为9的8次方。六、实验结果及分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国锑掺杂二氧化锡氧化锡行业运行动态及发展前景分析报告
- 2025-2030年中国酸奶冰淇淋市场运行状况与投资战略研究报告
- 2025-2030年中国造船板市场运行动态规划分析报告
- 2025-2030年中国软体家具制造行业发展现状及前景趋势分析报告
- 2025-2030年中国超高分子量聚乙烯纤维行业竞争策略规划研究报告
- 2025-2030年中国负载均衡器行业运行态势及发展趋势分析报告
- 2025-2030年中国航空飞行培训行业十三五规划与投资战略研究报告
- 2025-2030年中国糖醇市场运营状况及发展前景分析报告
- 2025-2030年中国米香型酒市场发展现状及前景趋势分析报告
- 2025-2030年中国磷石膏行业发展潜力及未来趋势预测报告
- 高三一模“生存与强弱关系思辨”审题立意及范文
- 《电子商务法律法规》电子商务专业全套教学课件
- 《产后出血预防与处理指南(2023)》解读课件
- 全套教学课件《工程伦理学》
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- 清华大学考生自述
- 幼儿园中班绘本:《我喜欢我的小毯子》
- 初中足球选拔测试标准
- 法社会学(上课)
- 沉积学与古地理
- 化工原理课程设计(换热器)
评论
0/150
提交评论