ARM嵌入式原理和开发实验报告文档格式.docx

上传人:b****5 文档编号:19974600 上传时间:2023-01-13 格式:DOCX 页数:9 大小:19.95KB
下载 相关 举报
ARM嵌入式原理和开发实验报告文档格式.docx_第1页
第1页 / 共9页
ARM嵌入式原理和开发实验报告文档格式.docx_第2页
第2页 / 共9页
ARM嵌入式原理和开发实验报告文档格式.docx_第3页
第3页 / 共9页
ARM嵌入式原理和开发实验报告文档格式.docx_第4页
第4页 / 共9页
ARM嵌入式原理和开发实验报告文档格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

ARM嵌入式原理和开发实验报告文档格式.docx

《ARM嵌入式原理和开发实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《ARM嵌入式原理和开发实验报告文档格式.docx(9页珍藏版)》请在冰豆网上搜索。

ARM嵌入式原理和开发实验报告文档格式.docx

1.ADS软件的组成

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

2.GUI开发环境

ADSGUI开发环境包含CodeWarrior和AXD两种,其中CodeWarrior是集成开发工具,而AXD是调试工具。

使用汇编语言进行编程简单、方便,适用于初始化硬件代码、启动代码等。

汇编语言具有一些相同的基本特征:

1.一条指令一行。

2.使用标号(label)给内存单元提供名称,从第一列开始书写。

3.指令必须从第二列或能区分标号的地方开始书写。

4.注释必须跟在指定的注释字符后面,一直书写到行尾。

在ARM汇编程序中,每个段必须以AREA作为段的开始,以碰到下一个AREA作为该段的结束,段名必须唯一。

程序的开始和结束需以ENTRY和END来标识。

嵌入式C语言设计是利用基本的C语言知识,面向嵌入式工程实际应用进行程序设计。

为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则。

ATPCS就是ARM程序和Thumb程序中子程序调用的基本规则。

四、实验过程与关键代码分析

1.创建项目工程

在File菜单中选择New命令,打开一个新建工程对话框。

在Project选项卡下,选择ARMExecutableImage,然后在Projectname文本框里输入项目名称,点击确定。

弹出工程窗口。

选择File菜单中的New命令,选择File标签页,在Filename文本框中输入要创建的文件名。

汇编程序以.s结尾,c程序以.c结尾。

在Location文本框中指定文件的存放位置,选中AddtoProject,在Targets中选中DebugRel,单击确定关闭窗口。

2.用汇编语言设计程序实现10的阶乘

AREAEXAMPLE,CODE,READONLY

ENTRY

start

MOVR0,#10

MOVR1,#1

LOOP

MULR0,R0,R1

SUBR0,R0,1

CMPR0,#1

BHILOOP

END

在这个程序中,我们首先对R0和R1赋值,将R0作为一个变量,而R1作为一个存贮阶乘值的寄存器。

在每进行一次乘法之后,将R0减1。

同时在做完减法后进行判断,如果此时R0大于1,则返回继续乘法,否则结束程序,输出结果。

3.用调用子程序的方法实现1!

+2!

+3!

+…+10!

,代码如下:

asmp.s

AREAJC,CODE,READONLY

EXPORTJCP

ENTRY

JCP

ADDR3,R0,#1

MOVR2,#1

MOVR1,#1

LOOPMULR0,R1,R2

MOVR1,R0

ADDR2,R2,#1

CMPR2,R3

BNELOOP

NOP

MOVPC,LR

END

PROGC.c

#include<

stdio.h>

ExternintJCP(intN)

intmain()

{

intres=0;

intm=10;

inti;

for(i=1;

i<

=m;

i++)

res=res+JCP(i);

printf(“Theresult=%d\n”,res);

return0;

}

在这个程序中,主程序由c语言完成作求和,子程序由汇编语言写成作阶乘。

5.实现字符串的逆序复制TEXT1=“HELLO”=>

TEXT2=“OLLEH”

AREAinvstring,CODE,READONLY

start

ADRR1,TEXT1

ADRR2,TEXT2

MOVR3,#0

LDRBR0,[R1],#1

ADDR3,R3,#1

CMPR0,#0

SUBR1,R1,#2

LOOP1

LDRBR0,[R1],#-1

STRBR0,[R2],#1

SUBR3,R3,#1

CMPR3,#1

BNELOOP1

MOVR5,#&

55

TEXT1=“HELLO”,0

ALIGN

TEXT2=“OELLH”

五、实验小结

在这次实验中,学会了如何使用汇编程序进行编程。

对汇编程序编程一些基本的要求有了一定的了解,学习了C语言的语法和在其中调用汇编程序的方法。

学会了利用CodeWarriorIDE开发C和ARM汇编代码。

学会了在AXD中进行代码调试的方法和过程,对AXD的调试有初步的了解。

实验二嵌入式Linux交叉开发环境的建立

一、实验目的

1、掌握嵌入式Linux交叉开发环境的建立方法

2、学习和掌握Linux常用命令

3、学习和掌握vi编辑器的使用

二、实验内容

1、搭建嵌入式Linux交叉开发环境

2、熟悉Linux的常用命令

3、熟悉vi编辑器的常用命令

三、实验原理

Linux系统是UNIX系统的分支,是UNIX的微机版。

Linux具有异常丰富的驱动程序资源,支持各种主流的硬件设备与技术。

Linux包含了现代的UNIX操作系统的所有功能特性,这些功能包括多任务、虚拟内存、虚拟文件系统、进程间通信、对称所处理器、多用户支持等。

Vi编辑器是所有UNIX和Linux下的标准编辑器。

