2022年嵌入式系统ARM实验报告 .pdf

上传人:Che****ry 文档编号:27191282 上传时间:2022-07-23 格式:PDF 页数:12 大小:81.71KB
返回 下载 相关 举报
2022年嵌入式系统ARM实验报告 .pdf_第1页
第1页 / 共12页
2022年嵌入式系统ARM实验报告 .pdf_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《2022年嵌入式系统ARM实验报告 .pdf》由会员分享,可在线阅读,更多相关《2022年嵌入式系统ARM实验报告 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、南京邮电大学通信与信息工程学院实验报告实验名称:实验一基于ADS 开发环境的设计实验二嵌入式Linux 交叉开发环境的建立实验三嵌入式Linux 环境下的程序设计课程名称嵌入式系统B 班级学号 B13010711 姓名马俊民开课时间2015/2016 学年第 1 学期名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 实验一基于 ADS 开发环境的程序设计一、 实验目的1、学习 ADS 开发环境的使用;2、学习和掌握ADS 环境下

2、的汇编语言及C 语言程序设计;3、学习和掌握汇编语言及C 语言的混合编程方法。二、 实验内容1、编写和调试汇编语言程序;2、编写和调试C 语言程序;3、编写和调试汇编语言及C 语言的混合程序;4、编写程序测试多寄存器传送指令的用法。三、 实验原理ADS 全称为 ARM Developer Suite ,是 ARM 公司推出的新一代ARM 集成开发工具。现在常用的ADS版本是 ADS1.2 ,它取代了早期的ADS1.1和 ADS1.0 。ADS 用于无操作系统的ARM 系统开发,是对裸机 (可理解成一个高级单片机)的开发。ADS具有极佳的测试环境和良好的侦错功能,它可使硬件开发工作者更深入地从底

3、层去理解ARM 处理器的工作原理和操作方法, 为日后自行设计打基础,为 BootLoader 的编写和调试打基础。1.ADS软件的组成ADS 由命令行开发工具、ARM 运行时库、 GUI开发环境 (CodeWarrior 和 AXD ) 、实用程序、支持软件等组成。2.GUI 开发环境ADS GUI开发环境包含 CodeWarrior 和 AXD两种,其中 Code Warrior 是集成开发工具,而 AXD是调试工具。使用汇编语言进行编程简单、方便,适用于初始化硬件代码、启动代码等。汇编语言具有一些相同的基本特征:1. 一条指令一行。2. 使用标号( label )给内存单元提供名称,从第一

4、列开始书写。3. 指令必须从第二列或能区分标号的地方开始书写。4. 注释必须跟在指定的注释字符后面,一直书写到行尾。在 ARM 汇编程序中,每个段必须以AREA 作为段的开始,以碰到下一个AREA作为该段的结束,段名必须唯一。程序的开始和结束需以ENTRY 和 END 来标识。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - 嵌入式 C语言设计是利用基本的C语言知识,面向嵌入式工程实际应用进行程序设计。为了使单独编译的 C语言程

5、序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则。ATPCS 就是 ARM 程序和 Thumb程序中子程序调用的基本规则。四、 实验过程与关键代码分析1. 创建项目工程在 File菜单中选择 New命令,打开一个新建工程对话框。在Project选项卡下,选择ARM Executable Image, 然后在 Project name文本框里输入项目名称,点击确定。弹出工程窗口。选择 File菜单中的 New命令,选择 File标签页,在 File name 文本框中输入要创建的文件名。 汇编程序以 .s 结尾,c 程序以 .c 结尾。在 Location文本框中指定文件的存放

6、位置,选中Add to Project,在 Targets中选中DebugRel,单击确定关闭窗口。2. 用汇编语言设计程序实现10 的阶乘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,则返回继续乘法,否则结束程

7、序,输出结果。3. 用调用子程序的方法实现1!+2!+3!+ ,+10!,代码如下:asmp.s 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 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - CMP R2, R3 BNE

8、 LOOP NOP NOP MOV PC, LR END PROGC.c #include Extern int JCP(int N) int main() int res=0; int m=10; int i; for (i=1;iTEXT2= “OLLEH ”AREA invstring, CODE, READONLY start ADR R1 ,TEXT1 ADR R2 ,TEXT2 MOV R3, #0 LOOP LDRB R0 ,R1, #1 ADD R3 ,R3 ,#1 CMP R0 ,#0 BNE LOOP SUB R1 ,R1 ,#2 LOOP1 LDRB R0 ,R1, #-

9、1 STRB R0 ,R2, #1 SUB R3 ,R3, #1 CMP R3 ,#1 BNE LOOP1 MOV R5 ,#&55 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - NOP TEXT1 =“HELLO ” ,0 ALIGN TEXT2 =“OELLH ”END 五、实验小结在这次实验中,学会了如何使用汇编程序进行编程。对汇编程序编程一些基本的要求有了一定的了解,学习了C语言的语法和在其中调用汇编程序的方法。学会

10、了利用 CodeWarrior IDE开发 C和 ARM 汇编代码。 学会了在 AXD中进行代码调试的方法和过程,对AXD的调试有初步的了解。,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - 实验二嵌入式Linux 交叉开发环境的建立一、实验目的1、掌握嵌入式Linux 交叉开发环境的建立方法2、学习和掌握 Linux 常用命令3、学习和掌握vi 编辑器的使用二、实验内容1、搭建嵌入式Linux 交叉开发环境2、熟悉 Linu

