1 / 12
文档名称:

嵌入式系统ARM实验报告.docx

格式:docx   大小:23KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

嵌入式系统ARM实验报告.docx

上传人:mh900965 2017/6/25 文件大小:23 KB

下载得到文件列表

嵌入式系统ARM实验报告.docx

文档介绍

文档介绍:南京邮电大学通信与信息工程学院
实验报告
实验名称: 实验一基于ADS开发环境的设计
实验二嵌入式Linux交叉开发环境的建立
实验三嵌入式Linux环境下的程序设计



课程名称嵌入式系统B
班级学号 B13010711
姓名马俊民
开课时间 2015/2016学年第1学期
实验一基于ADS开发环境的程序设计
实验目的
1、学****ADS开发环境的使用;
2、学****和掌握ADS环境下的汇编语言及C语言程序设计;
3、学****和掌握汇编语言及C语言的混合编程方法。
实验内容
1、编写和调试汇编语言程序;
2、编写和调试C语言程序;
3、编写和调试汇编语言及C语言的混合程序;
4、编写程序测试多寄存器传送指令的用法。
实验原理
ADS全称为ARM Developer Suite,是ARM公司推出的新一代ARM集成开发工具。,。
ADS用于无操作系统的ARM系统开发,是对裸机(可理解成一个高级单片机)的开发。ADS具有极佳的测试环境和良好的侦错功能,它可使硬件开发工作者更深入地从底层去理解ARM处理器的工作原理和操作方法,为日后自行设计打基础,为BootLoader的编写和调试打基础。

ADS由命令行开发工具、ARM运行时库、GUI开发环境(CodeWarrior和AXD)、实用程序、支持软件等组成。

ADS GUI开发环境包含CodeWarrior和AXD两种,其中Code Warrior是集成开发工具,而AXD是调试工具。
使用汇编语言进行编程简单、方便,适用于初始化硬件代码、启动代码等。
汇编语言具有一些相同的基本特征:
一条指令一行。
使用标号(label)给内存单元提供名称,从第一列开始书写。
指令必须从第二列或能区分标号的地方开始书写。
注释必须跟在指定的注释字符后面,一直书写到行尾。
在ARM汇编程序中,每个段必须以AREA作为段的开始,以碰到下一个AREA作为该段的结束,段名必须唯一。程序的开始和结束需以ENTRY和END来标识。
嵌入式C语言设计是利用基本的C语言知识,面向嵌入式工程实际应用进行程序设计。为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则。ATPCS就是ARM程序和Thumb程序中子程序调用的基本规则。
实验过程与关键代码分析
创建项目工程
在File菜单中选择New命令,打开一个新建工程对话框。在Project选项卡下,选择ARM Executable Image, 然后在Project name文本框里输入项目名称,点击确定。弹出工程窗口。
选择File菜单中的New命令,选择File标签页,在File name文本框中输入要创建的文件名。,。在Location文本框中指定文件的存放位置,选中Add to Project,在Targets中选中DebugRel,单击确定关闭窗口。

AREA EXAMPLE, CODE, READONLY
ENTRY
start
MOV R0, #10
MOV R1, #1
LOOP
MUL R0, R0, R1
SUB R0, R0, 1
CMP R0, #1
BHI LOOP
END
在这个程序中,我们首先对R0和R1赋值,将R0作为一个变量,而R1作为一个存贮阶乘值的寄存器。在每进行一次乘法之后,将R0减1。同时在做完减法后进行判断,如果此时R0大于1,则返回继续乘法,否则结束程序,输出结果。
!+2!+3!+…+10!,代码如下:

AREA JC, CODE, READONLY
EXPORT JCP
ENTRY
JCP
ADD R3, R0, #1
MOV R2, #1
MOV R1, #1
LOOP MUL R0, R1, R2
MOV R1, R0
ADD R2, R2, #1
CMP R2, R3
BNE LOOP
NOP
NOP
MOV PC, LR
END

#include <>
Extern int JCP(int N)
int main()
{
int res=0;
int m=10;
int i;
for (i=1;i<=m;i++)
res=res+JCP(i);
printf(“The result =%d\n”,res

最近更新