




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京邮电大学通信与信息工程学院实 验 报 告实验名称: 基于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,这是调试时最常用的一种调试工具。这部分开发过程分成以下几个步骤:1、 在CodeWorrior IDE下新建一个Project;2、 再新建一个Files用于写代码,后缀可以区分是C代码或者是汇编代码;3、 将编好的代码保存并添加进项目,并进行必要的DebugRel Settings设置;4、 用make命令对项目进行编译和链接;5、 将生成的映像文件(工程名.axf)用AXD IDE打开,进行调试。四、 实验过程与关键代码分析实验过程:1、 新建名为q11010320的项目;2、 编写汇编程序并添加至项目,汇编程序编了一个阶乘的程序,将在后面进行汇编语言和C语言混合编程中用到;3、 编写C语言程序并添加至项目,程序通过调用汇编程序实现输出1!+2!+3!+.+10!的结果,见下截图;4、 进行DebugRel Settings的设置,并使用make对项目进行编译和链接;5、 用AXD打开make生成的映像文件(q11010320.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 ;初始化R3loop 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或工作站上,成为宿主机。应用程序的编辑、编译、链接等过程在宿主机上完成,得到可执行文件。应用程序的最终运行平台是和宿主机有很大的差别的嵌入式设备。4、 实验过程与关键代码分析1、 宿主机的环境搭建 实验中在Windows系统上安装VMWare虚拟机,再在虚拟机上安装REDHAT-Linux操作系统。2、 虚拟机中启动Linux操作系统登陆操作系统,用户名root,密码12345678,这时的开发主机就是一个具有双操作系统的机器,对文件和目录的大部分操作可以在熟悉的windows系统下完成,只有代码生成等和Linux系统直接相关的工作才必须在Linux下完成。3、开发工具软件的安装在宿主机上需要建立适合于目标机的交叉编译环境。交叉编译环境的建立最重要的就是要有一个交叉编译器。本次实验用到的编译器是arm-gcc,它是GCC的ARM改版。GCC工具链中通常包含GNU Binutils,GNU GCC,GNU Glibc。Binutils中主要包含链接器ld和汇编器as。GNU Glibc提供了一个C库,使得系统能完成基本的系统调用及其他的一些函数调用。(1) 安装gcc (2)配置PATH路径4、 宿主机上的开发环境配置(1) 配置IP地址 以太网常规配置以太网路由设置界面(2)配置NFS以及相关设置配置好的NFS 至此,交叉开发环境的主机部分配置完成。5、Linux的常用命令(1)文件和目录操作 cd /home 进入 / home 目录 cd . 返回上一级目录 cd ./. 返回上两级目录 cd 进入个人的主目录 cd - 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -a 显示隐藏文件 tree 显示文件和目录由根目录开始的树形结构(1) lstree 显示文件和目录由根目录开始的树形结构(2) mkdir dir1 创建一个叫做 dir1 的目录 mkdir dir1 dir2 同时创建两个目录 mkdir -p /tmp/dir1/dir2 创建一个目录树 rm -f file1 删除一个叫做 file1 的文件 rmdir dir1 删除一个叫做 dir1 的目录 rm -rf dir1 删除一个叫做 dir1 的目录并同时删除其内容 rm -rf dir1 dir2 同时删除两个目录及它们的内容 mv dir1 new_dir 重命名/移动 一个目录 cp file1 file2 复制一个文件 cp dir/* . 复制一个目录下的所有文件到当前工作目录 cp -a /tmp/dir1 . 复制一个目录到当前工作目录 cp -a dir1 dir2 复制一个目录 (2)磁盘管理命令mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 / mnt/hda2 已经存在 umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 / mnt/hda2 退出 fuser -km /mnt/hda2 当设备繁忙时强制卸载 umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用 mount /dev/fd0 /mnt/floppy 挂载一个软盘 mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom5、vi编辑器 (1)工作模式和基本操作Vi是命令行编辑器,有3种工作模式:命令模式、插入模式和编辑模式。命令模式是vi的默认模式,进入vi时,会首先进入命令模式(同时也是编辑模式)。在该模式下可以键入命令来删除、更改、移动文本、定位光标、搜索文本字符串或退出vi编辑器。在命令模式下,所有命令都要以“:”开始,所键入的字符系统均作命令来处理,如“:q”代表退出,“:w”表示存盘。键入i,进入插入模式,这时输入的所有可视字符都添加到文件中,显示在屏幕上。按Esc可回到编辑模式。编辑模式和命令模式类似,都是要输入命令,但它的命令不要以“:”开始,它直接 接受键盘输入的单字符或组合字符命令,如直接按下u就表示取消上一次对文件的修改,相当于windows下的undo操作。编辑模式下有一些命令是要以“/”开始的,如查找字符串string,就输入/string则在文件中匹配查找string字符,在编辑模式下按“:”就进入命令模式。(2) vi的常用命令H:光标左移一个字符;K:光标上移一行;J:光标下移一行;Ctrl+b:向文件首翻一页;Ctrl+f:向文件尾翻一页;Ctrl+u:向文件首翻半页;Ctrl+d:向文件尾翻半页;G:移动到文章的最后;u:取消上一次操作;五、实验小结 通过这次实验,我掌握了嵌入式Linux交叉开发环境的建立方法,同时熟悉了Linux的一些常用命令,掌握了vi编辑器的使用方法。通过实际操作,对嵌入式Linux有了更好的理解,同时将课本上所学到的知识用到了实处,对知识的掌握和理解也上了一个台阶,对我帮助很大。 实验三 嵌入式Linux环境下的程序设计一、实验目的1、掌握嵌入式Linux环境下的程序设计方法2、学习Makefile文件的编写二、实验内容1、熟悉嵌入式教学实验箱的使用2、编写C程序和Makefile文件3、编译程序产生可执行程序4、完成主机的挂载和程序的执行三、实验原理及步骤实验分成以下几个部分:1、 建立工作目录2、 编写程序源程序3、 编写makefile4、 编译应用程序5、 下载调试四、实验过程与关键代码分析1、建立工作目录rootlocalhost root# mkdir hellorootlocalhost root# cd hello2、编写程序源代码 用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:rootlocalhost hello# vi hello.c按“i”进入编辑模式,将上面的代码录入进去,完成后按Esc 键进入命令状态,再用命令“:wq!”保存并退出。这样我们便在当前目录下建立了一个名为hello.c的文件。hello.c源程序:include int main() char name20;scanf(“%s”,name);printf(“hello %s”,name);return 0;3、编写Makefile 要使上面的hello.c程序能够运行,必须要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。使用它带来的好处就是自动编译,只需要敲一个“make”命令整个工程就可以实现自动编译。Makefile源程序:CC= armv4l-unknown-linux-gccEXEC = helloOBJS = hello.oCFLAGS +=LDFLAGS+= staticall: $(EXEC)$(EXEC): $(OBJS)$(CC) $(LDFLAGS) -o $ $(OBJS)clean:-rm -f $(EXEC) *.elf *.gdb *.oMakefile 文件的几个主要部分:CC 指明编译器EXEC 表示编译后生成的执行文件名称OBJS 目标文件列表CFLAGS 编译参数LDFLAGS 连接参数all: 编译主入口clean: 清除编译结果注:“$(CC) $(LDFLAGS) -o $ $(OBJS)”和“-rm -f $(EXEC) *.elf *.gdb *.o”前空白由一个Tab 制表符生成,不能单纯由空格来代替。与上面编写 hello.c的过程类似,用vi来创建一个Makefile文件并将代码录入其中。rootlocalhost hello# vi Makefile4、编译应用程序 在上面的步骤完成后,在hello 目录下运行“make”来编译程序。如果进行了修改,重新编译则运行:rootlocalhost hello# make clean/编译应用程序rootlocalhost hello# make/下载调试注意:编译、修改程序都是在宿主机(本地PC 机)上进行,不能在超级终端下进行。5、下载调试 在宿主PC计算机上启动NFS服务,并设置好共享的目录,(这里将刚生成的根目录/arm2410cl作为共享目录)具体配置参照前面第一章第四节中关于嵌入式Linux 环境开发环境的建立。在建立好NFS共享目录以后,就可以进入超级终端中建立开发板与宿主PC机之间的通讯了。/mnt/yaffs mount -t nfs -o nolock 192.168.0.56:/arm2410cl /host /超级终端中执行。把编译生成的可执行文件复制到该文件夹下,并通过超级终端挂载到开发板上。rootlocalhost hello# cp hello /root/share /虚拟机中/mnt/yaffs mount -t nfs -o nolock 192.168.0.56:/root/share /host /超级终端中再进入/host目录运行刚刚编译好的hello程序,查看运行结果。/mnt/yaffs cd /host /超级终端中/host ./hellohello world(1)在PC计算机上启动NFS 服务,并设置好共享的目录。启动 Red Hat Linux 点击“主菜单”-选择“系统设置”-“服务器设置”-“NFS服务器”-“增加”-“基本”下:点击“浏览”选择“/”下的“arm2410cl/”;“确定”;“主机:1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025黑龙江省总工会选聘直属企业总经理1人笔试历年参考题库附带答案详解
- 2025年甘肃省平凉华亭市山寨回族乡招聘行政村村文书考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025贵州茅台酒厂集团招聘管理人员13人笔试历年参考题库附带答案详解
- 2025贵州六盘水攀登开发投资贸易有限公司面向社会招聘12人笔试历年参考题库附带答案详解
- 2025福建晋江产业集团及下属公司招聘笔试历年参考题库附带答案详解
- 2025湖南长沙长泰智能装备有限公司招聘70人笔试历年参考题库附带答案详解
- 2025广西桂林市恭城瑶族自治县泰源粮油购销公司招聘国有企业工作人员笔试总及考察人员笔试历年参考题库附带答案详解
- 2025内蒙古农牧业融资担保有限公司招聘工作人员10人笔试历年参考题库附带答案详解
- 2025第十师北屯市高层次和急需紧缺人才引才(20人)模拟试卷附答案详解(完整版)
- 2025广西河池市计量测试研究所招聘2人考前自测高频考点模拟试题及答案详解(网校专用)
- 设备类风险辨识培训课件
- 黔菜菜名英译规范
- 神经病学诱发电位技术操作规范2023版
- 2023年高考地理真题 (浙江6月) 【备课精讲精研】 详细评讲
- 结婚函调报告表
- JJG 1036-2022电子天平
- FZ/T 64087-2022木棉纤维絮片
- GB/T 19812.6-2022塑料节水灌溉器材第6部分:输水用聚乙烯(PE)管材
- GB/T 7131-1986裂解气相色谱法鉴定聚合物
- GB/T 11379-2008金属覆盖层工程用铬电镀层
- CSCCP宫颈细胞病理学理论考试题
评论
0/150
提交评论