实验一嵌入式系统设计.docx
- 文档编号:27411242
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:14
- 大小:1.19MB
实验一嵌入式系统设计.docx
《实验一嵌入式系统设计.docx》由会员分享,可在线阅读,更多相关《实验一嵌入式系统设计.docx(14页珍藏版)》请在冰豆网上搜索。
实验一嵌入式系统设计
合肥学院
嵌入式系统设计实验报告
(2013-2014第二学期)
专业:
实验项目:
实验一嵌入式开发环境搭建实验
实验时间:
2014年5月3日
实验成员:
_____
指导老师:
电子信息与电气工程系
2014年4月制
1、实验目的
1、熟悉ubuntu操作系统安装。
2、掌握嵌入式交叉编译环境的搭建。
3、实现在Linux下配置TFTP服务。
4、实现配置NFS服务。
5、实现简单程序开发。
二、实验内容
本实验安装Ubuntu10.04.4操作系统环境,搭建嵌入式交叉编译环境,配置TFTP服务和NFS服务。
学习使用Linux命令,创建一个新目录,并在其中编写hellocxb.c和Makefile文件,学习在Linux下的编程和编译过程。
三、实验设备
硬件:
PC机。
软件:
Ubuntu操作系统。
4、实验过程
1、交叉编译环境的搭建
在Linux平台下,要为开发板编译Bootloader、内核、图形界面Qtopia,还有其他一些应用程序,均需要交叉编译工具链。
把交叉编译器统一为arm-Linux-gcc-4.3.3,安装设置步骤如下:
(1)将光盘目录Linux中的arm-Linux-gcc-4.3.3复制到tmp(filesystem/tmp)文件夹中,执行解压命令,如下图所示命令:
按“回车”进行解压命令,解压完成后如下图所示:
(2)把编译器路径加入系统环境变量,输入下图命令
“回车”后,在最后一行添加如下命令:
ExportPATH=$PATH:
/usr/local/arm/4.3.3/bin
得如下图,保存退出即可。
(3)重新登录系统,使以上设置有效,在命令行中输入#arm-Linux-gcc-v命令,出现如下图所示信息,说明交叉编译环境已经成功安装。
2、TFTP服务配置
(1)安装TFTP软件,输入命令:
#sudoapt-getinstalltftp-hpatftpd-hpa得到下图所示:
(2)建立tftpboot目录,作为服务器的目录
输入命令:
#sudomkdir/tftpboot
释放权限:
(服务器目录,需要设置权限为777,chomd777)
输入命令#sudochmod777/tftpboot
(3)配置TFTP服务器
输入命令:
#sudogedit/etc/default/tftpd-hpa
将原来的内容修改为:
TFTP_DIRECTORY="/tftpboot"
TFTP_OPTIONS="-l-c-s"
进行保存,如下图所示:
(4)重启TFTP服务
输入命令:
#sudoservicetftpd-hparestart
(5)测试TFTP
以此输入一下命令:
#cd/tftpbootecho“hellotftpservice”>>a.txt
Ecoh“hellotftpservice,puttotftpserive”>>b.txt
Tftplocalhost
#tftp>geta.txt
#tftp>putb.txt
#ttfp>quit
配置完成如下图所示:
其中get是取得文件,put是将文件上传到TFTP服务器上。
3、NFS服务配置
(1)Ubuntu上默认是没有安装nfs服务器的,因此要安装nfs服务器端:
输入命令:
#sudoapt-getinstallnfs-kernel-server
得到下图所示:
输入“Y”后得到如下图所示:
(2)配置/etc/export
NFS允许挂载的目录及权限在文件/etc/export中进行了定义。
输入命令:
gedit/etc/exports回车出现下图所示界面,在文件末尾添加
/opt/nfs*(rw,sync,no_root_squash)命令。
如下图所示,进行保存即可:
(3)重启NFS
此时可以运行以下命令来显示一下共享出来的目录:
#showmount-e
或者可以使用以下命令把它挂载到本地磁盘中,例如将/opt/nfs挂载到/mnt下:
#sudomount-tnfslocalhost:
/opt/nfs/mnt
运行df命令看是否挂载成功。
查看后可以使用以下命令卸载:
#sudoumount/mnt
4、常用Linux命令
首先用mkdir建立目录,用rmdir删除目录,用touch新建文件,用rm删除文件,用cp复制文件等等,相应命令及步骤如下列图所示:
5、应用程序开发
(1)建立工作目录
如下图所示输入命令:
如下图所示用命令编写hellocxb.c源代码。
(3)编写makefile
像建立hellocxb.c文件一样建立Makefile文件,操作步骤如下列图所示:
编辑完程序保存即可。
(4)编译应用程序
在上面的步骤完成之后,就可以在hellocxb目录下运行“make”来编译我们的程序了。
5、实验小结
本次实验是嵌入式系统的第一个实验——嵌入式开发环境搭建实验。
首先就是Ubuntu操作系统的安装,虚拟机的安装比较容易,就是傻瓜式的安装,在虚拟机里安装Ubuntu就耗费了很多时间了,老是卡在一个点不动,老半天才动一点,不过庆幸的是最后还是装好了,毕竟这是基础。
因一些应用程序均需要交叉编译工具链,故还搭建了交叉编译环境。
此外通过命令配置了TFTP服务以及NFC服务。
在熟悉Linux的过程中,我们组在终端下试了一些Linux的基本指令,如显示目录内容的ls,建立目录的mkdir,返回上一级目录的cd..等等。
从中感受到Linux的强大,用简简单单的指令就能做出我们想要的效果,实在太神奇了。
在后面的应用程序开发中更是对vi和getit文本编辑器的区别以及程序能够运行所需的Makefile文件有了大致了解,总之这次的实验让我们都获益良多,对嵌入式实验也有了初步的了解,更对以后的接口实验打了基础。
六、思考题
1、Makefile是如何工作的?
其中宏定义分别是什么意思?
makefile关系到了整个工程的编译规则。
一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
Makefile文件作为一种描述文档一般需要包含以下内容:
宏定义
源文件之间的相互依赖关系
可执行的命令
2、Make和Makefile之间的关系?
make一般主要被用来管理一个软件程序项目(用来完成大型软件的自动编译),但是它不仅仅可以用来管理软件程序,还可以做很多其他的事情,比如文件同步等。
makefile是被make使用的“描述”文件,它描述要被make所管理的项目中的文件间的关系(比如对于一个C程序项目来说,.h文件和.c文件之间的关系,.c和.o之间的关系等),和如何维护这个项目的状态(比如对于一个程序项目来说,就有编译可执行文件,产生文档,清除所有除源代码文件之外的文件等).
3、GCC编译器的常用参数有哪些?
它们的功能分别是什么?
(1)gcc-Esource_file.c
-E,只执行到预编译。
直接输出预编译结果。
(2)gcc-Ssource_file.c
-S,只执行到源代码到汇编代码的转换,输出汇编代码。
(3)gcc-csource_file.c
-c,只执行到编译,输出目标文件。
(4)gcc(-E/S/c/)source_file.c-ooutput_filename
-o,指定输出文件名,可以配合以上三种标签使用。
-o参数可以被省略。
这种情况下编译器将使用以下默认名称输出:
-E:
预编译结果将被输出到标准输出端口(通常是显示器)
-S:
生成名为source_file.s的汇编代码
-c:
生成名为source_file.o的目标文件。
无标签情况:
生成名为a.out的可执行文件。
(5)gcc-gsource_file.c
-g,生成供调试用的可执行文件,可以在gdb中运行。
由于文件中包含了调试信息因此运行效率很低,且文件也大不少。
这里可以用strip命令重新将文件中debug信息删除。
这是会发现生成的文件甚至比正常编译的输出更小了,这是因为strip把原先正常编译中的一些额外信息(如函数名之类)也删除了。
用法为stripa.out
(6)gcc-ssource_file.c
-s,直接生成与运用strip同样效果的可执行文件(删除了所有符号信息)。
(7)gcc-Osource_file.c
-O(大写的字母O),编译器对代码进行自动优化编译,输出效率更高的可执行文件。
-O后面还可以跟上数字指定优化级别,如:
gcc-O2source_file.c
数字越大,越加优化。
但是通常情况下,自动的东西都不是太聪明,太大的优化级别可能会使生成的文件产生一系列的bug。
一般可选择2;3会有一定风险。
(8)gcc-Wallsource_file.c
-W,在编译中开启一些额外的警告(warning)信息。
-Wall,将所有的警告信息全开。
(9)gccsource_file.c-L/path/to/lib-lxxx-I/path/to/include
-l,指定所使用到的函数库,本例中链接器会尝试链接名为libxxx.a的函数库。
-L,指定函数库所在的文件夹,本例中链接器会尝试搜索/path/to/lib文件夹。
-I,指定头文件所在的文件夹,本例中预编译器会尝试搜索/path/to/include文件夹。
4、嵌入式系统的定义和特点?
(1)定义:
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
(2)特点:
专用性、可裁剪(资源有限)、可靠性、实时性、低功耗。
5、嵌入式系统硬件和软件有哪些部分组成?
(1)硬件:
微处理器、外围电路和外设。
(2)软件:
设备驱动接口(DDI)、实时操作系统(RTOS)、可编程应用接口(API)、应用程序。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 嵌入式 系统 设计