- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
南邮嵌入式系统B实验报告
南京邮电大学通信与信息工程学院
实 验 报 告
实验名称: 基于ADS开发环境的程序设计
嵌入式Linux交叉开发环境的建立
嵌入式Linux环境下的程序设计
课程名称 嵌入式系统B
班级学号
姓 名
开课时间 2013/2014学年 第2学期
实验一 基于ADS开发环境的程序设计
实验目的
1、学习ADS开发环境的使用;
2、学习和掌握ADS环境下的汇编语言及C语言程序设计;
3、学习和掌握汇编语言及C语言的混合编程方法。
实验内容
1、编写和调试汇编语言程序;
2、编写和调试C语言程序;
3、编写和调试汇编语言及C语言的混合程序;
4、编写程序测试多寄存器传送指令的用法。
实验原理
ADS全称为ARM Developer Suite,是ARM公司推出的新一代ARM集成开发工具。它用于无操作系统的ARM系统开发,是对裸机(可以理解成一个高级单片机)的开发。ADS有极佳的测试环境和良好的侦错功能,它可使硬件开发者更深入地从底层去理解ARM处理器的工作原理和操作方法,为日后自行设计打基础,为BootLoader的编写和调试打基础。
其中的开发环境由CodeWarrior IDE和AXD IDE组成,前者用于提供一个简单通用的图形化用户界面用于管理软件开发项目,后者AXD通常用于调试,默认打开的目标是ARMulator,这是调试时最常用的一种调试工具。
这部分开发过程分成以下几个步骤:
在CodeWorrior IDE下新建一个Project;
再新建一个Files用于写代码,后缀可以区分是C代码或者是汇编代码;
将编好的代码保存并添加进项目,并进行必要的DebugRel Settings设置;
用make命令对项目进行编译和链接;
将生成的映像文件(工程名.axf)用AXD IDE打开,进行调试。
实验过程与关键代码分析
实验过程:
新建名为项目;
编写汇编程序并添加至项目,汇编程序编了一个阶乘的程序,将在后面进行汇编语言和C语言混合编程中用到;
编写C语言程序并添加至项目,程序通过调用汇编程序实现输出1!+2!+3!+......+10!的结果,见下截图;
进行DebugRel Settings的设置,并使用make对项目进行编译和链接;
用AXD打开make生成的映像文件(axf),进行调试并且得出正确结果,见下图。
关键代码:
C中:
extern int factorial(int n);
int i,sum=0;
for(i=1;i11;i++)
{
sum+=factorial(i);
}
汇编中:
factorials MOV R2,R0 ;R2当计数器
MOV R1,#1 ;初始化R1
MOV R3,#1 ;初始化R3
loop CMP R1,R2 ;确定阶乘次数
BHI over
MUL R0,R3,R1 ;一次乘法操作
MOV R3,R0 ;乘一次的结果给R3做下一次的乘项
ADD R1,R1,#1
B loop
over MOV PC,LR
END
五、实验小结
通过这次实验熟悉了ADS开发环境的使用以及CodeWarrior IDE和AXD IDE软件的操作,掌握了在ADS环境下的汇编语言及C语言程序设计的方法,同时在机器上跑了自己写的代码,发现理论和实际还是有差距,一点很小的问题就使得代码无法成功编译,比如循环操作的loop和over必须定格写,开始没有注意这个,代码就一直编译出错,后来改正后就成功得到了结果,这让我体会到细节的重要性。 实验二 嵌入式Linux交叉开发环境的建立
一、实验目的
1、掌握嵌入式Linux交叉开发环境的建立方法
2、学习和掌握Linux常用命令
3、学习和掌握vi编辑器的使用
二、实验内容
1、搭建嵌入式Linux交叉开发环境
2、熟悉Linux的常用命令
3、熟悉vi编辑器的常用命令
三、实验原理
在嵌入式系统开发时,由于嵌入式目标系统的资源有限,无法建立复杂的开发平台,所以通常将开发平台与运行平台分开。开发平台建立在硬件资源丰富的PC或工作站上,成为宿主机。应用程序的编辑、编译、链接等过程在宿主机上完成,得到可执行文件。应用程序的最终运行平台是
文档评论(0)