它包含3种工作模式。

嵌入式系统是专用的计算机系统,它对系统的功能、可靠性、成本、体积、功耗等有严格的要求。

大部分嵌入式系统没有大容量存储设备,一般不能安装大型开发软件,系统的开发需要采用交叉开发模式。

四、实验过程与关键代码分析

实验用的是UP-NetARM2410-S试验箱,里面配有三星的芯片S3c2410X。

打开电脑上VMWare软件,在Windows系统下启动虚拟机里的Linux系统。

接着需要

1.宿主机的环境搭建

下载并运行VMWare,根据向导创建一台新虚拟机并选择Linux作为客户操作系统,再根据向导安装RedHatLinux9.0。

2.虚拟机中启动Linux操作系统

使用root登陆,用户名为root,密码为123456。

之后对共享文件设置进行调整:

打开settings界面,打开sharedfolders功能,同时将路径设置到有课前下载的软件的目录下。

3.开发工具软件的安装

(1)安装gcc

打开Linux后,打开终端窗口,在共享的目录下找到install.sh并运行,命令如下:

ls

./install.sh

安装程序将自动建立/arm2410s目录,并将所有的开发软件包安装到/arm2410s目录下,同时自动配置编译环境,建立合适的符号链接。

安装完成后在目录/opt/host/armv4l/bin/下应该能看到主编译器。

(2)配置PATH路径

vi.bash.profile

将里面PATH变量改为PATH=$PATH:

$HOME/bin:

/opt/host/armv41/bin/;

存盘后执行

source.bash_profile

以后armv4l-unknown-linux-gcc将被自动搜索到

4.宿主机上的开发环境配置

(1)配置IP地址

ifconfigeth0192.168.0.121

命令配置了宿主机的IP地址。

然后打开网络配置窗口,重新探测MAC地址。

重新激活。

(2)关闭防火墙

单击“Red”菜单→“系统设置”→“安全级别”→打开“安全级别配置”窗口,选择“无防火墙选项。

(3)配置NFS。

单击“Red”菜单→“系统设置”→“服务器设置”→“服务”,在“服务配置”窗口中勾选nfs,单击“开始”

(4)NFS设置

单击“Red”菜单→“系统设置”→“服务器设置”→“NFS服务器”,打开“NFS服务器配置”窗口,设置NFS共享。

然后在NFS服务器中增加主机IP地址的链接许可和目录。

完成配置。

5.目标机的信息输出

Windows系统下,“开始”→“所有程序”→“附件”→“通讯”→“超级终端”,新建一个通信终端。

区号、电话号码随意输入。

设置每秒位数为“115200”,数据位为“8”,无奇偶校验,停止位为“1”,无数据流控制。

单击“确定”。

6.程序的运行

打开超级终端,启动Linux,屏幕显示:

[/mnt/yaffs]

在超级终端上执行挂载命令:

[/mnt]mount–tnfs192.168.0.121:

/arm2410s/mnt/nfs

挂载成功后可执行程序。

五、实验小结

在这次实验中,学会建立Linux交叉开发环境,学会了ls和vi,cd等常用的Linux命令,并掌握了Vi编辑器的使用方法。

同时知道了如何在搭建失败时寻找错误进行排错。

1、掌握嵌入式Linux环境下的程序设计方法

2、学会编写Makefile文件

1、熟悉嵌入式教学实验箱的使用

2、编写C程序和Makefile文件

3、编译程序产生可执行程序

4、完成主机的挂载和程序的执行

在嵌入式Linux环境下的程序设计方法有一下几个步骤:

1.编写源程序

2.编写Makefile文件

3.编译程序

4.运行和调试程序

5.将生产的可执行文件加入文件系统。

前三个步骤在宿主机上完成,后面的步骤在目标机上完成。

1.建立工作目录

mkdirhello

cdhello

2.编写源程序

用vi编辑器编辑Hello.c文件

viHello.c

在Vi中输入源程序如下:

#include<

main()

{

printf(“helloworld\n”);

}

3.编写Makefile文件

viMakefile

在vi中编辑Makefile文件如下:

CC=armv4l-unknown-linux-gcc

EXEC=hello

OBJS=hello.o

CFLAGS+=

LDFLAGS+=-static

all:

$(EXEC)

$(EXEC):

(OBJS)

$(CC)$(LDFLAGS)–o$@$(OBJS)

clean:

-rm–f$(EXEC)*.elf*.gdb*.o

4.编译程序

在hello目录下运行“make”来编译程序。

makeclean

make

编译成功后,生成可执行文件Hello.o。

5.下载调试

在宿主机上启动nfs服务,并将/arms2410s设置为共享目录。

接下来启动超级终端,建立通讯,挂载。

[/mnt]mount–tnfs192.168.0.121:

挂载成功后,进入/mnt/nfs,再进入/mnt/nfs/hello,直接运行刚刚编译生成的可执行文件Hello.o,查看运行结果

./hello

可以看见“Helloworld”

只需要挂载一次便可,只要实验箱没有重启,就可以一直保持连接。

反复修改、编译、调试,直至程序调试通过。

6.可执行文件加入文件系统

程序调试通过后,可以把可执行文件拖放到usr/bin目录下,然后使用mkcramfs制作工具生成新的文件系统。

当系统启动后,就可以在相应目录下执行可执行程序hello.

在这次实验中,学会了在嵌入式Linux环境下设计程序。

同时知道了如何对目标机进行挂载。

以及如何在发现挂载不成功寻找错误进行修改。

另外在编译文件时需要注意的也都有所了解。

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

当前位置:首页 > 工作范文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1