嵌入式系统开发环境认识、汇编指令实验参考模板.doc

上传人:doc321 文档编号:15003667 上传时间:2022-03-03 格式:DOC 页数:12 大小:167.50KB
返回 下载 相关 举报
嵌入式系统开发环境认识、汇编指令实验参考模板.doc_第1页
第1页 / 共12页
嵌入式系统开发环境认识、汇编指令实验参考模板.doc_第2页
第2页 / 共12页
嵌入式系统开发环境认识、汇编指令实验参考模板.doc_第3页
第3页 / 共12页
嵌入式系统开发环境认识、汇编指令实验参考模板.doc_第4页
第4页 / 共12页
嵌入式系统开发环境认识、汇编指令实验参考模板.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《嵌入式系统开发环境认识、汇编指令实验参考模板.doc》由会员分享,可在线阅读,更多相关《嵌入式系统开发环境认识、汇编指令实验参考模板.doc(12页珍藏版)》请在三一文库上搜索。

1、嵌入式系统实验报告开课学院及实验室:电子楼 618 室 2016年 5 月 23 日学院物理与电子工程学院年级、专业、班电子132姓名黎杰华学号1319200055实验课程名称嵌入式系统实验II成绩实验项目名称嵌入式系统开发环境认识、汇编指令实验指导老师揭海1 / 121、 实验目的熟悉ADS嵌入式系统开发环境和常用汇编指令,编写简单的汇编程序。二、实验内容及原理为了使用CodeWarrior来创建一个应用程序,一般须创建许多文件来构成一个工程(Project)。该工程的设置和所有这些文件的指针都被存放在一个工程文件中。这些设置包括编译和链接设置、源文件、库文件以及它们之间用于产生最终程序的相

2、互关系。可以将这个工程文件看作该工程的大脑:它保存了所有文件相互依存的关系并知道如何将它们组合成为一个可用的应用程序。1、 运行CodeWarrior for ARM Developer Suite点击菜单File/New或工具栏,新建一个工程(project)图 11 新建工程对话框在Location指定工程存储路径,在Project name中输入工程名称,确定后CodeWarrior将在指定位置创建与工程名称同名的文件夹,并在其中创建同名的工程文件,后缀为.mcp。图 12 显示工程信息的工程窗口(图示为空的情况)2、 编辑源代码点击工具栏的,新建文本文件;或者用其它文本编辑器(Note

3、pad或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将文件保存在前面新建的工程的文件夹中,保存时注意要输入适当的扩展名(.s、.c或.h等)。3、 添加程序文件至工程点击菜单Project / Add Files或在工程窗口空白处右键,在

4、出现的对话框中选择前面保存的程序源文件。如果有多个文件,则重复本步骤直至所需文件全部添加进工程中。4、 编译和链接在正式开始编译源代码之前,首先定制 CodeWarrior 的编译方式。图 13 定制 CodeWarrior 的编译方式在出现的对话框中(如图1-4),点击左边列表框内Language Settings中的ARM Assembler,在右边的Target选项卡,设定合适的处理器内核型号。如果需要,对ARM C Compiler、ARM C+ Compiler、Thumb C Compiler和Thumb C+ Compiler都可以做类似设置。点击OK或Apply使设置生效。图

5、14 编译方式设置对话框点击菜单Project / Make ,或工程窗口中的,或按F7,编译工程。在图1-5所示的窗口中可以看到是否工程是否有错误。若有,双击某个错误即可定位到错误位置进行修改。图 15 编译结果窗口5、 调试(Debug)调试就是在的程序代码中找到一个问题并着手去解决它的过程。不管是谁,在编程时都难免出现一些输入或程序逻辑上的错误,这个问题可能只是一个输入上的小错误或者只是一个变量用错了,但是因为这个错误的存在使得你的程序无法实现预期的功能。有时候会更糟糕,以致机器都崩溃了。这时就必须借助调试来解决问题。点击菜单Project / Debug ,或工程窗口中的,或按F5,启

6、动AXD调试环境。点击菜单Options / Configure Target ,选择合适的仿真器。本实验没有连接真正的硬件仿真器,因此选择ARMUL。图1-6中后两项需要首先安装相应的仿真器驱动程序,然后点击Add,在驱动程序安装文件夹中找到相应的dll文件,添加进来。图 16 仿真器设置对话框若AXD启动时出现错误对话框,应当首先检查此处仿真器选择是否有误。双击某个仿真器,在出现的对话框(如图1-7)中可以设置处理器内核型号。图 17 仿真器设置对话框一般情况下,可以点击工具栏中的和 ,打开寄存器和存储器监视窗口。双击某个寄存器或存储器单元可以修改其值;右键选择Format,可以改变显示进

7、制;对于存储器可以输入要监视的单元地址并回车,有多个选项卡,可以同时监视多片存储区;右键选择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;调用子程序POWHALT B HAL

8、TPOW 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(LR)、R15(P

9、C)以及存储器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,=COUNT LDR

10、 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_EN

11、D;然后立即返回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次方。六、实验结果及分析ADS编译连接程序的步骤:点击菜单Options / Configure Target ,选择合适的仿真器。本实验没有连接真正的硬件仿真器,因此选择ARMUL,双击ARMUL仿真器,在出现的对话框中设置处理器内核型号。第一个程序为R0循环从010重复计数,第二个程序为计算9的8次方。第二个程序中要使用堆栈的原因为:保存现场,防止接下来执行的程序段改变被保存寄存器内的值。

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1