11、x 的常用命令3、熟悉 vi 编辑器的常用命令三、实验原理Linux 系统是 UNIX系统的分支,是 UNIX的微机版。 Linux 具有异常丰富的驱动程序资源,支持各种主流的硬件设备与技术。Linux 包含了现代的UNIX操作系统的所有功能特性,这些功能包括多任务、虚拟内存、虚拟文件系统、进程间通信、对称所处理器、多用户支持等。Vi 编辑器是所有 UNIX和 Linux 下的标准编辑器。它包含3 种工作模式。嵌入式系统是专用的计算机系统,它对系统的功能、可靠性、成本、体积、功耗等有严格的要求。 大部分嵌入式系统没有大容量存储设备,一般不能安装大型开发软件,系统的开发需要采用交叉开发模式。四、

12、实验过程与关键代码分析实验用的是 UP-NetARM2410-S 试验箱,里面配有三星的芯片S3c2410X 。打开电脑上 VMWare 软件,在 Windows系统下启动虚拟机里的Linux 系统。接着需要1. 宿主机的环境搭建下载并运行 VMWare ,根据向导创建一台新虚拟机并选择Linux 作为客户操作系统,再根据向导安装RedHat Linux 9.0。2. 虚拟机中启动 Linux 操作系统使用 root 登陆,用户名为 root ,密码为 123456。之后对共享文件设置进行调整:打开 settings界面,打开 shared folders功能,同时将路径设置名师资料总结 -

13、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - - - - 到有课前下载的软件的目录下。3. 开发工具软件的安装(1)安装 gcc 打开 Linux 后,打开终端窗口,在共享的目录下找到install.sh并运行,命令如下:ls . / install.sh 安装程序将自动建立/arm2410s 目录,并将所有的开发软件包安装到/arm2410s 目录下,同时自动配置编译环境, 建立合适的符号链接。 安装完成后在目录 /opt/host/armv4l/bi

14、n/下应该能看到主编译器。(2)配置 PATH 路径 vi .bash.profile 将里面 PATH 变量改为 PATH=$PATH:$HOME/bin:/opt/host/armv41/bin/; 存盘后执行 source .bash_profile 以后 armv4l-unknown-linux-gcc将被自动搜索到4. 宿主机上的开发环境配置(1)配置 IP 地址 ifconfig eth0 192.168.0.121 命令配置了宿主机的IP 地址。然后打开网络配置窗口,重新探测MAC 地址。重新激活。(2)关闭防火墙单击“Red ”菜单“系统设置”“安全级别”打开“安全级别配置”窗

15、口,选择“无防火墙选项。 ”(3)配置 NFS 。单击“ Red ”菜单“系统设置”“服务器设置”“服务”,在“服务配置”窗口中勾选 nfs ,单击“开始”(4)NFS设置单击“ Red ”菜单“系统设置”“服务器设置”“NFS服务器” ,打开“NFS服务器配置”窗口,设置NFS共享。然后在 NFS服务器中增加主机IP 地址的链接许可和目录。完成配置。5. 目标机的信息输出Windows系统下, “开始”“所有程序”“附件”“通讯”“超级终端” ,新建一个通信终端。区号、电话号码随意输入。设置每秒位数为“115200” ,数据位为“ 8” ,无奇偶校验,停止位为“1” ,无数据流控制。单击“确

16、定”。6. 程序的运行打开超级终端,启动Linux ,屏幕显示: /mnt/yaffs 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - 在超级终端上执行挂载命令: /mnt mount t nfs 192.168.0.121:/arm2410s /mnt/nfs 挂载成功后可执行程序。五、实验小结在这次实验中, 学会建立 Linux 交叉开发环境, 学会了 ls 和 vi ,cd 等常用的 Linux 命令,并掌握了 Vi 编

17、辑器的使用方法。同时知道了如何在搭建失败时寻找错误进行排错。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - 实验三嵌入式Linux 环境下的程序设计一、实验目的1、掌握嵌入式Linux 环境下的程序设计方法2、学会编写 Makefile 文件二、实验内容1、熟悉嵌入式教学实验箱的使用2、编写 C 程序和 Makefile 文件3、编译程序产生可执行程序4、完成主机的挂载和程序的执行三、实验原理在嵌入式 Linux 环境下的程序

18、设计方法有一下几个步骤:1. 编写源程序2. 编写 Makefile文件3. 编译程序4. 运行和调试程序5. 将生产的可执行文件加入文件系统。前三个步骤在宿主机上完成,后面的步骤在目标机上完成。四、实验过程与关键代码分析1. 建立工作目录mkdir hello cd hello 2. 编写源程序用 vi 编辑器编辑 Hello.c文件vi Hello.c 在 Vi 中输入源程序如下:#include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - -

19、- - - - - - main() printf(“hello world n”); 3编写 Makefile文件vi Makefile 在 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 ”来

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

21、试,直至程序调试通过。6. 可执行文件加入文件系统程序调试通过后,可以把可执行文件拖放到usr/bin目录下,然后使用mkcramfs 制作工具生成新的文件系统。当系统启动后,就可以在相应目录下执行可执行程序 hello. 五、实验小结名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - 在这次实验中, 学会了在嵌入式 Linux 环境下设计程序。 同时知道了如何对目标机进行挂载。 以及如何在发现挂载不成功寻找错误进行修改。另外在编译文件时需要注意的也都有所了解。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - 实验四多线程程序设计一、实验目的1、2、二、实验内容1、2、3、4、三、实验原理四、实验过程与关键代码分析五、实验小结3+ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