嵌入式系统ARM实验报告_第1页
嵌入式系统ARM实验报告_第2页
嵌入式系统ARM实验报告_第3页
嵌入式系统ARM实验报告_第4页
嵌入式系统ARM实验报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南京邮电大学通信与信息工程学院实验报告实验名称:实验一 基于ADS开发环境的设计实验二嵌入式Linux交叉开发环境的建立 实验三 嵌入式 Linux 环境下的程序设计课程名称嵌入式系统B班级学号B13010711姓 名马俊民开课时间2015/2016学年 第1学期实验一 基于 ADS 开发环境的程序设计一、实验目的1、学习 ADS 开发环境的使用;2、学习和掌握 ADS 环境下的汇编语言及 C 语言程序设计;3、学习和掌握汇编语言及 C 语言的混合编程方法。二、实验内容1、编写和调试汇编语言程序;2、编写和调试 C 语言程序;3、编写和调试汇编语言及 C 语言的混合程序;4、编写程序测试多寄存

2、器传送指令的用法。三、实验原理ADS全称为ARM Developer Suite,是ARh公司推出的新一代 ARM集成开发 工具。现在常用的ADS版本是ADS1.2,它取代了早期的ADS1.1和ADS1QADS用于无操作系统的ARM系统开发,是对裸机(可理解成一个高级单片机) 的开发。ADS具有极佳的测试环境和良好的侦错功能,它可使硬件开发工作者更 深入地从底层去理解 ARM处理器的工作原理和操作方法,为日后自行设计打基 础,为 BootLoader 的编写和调试打基础。1. ADS软件的组成ADS由命令行开发工具、ARM!行时库、GUI开发环境(CodeWarrior和AXD、 实用程序、支

3、持软件等组成。2. GUI 开发环境ADS GUI开发环境包含 CodeWarrior和AXD两种,其中Code Warrior是集 成开发工具,而AXD是调试工具。使用汇编语言进行编程简单、方便,适用于初始化硬件代码、启动代码等。 汇编语言具有一些相同的基本特征:1. 一条指令一行。2. 使用标号( label 、给内存单元提供名称,从第一列开始书写。3. 指令必须从第二列或能区分标号的地方开始书写。4. 注释必须跟在指定的注释字符后面,一直书写到行尾。在ARME编程序中,每个段必须以AREA乍为段的开始,以碰到下一个AREA 作为该段的结束,段名必须唯一。程序的开始和结束需以ENTR郴EN

4、D来标识。嵌入式C语言设计是利用基本的C语言知识,面向嵌入式工程实际应用进行 程序设计。为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为 子程序之间的调用规定一定的规则。 ATPCSft是ARM程序和Thumb程序中子程序 调用的基本规则。四、实验过程与关键代码分析1. 创建项目工程在File菜单中选择New命令,打开一个新建工程对话框。 在Project选 项卡下,选择 ARM Executable Image, 然后在 Project name 文本框里输入项目名称,点击确定。弹出工程窗口。选择File菜单中的New命令,选择File 中输入要创建的文件名。 汇编程序以 .s

5、结尾, 文本框中指定文件的存放位置,选中 Add to标签页,在 File name 文本框 c 程序以 .c 结尾。 在 LocationProject ,在 Targets 中选中DebugRel,单击确定关闭窗口。2. 用汇编语言设计程序实现 10 的阶乘AREA EXAMPLE, CODE, READONLYENTRY startMOV R0, #10MOV R1, #1LOOPMUL R0, R0, R1SUB R0, R0, 1CMP R0, #1BHI LOOPEND在这个程序中,我们首先对R0和R1赋值,将R0作为一个变量,而R1作为一个存贮阶乘值的寄存器。在每进行一次乘法之后

6、,将R0减1。同时在做完减法后进行判断,如果此时R0大于1,贝U返回继续乘法,否则结束程序,输出结果3. 用调用子程序的方法实现1!+2!+3!+10!,代码如下:asmp.sAREA JC, CODE, READONLYEXPORT JCPENTRYJCPADDR3, R0, #1MOVR2, #1MOVR1, #1LOOP MULR0, R1, R2MOVR1, R0ADDR2, R2, #1CMPR2, R3 BNELOOP NOPNOP MOVPC, LRENDPROGC.c#include Extern int JCP(int N) int main()int res=0;int m

7、=10;int i;for (i=1;iTEXT2=“OLLEH” AREA invstring, CODE, READONLY startADRR1,TEXT1ADRR2,TEXT2MOVR3,#0LOOPLDRBR0, R1, #1ADDR3,R3, #1CMPR0, #0BNELOOPSUBR1,R1,#2LOOP1LDRB R0,R1, #-1STRB R0,R2, #1SUBR3,R3,#1CMPR3,#1BNELOOP1MOVR5,#&55TEXT1=“HELLO”, 0ALIGNTEXT2=“OELLH”END五、实验小结 在这次实验中,学会了如何使用汇编程序进行编程。对汇编程序

8、编程一些 基本的要求有了一定的了解,学习了 C 语言的语法和在其中调用汇编程序的方 法。学会了利用CodeWarrior IDE开发C和ARM匚编代码。学会了在AXD中进行 代码调试的方法和过程,对AXD的调试有初步的了解。实验二 嵌入式 Linux 交叉开发环境的建立一、实验目的1、掌握嵌入式 Linux 交叉开发环境的建立方法2、学习和掌握 Linux 常用命令3、学习和掌握 vi 编辑器的使用二、实验内容1、搭建嵌入式 Linux 交叉开发环境2、熟悉 Linux 的常用命令3、熟悉 vi 编辑器的常用命令 三、实验原理Linux系统是UNIX系统的分支,是UNIX的微机版。Linux具

9、有异常丰富的 驱动程序资源,支持各种主流的硬件设备与技术。Linux包含了现代的UNIX操作系统的所有功能特性,这些功能包括多任务、虚拟内存、虚拟文件系统、进程 间通信、对称所处理器、多用户支持等。Vi编辑器是所有UNIX和 Linux下的标准编辑器。它包含 3种工作模式。 嵌入式系统是专用的计算机系统,它对系统的功能、可靠性、成本、体积、 功耗等有严格的要求。 大部分嵌入式系统没有大容量存储设备, 一般不能安装大 型开发软件,系统的开发需要采用交叉开发模式。四、实验过程与关键代码分析实验用的是UP-NetARM2410-S试验箱,里面配有三星的芯片 S3c2410X 打开电脑上VMWar软件

10、,在 Windows系统下启动虚拟机里的 Linux系统。接着需要1. 宿主机的环境搭建下载并运行 VMWar,e 根据向导创建一台新虚拟机并选择 Linux 作为客户操 作系统,再根据向导安装 RedHat Linux 9.0 。2. 虚拟机中启动 Linux 操作系统使用 root 登陆,用户名为 root ,密码为 123456。之后对共享文件设置进 行调整:打开 settings 界面,打开 shared folders 功能,同时将路径设置到有课前下载的软件的目录下3. 开发工具软件的安装( 1)安装 gcc打开 Linux 后,打开终端窗口,在共享的目录下找到 install.sh

11、 并运行, 命令如下:ls. / install.sh安装程序将自动建立 /arm2410s 目录,并将所有的开发软件包安装到 /arm2410s 目录下, 同时自动配置编译环境, 建立合适的符号链接。 安装完 成后在目录 /opt/host/armv4l/bin/ 下应该能看到主编译器。(2)配置PATH路径vi .file将里面 PATH变量改为 PATH=$PATH:$HOME/bin:/opt/host/armv41/bin/;存盘后执行source .bash_profile以后 armv4l-unknown-linux-gcc 将被自动搜索到4. 宿主机上的开发环境

12、配置( 1 )配置 IP 地址ifconfig eth0 21命令配置了宿主机的IP地址。然后打开网络配置窗口,重新探测MAC地址。重新激活。( 2)关闭防火墙单击“ Red菜单一“系统设置安全级别” 一打开“安全级别配置”窗 口,选择“无防火墙选项。 ”( 3)配置 NFS。单击“ Red菜单一“系统设置服务器设置服务”,在“服务配 置”窗口中勾选 nfs ,单击“开始”(4) NFS设置单击“ Red菜单一“系统设置服务器设置NFS服务器”,打开 “ NFS服务器配置”窗口,设置 NFS共享。然后在NFS服务器中增加主机IP地址的链接许可和目录。完成配置。5. 目标机

13、的信息输出Windows系统下,“开始所有程序附件通讯超级 终端,新建一个通信终端。区号、电话号码随意输入。设置每秒位数为 “115200,数据位为“ 8,无奇偶校验,停止位为“ 1,无数据流控制。单 击“确定。6. 程序的运行 打开超级终端,启动 Linux ,屏幕显示:/mnt/yaffs在超级终端上执行挂载命令:/mnt mount - t nfs 21:/arm2410s /mnt/nfs 挂载成功后可执行程序。五、实验小结在这次实验中, 学会建立 Linux 交叉开发环境, 学会了 ls 和 vi ,cd 等常用 的 Linux 命令,并掌握了 Vi 编辑器的使

14、用方法。同时知道了如何在搭建失败时 寻找错误进行排错。实验三 嵌入式 Linux 环境下的程序设计一、实验目的1、掌握嵌入式 Linux 环境下的程序设计方法2、学会编写 Makefile 文件 二、实验内容 1、熟悉嵌入式教学实验箱的使用 2、编写 C 程序和 Makefile 文件3、编译程序产生可执行程序4、完成主机的挂载和程序的执行 三、实验原理在嵌入式 Linux 环境下的程序设计方法有一下几个步骤: 1. 编写源程序2. 编写 Makefile 文件3. 编译程序4. 运行和调试程序5. 将生产的可执行文件加入文件系统。 前三个步骤在宿主机上完成,后面的步骤在目标机上完成四、实验过

15、程与关键代码分析1. 建立工作目录 mkdir hello cd hello2. 编写源程序用 vi 编辑器编辑 Hello.c 文件 vi Hello.c在 Vi 中输入源程序如下: #include main()printf( “hello world n” );3编写 Makefile 文件vi Makefile在 vi 中编辑 Makefile 文件如下:CC= armv4l-unknown-linux-gccEXEC = helloOBJS = hello.o CFLAGS += LDFLAGS+= -static all: $(EXEC) $(EXEC): (OBJS)$(CC)

16、$(LDFLAGS) - o $ $(OBJS)clean :-rm f $(EXEC) *.elf *gdb *.o4. 编译程序在hello目录下运行“ make来编译程序。make cleanmake编译成功后,生成可执行文件 Hello.o 。5. 下载调试在宿主机上启动 nfs 服务,并将 /arms2410s 设置为共享目录。 接下来启动超 级终端,建立通讯,挂载。/mnt mount - t nfs 21:/arm2410s /mnt/nfs挂载成功后,进入/mnt/nfs ,再进入/mnt/nfs/hello,直接运行刚刚编译生成的可执行文件 Hello.o ,查看运行结果cd hello . /hello可以看见“ Hello world 只需要挂载一次便可,只要实验箱没有重启,就可以一直保持连接。反复修 改、编译、调试,直至程序调试通过。6. 可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论