《嵌入式开发环境搭建实验.docx》由会员分享,可在线阅读,更多相关《嵌入式开发环境搭建实验.docx(23页珍藏版)》请在三一办公上搜索。
1、合肥学院嵌入式系统设计实验报告(20 13 - 20旦第2学期)专业: 实验项目:嵌入式开发环境搭建实验实验时间:2014 年 4 月 28 日实验成员:指导老师:电子信息与电气工程系2014年4月制一、实验目的1、了解嵌入式开发的软件工具2、虚拟机VM的安装3、ubuntu操作系统的安装4、Linux 下配置 TFTP5、配置NFS服务6、实现简单应用程序开发二、实验内容首先安装VMware虚拟机,一步一步,比较简单,接着安装ubuntu-10.04.4操作系统环 境,搭建嵌入式交叉编译环境,配置TFTP服务和NFS服务,最后编写简单应用程序,并 且会使用Makefile进行简化,尤其其对于
2、大程序的优越性。三、实验设备硬件:1、pc机软件:1、虚拟机(VMware)2、ARM 的操作系统(ubuntu-10.04.4)四、实验过程1、虚拟机的安装下载虚拟机软件一步一步安装:VMvi/are Worlcstation SetupEnter License Keyoptional You can enter this information later.LiCEnse Key: (XXXXX-XXXXX-XXXXX-XXXXX-XXXXX)ZY3 8 A-AD D 8 7-H 84 RP-QZY7X-XPAZFEnter Skip VMwarrWorkstation 7.1Rests
3、 rt NowRestar t LaterVM/i/are Worlcstation SetupSetup Wizard CompleteThe setup wizard needs to restart your system in order to complete its operationSj dick Restart Now to initiate a reboot or R&start Later if you plan to restart your system later.我们选择了自定义安装,对一些设置进行了自定义:New Virtual Machine WizardWel
4、come to the New Virtual Machine WizardWhat type af ccnfiguratian do you want?Typical (recommended)Create a Workstation 6 .-5-7. k virtual machine in a few easy steps.a Custom (aduanoed)VMware,Workstation 71Create a virtual machine with advanced optionsT such 己w 日 SCSI controller typ巳 virtual disk ty
5、pe snd carnpatibility with older VMware products. Cancel同意我们也设置了密码,有利于安全:以上使我们的操作系统配置,由于不会有很多的内存需要,我们还是多设置了一些。Ubuntu -WorkrtatianFite Edk 站 a W Teom Windown HHp3JWdM 占 r* PowrEd OnA 9 Fawa ite-t3 Ubuntu - Vivi ware Workstali onFile Edit Vi VM TeamWindows Help juLJn 即敏聆口重国有度回整身毋&dflbsrx |疗 Ham* X7 修
6、Poiwed Oflj3 UbuntuB V FavoriUis Vulndows XP Professior j3 UbuntuubuntuinA ddcm the virtuisl screen M?end kegckeE 繇 y Install ie ire taino Lbum.沙:t.切此YZI 3 I|T口uct irrpLit io thd VMdick inside 口r p=Fw Obrl+G.系统配置过程中:E-io- 5FJ3Sa Hujl-fuel futDhsE_v - E-J=d.lD! 14. -HJ 刊Ff 况44 -EQ3 =n w y3ZMZ-L.E 挡 -
7、8H US aMmd MM-=一 J53SSS6W5cldx 金 F.E3sE-tEu-山fl5 4Lu is #日|国-屈nlnlQI-asQ. 一G- .- aTT 昌 M is 主Tr nIEIIJInml一f.ujh4日EE-I。KS蝶根mmunqD101-Tri寸ISHl4I!ia - -32-Laar Jr-is! 1d+-q-lud Ju FPXI -ll.d-H 口二 nd.EEV.LF 口I2、搭建嵌入式交叉编译环境:gwhuigiiMHintu:manjefugubtintuALftficaLoFB Places SEfiemmdo root1 for deftaiLft.
8、Inaicuehubmtu.-S cd/Docuits-basA- EfDMsantu No MKh tile or directoryI Hajouetnubwi u j -S LtID:-: .nt-s uBnpLes-.des-ktop P,:nawh照wmi-q L D&niwt5-prnljiMi-c:C4-4-3-tjir.fz-jehLjtKPtu- -4 tar xvrf amWindD 巧T, r?tUE In 四LT rnmjitr.Ubunlu - VM-.jre.-LslalioflmnuM! pclpr nitvriecy pr*ss CH*Al|-的 UbwluB
9、FzwriteSft WMow 附 We航毋Ub如i is:殖商皿Sidaberx IPlaces t喔 Applications Places System %门3 0 0 maxuehuubuntu:-W 4】 通 Tue Apr 29, 8:32 PM。. ejhlieIiu 。函 maxuehuE Desktop_ File SystemI 回 Network一 Floppy DriveTrashE DocumentsB Music_a| PicturesIS Videos 或 DownloadsFile Edit View Terminal Help opt/FriendlyARH/
10、tDalschain/4.4.3/sliare/doc7pwl./pwl-user O.T-html/ftYZnode.png opt/FriendlyARH/tD0lsch0ir/4.4r3/sliare/dcic/pwUpwl-iJser-Q,7-htnf.l/cla55Pariia_Wat c hd og_L ibra ry_l_lPen din g_E lemen t - htnl 0pt/FriendlyARH/tD0L5chain/4.4 F 3/ sti a re/d oc /pwL/ p wl - u se r - 0.7 - h tml/c la ss Pa rma_Watc
11、hdog_Library_l_lWatchdog, htmlopt/F riendLyAFJ1/t0alschain/4.4一 3/share/dac/pwl/pwl-user-0.7-html/pages.htnl opt/F riendlyARJI/tDalschain/4.4.3/share/dQc/pwl/pwl-user-0.7 - h tml/c la ss Pa ma Wat chdng_Libra ry_l_lHandler. htmlopt/FriendLyAFJl/inalschain/4.4一3/share/dac/pwl/pwl-user-O.T-html/gaph l
12、egend.pn gopt/F riendLyAFJ1/toal5chain/4.4.3/share/dac/pwl/pwl-user-0.7 - h tml/c la ss Pa r ma Wat chdog Library l_lHandler _Furction-members.htmlopt/F r 1 e nd ly ARfl/t do Is c ha in /4.4.3/ghare/dcK7ptfl7pwl-iiser-o. 7-htnfil/classPama Wat chdog Library 1 lDoubly Linked object, htmlopt/F rieidly
13、ARMHD0chain/,4. L s/share/doc/pwl/pwl-user-o .7-htiril/classPama Wat chdog Library l_inandler Flag.litirlopt/F riendlyARM/tDalschain/. L 3/sfiare/doc/pwl/pwl-user-0 .T-html/classPama Wat c hd ogL Lb ra rv_l_lE List-neinbers.h tmlopt/FriendlyARii/toalschain/4. .3/sfiare/doc/pwUpwl-user-0.7-htriUdoxyg
14、en. png opt/FriendLyARM/tDalschain/ .1.3/sfiare/doc/pwl/fdl.ps.gz opt/FriendlyAFJl/tDalschain/ .3/share/doc/pwUpwl-user-0.7.ps.gzopt/FriendlyARM/tDalschain/ .4.3/sfiare/doc/pwl;gpl.txtopt/FriendLyARM/toalschain/ .4.3/sfiare/doc/|pwV/README opt/FriendlyARM/tDalschaLn/4.4.3/sliare/doc/pwL/pwl-user O.T
15、.pdt opt/FriendlyARM/tDalschain/4.4.3/sfiare/doc/pwL;gpl.ps.gz opt/FriendlyARH/tDalschain/4.4.3/3liare/acLocaUopt/F riend LyARN Ado la chain /4.4.3/ sha re/ncl ocd 1/ ppl_c k m4opt/FriendlyARM/tD0lsch0ir/4.4r3/5fiare/acLocaUppl.i4 msxuehuubuntu;smasuehiu - File Browser 也maxuehuuburrtu:-Plain Text t
16、Tab Width: B t Ln L Col 1INS应用程序 位暨 系琉*) ? 雨* 邕5用日星期六上午5:33 处 .2砒 03 Q Q rootubuntu: *文件(F)编it(E)查看(V)堵端(T)蒂助(H)roatPubuntu:fi arm-1inux-gcc -vUsing built-in specs.Target: arm-nDne-liriux-gnueabiConfigured with: /opt/FriendlyARM/mini?44D/buiild-tQQlschain/working/src/gcc-4l .4.3/configure - -build=i
17、3B6- build_redhat-Linux-gnu -ha&t-i366-build_redhat- ll inux-gnu -target=arm-none-Linux-gnueabi -prefix=/opt/FriendlyARMHoDlschainl /4. 4.3 -with-sysroot=/opt/FriendlyARB/toDlchain/A. 4. S/arin-none-lLnuK-gnueabl i/5ys- root -enable-languages=c, C+ - -disable-mjltikib -with-arch=anrv41 - -1 with-cpu
18、=ar(i9?0t -with-tun&=arm920t -with-flaat=soft -with-pkgversion=ctngl -1.6.1 - -disable-sjIj-exceptions -enable-_cxa_atexit - -with-gmp=/opt/Friendl 1/ARM/toolschainM. 4.5 - -with-mpf r=/opt/rrienidlyARri/toolschain/4.4.5 -with-pl pl=/opt/FriendlyAFIM/taolschain/4.4一3 -with-clDog=opt/FriendlyARM/tDol
19、schainl /4.4.3 -with- mpc=/opt/ FriendlyARJI/toQl.schain/4.4.3 -with-local-prefix-/opt, FriendlyARJ1/tDolschain/4.4.3/arm-none-Linux-gnueabi/sys-root -disable-nls -I -enable-threads=posix -enable-symvers=gnu -enable-c99 -enable-long-long -I enable-target-op tspaceThread model: pasixgcc version 4.4.3
20、 (ctng-1.6.1) rooteubuntu: t |03 rootubuntu:3、Linux 下配置 TFTP:4胃应用程序位置系统, 2俺$可 m明3日星期六上午5:35 a O nxt O字 rootubuntu:-文件(F)蝙崩E)查看(V)终端(T)帮助(H)enable-ta rget- optspaceThread model: posixgcc version 4.4.3 (ctng-1.6.1)rootubuntu: S sudD apt-get install tftp-tipa tftpd-hpa正在垓取软林包列表,完成正在分析软性包的赦桢关系耕正在诙取状态信息.
21、,完成下列软件包是自动安技的并且现在不需蚩了:linux-headers-2.B.32-58 linux-headers-2.6.32-58-generic使用apt-get autoremove来删除它们建议安装的轼件包:syslinux-comiTion下列【新】软件包将被安装:tftp-hpa tftpd-hpa升税了 0个轼:件包,新安装了 2个较杵包,要卸载a个软件包,有0个软件包未被骨SU需要下就71-4kB的软件包n解压端后会消耕掉2&6kB的额外空间。【警告1 :下列软性包不能诩过股证!tftp-hpa tftpd-hpa|不轮验证就安装这些软杵包吗? WN 回 rDotubu
22、ntu:-4$皮用程序位直未绽功? 西* 0- 亶5第日星盼上午5:叫 t. Q root 0 敏 rootubuntu:-文件(F)蝙辑(E)查看N)终端(T)帮助(H)tttp-hpa tftpd-hpaI不螳验还就安装这些软件包吗? :y/N: y荻取:1 http:/us.archive,ubuntu.ccrn/ubuntu/ lucid-updates/main tftp-hpa 5.0-1 buntu2.1 26.7kB恢取:2 http:/7us. archive, ubuntu.con/ubuntu/ lucid-ipdate&/main tftpd-hpa 5 J, ubun
23、tuz.l 44.BkB下载71.40耗时龄CH.7kB7s正在预设定软件包一诰中了曾被取消选择的软件包Vtp-hpd(正在逸取数据库系统当前堂共安装有147489个文律和目录.)正在解匝蝴 tftp-hpa从./ tftp-hpa_5.0-11 ubuntuZ. 1_i3B6. deb).选中了曾被取消选择的软件包技网曲匚正在解压编 tftpd-hpa(R . Hftpd-hpa_5.0-i lubuntuz. 1.15 0 6.detj .正在处理用于nan db的触发器,.正在处理用于ureadahead的触发器一一ureadaliedd will be reprofiled on ne
24、st reboot 正在设置 tftp-hpa (5.0-11ubuntu2J1) 一一一 正在设置 tftpd-hpa(5.0-1 lubuntuj. 1).tftpd-hpa start/running, process 2138rmtHubuntu: J厂台肥学院portal登陆-性rootubuntu:4胃应片程序位暨系统? 豳* 中-田5月配星期六上午g 勾Qroot O O O rootuburitu:文件(F)编ii(E)查看(V)河幕助(H)下裁 71.4KBf 耗时 5秒(19.7KBS)正在预设定软鞋包.途中了曾被取消选择的软件包tftp-hpaD正在读聆数据库,系统当前也
25、共安装有147489个立性和目录。)正在解压缩 tftp-hpa (从./tftp-hpa 5. 0-11 ubuntu3.1 _i336. deb).迭中了曾被取消选择的软件包tftpd hpafl正在解压缩 tftpd-hpa (从./tftpd-hpa_5. 0 -11 ubuntu!. 1 _i38 6. deb).正在处理用于man-db的触发器.正在处理用于ureadahead的触发器.ureadahead will be reprofiled on next reboot正在设置 t-ftp-hpa (5. 0-11 ubuntu? . 1).正在设置 t-ftpd-hpa (5
26、.0-11ubuntu2.1) . . .|tftpd-hpa start/runningr process 210BrDotubuntu:s sudo mkdir /tTtpbootMir.无法食建目录tftpboDF:文件已存在rootubuntu:ff sudo chmod 111 Ztftpbootrooteubuntu:-ff sudo gedit /etc/default/tftpd-hparootubuntu:-ff sudo service tftpd-hpa restarttftpd-hpa stat/unning, p口皆55 214B1roowubuntu: - f含肥学
27、院portal登陆-隹rootubuntu: 应用程序 位置 系统2 画*司一 血5月3日星期六上午5:46 root 0$ 0 Q rootubuntu: Mpboot文ft(F)编辑(E)查看V)终端(T)帮助(H) 正在解压缩 tftpd-hpa从./tftpd-hpa 5.0-llubuntu2.1 1386.deb).正在处理用于man-db的触发器._正在处理用于uwdahead的触发器,一ureadahead will be reprofiled or next reboot 正在设置 tftp-hpa (5. e-llubuntul.l) 正在设置 tftpd-hpa (5.e
28、-11 ubuntu?.1. tftpd-hpa start/running, process 2108rootubuntu:fi sudo mkdir /tftpfcootmkdir:无怯创建目录h/tftpbootH:文件已存在 rootubuntuzS 5udo chmod 777 /tftpbootrootsubuntu:f sudo gedit 7etc/default/tftpd-hpa rootubuntu:S 5udo service tftpd-hp曰 restart tftpd-hpa start/running, process 2148rootubuntu:fi cd
29、/tftpboot echohello tftp servicea.txtrootubuntu:7tftpbootfi echohello tftp service,put to tftp serviceb.txt rootubuntu:/tTtpboots tTtp localtiost tftp? get a.txt tftp? put b.txtError code B: Permission denied tftp.H 合月肾院 port登陆- 目 rootubuntu: /tftpboot,0应用程序位置系统* ? 直*圳一幽5月3日星期六上午5:48 QnOOt rootubunt
30、u: 文件3)编辑(E)查看W)终端T帮助(H)portmp升媒了 0个软#包,新安装了 6个软件包,要卸栽0个软杵包,有0个软件包未被 | 升山需要下载495罚的软件包。解压编后会消耗掉K532KD的额外空间。您希望蜷续执行吗了 丫/n丫【警告】:下列较祥包不能过验证! litgssgluel libnfsidnap? Librpcsecgss3 portmap nfs-commonInfs-kernel-serverI不经照证就安装这些软件包吗FN y获取:1 http: /us. archive, ubuntu, com/ubunti/ lucid-updates/main libgss
31、gluel 1 .I1 22.7KB获取:2 http: /us. archive.ubuntu, com/ubuntu/ lucid/main libnfsidmap2 0.23-2 I 29.1kB获取:3 http: /us. archive, ubuntu, com/ubunti/ lucid,main librpcsecgss? 8.19-2 33.ikB获取:4 http: u. ichi晚.ubuntiL comiiibuntiiF lucid-updates/main portmap -1ubuntuL2 38JkB藐取:5 http: /us. archive, ubuntu
32、, com/ubuntu/ lucid-updates/maln nfs-common 1:1 1.2.0-4ubuntu4.2 213kBI29% 5 rfs-common 23.1kB/213kB 1Q%|一一*丽合肥字院port登陆- 园 rootubuntu: -|4$应用程序 位置 系统 q 屈 含肥学院portal登陆- 国 rootLrbuntu: /tftpboot4、配置NFS服务:4$应用程序位置系统? 圜* Qnot 3邻 root(ajbunni: 艾件IF) tE(E)查看W;终布L;衲助1H1Icr&ating config tile /etc/idmapd.con
33、f with new versionCreating config tile Zetc/default/nfs-common with new version 正在淬加系藐用户statd (UID 11&).正在将新用户staid (IUD 116)inSffi*nogroup .无法削建主目H/var/lib/nfsstatd start/running, process 2&21gssd stop/pre-start* process 2B44 idnapd stop/pre-start, process 2&70|正在设置 nfs-kernel-server (1 :1.2.9-4dbu
34、nftu4.2J .Creating contig tilE /etc/exports with new ver5ionCreating contig tilE /etc/default/nfs-kernel-server with new version CC-arm-linux-gccEXECniaCELAG5 +- all; S(EXEC)S(EXEC):t(CC (CELAJjS) -0i (EXEC J1 (EXEC).Cclean:rm -f $(exec *.d统文率 跳格兄度:s t 勺m,列暨 渔曲一 卸5月3日星期六上午5如 a Q root同 塑命 rootubuntu:
35、 ytftpbaot文件(F)编辑(E)查看(V)终端:T)帮助(H)正在处理用于man-db的触发器,.正在处理用于ureadahead的触发器.ureadahead will be reprofiled on next reboot正在设置 tftp-hpa (5.0-llubuitL2.1).正在设置 tftpd-hpa (5.0-llubuntu2.1).tftpd-hpa start/running, process 2100rootubuntu: # 5udo mkdi/tflpbcjotmkdir:无法创建目H/tftpboot;文件已存在rootubuntu:ff sudo c
36、hmod 777 Jtttpb口Dtrootflubuntu:fi sudo gedit /etc/default/tftpd-hparootubuntu:5 sudo service tftpd-hpa restart tftpd-hpa start/runningi process 2148.rootubuntu: ff cd /tftpboot echohelLD tftp service a. txtrootubuntu:/tftpboDti echohello tftp service,put to tftp serviceb.txtrootubuntu:/tftpboDtf tft
37、p localhost tftp get a. txt tftp put b. txtError code 0: Permission deniedtftp; quitrootubuntu:/tftpbootfC 应ffl程序 位置系统些?西电 司 亶S月m日星期六上午, a root 0心 raotubuntu:文件(F)蝙g(E)查看V终端T)帮助出)* Exporting directories for NFS kernel daemon.* starting NFS kernel daemon rootflubuntu:f shairfmount -e Fipart list far
38、ubuntu:iaotfiubuntu:i sudo mount -t nfs locfllhasi:/apt/nfs/mntUsage; mount -V; print versionntount -h; print this helpnnunt: list ihounted filesystemsfwunt -1: iden, including volune labelsso far the informational part. Next the mounting.The command is mount -1 fstype samething samewhene1 .Details
39、found in /etc/fstab nay be omitted.ntount -a -1| -0;nountall stuff f roi /etc/ fstabimunt device:nountdevice at the fcnownplaceimunt directory:nountknown device heremount -t type dev dir :ordinary mount commandNote that one does not really mount a device, one mounts a filesystem of the given tyjje)
40、found ar the device.One can also mount an already visible directory tree elsewhere: nnunt -bind olddir newdir or move a subtree:5、实现简单应用程序开发:5应片程序位置再疏* ?5月招星明云上午9:47专画* d-幽。mot WC 9 O max.o (-) - gedit文件(F)编辑(E)查看W)搜索(动工具(T文档D)帮助H)冒皿打厂T兰保存坦冬禽肖哨R *I, max.o K五、实验小结本次实验主要是软件的安装与验证性的实验,自己搭建嵌入式开发环境,在实验中,
41、我 们初次体会了 Linux下的操作环境,以前知识听过,却没有用过,而且我们也学会了虚拟机 的安装,我不仅安装了 ubuntu而且还装了 windows xp,对于一些32位软件的安装还是比较 好的。本次实验中最令我印象深刻的就是错一字,全盘崩溃。又得重新来一次,既浪费时间, 又影响我们的心情。但是就在这样的错误中我们学习的更加深刻。就如在交叉编译环境的搭 建过程中,一个解压命令就出错了好多次,最后那条命令都没背出来了。当然我们经过长期 的操作Linux,慢慢的也熟了一点,希望接下来的实验我们仍然可以很好的完成。六、思考题1、Makefile是如何工作的?其中的宏定义分别是什么意思?答:mak
42、efile是一个文本文件,用于描述程序源代码之间以及程序可执行代码与源代码之间 的依赖关系。为了方便使用不同的编译器或者编译环境以及硬件环境,一些复杂的软件使用 了大量的宏定义来代替诸如“gcc”这样的最基本的东西2、Make和Makefile之间的关系?答:make 一般主要被用来管理一个软件程序项目(用来完成大型软件的自动编译),但是它 不仅仅可以用来管理软件程序,还可以做很多其他的事情,比如文件同步等。makefile是被make使用的“描述”文件,它描述要被make所管理的项目中的文件间的关 系(比如对于一个C程序项目来说,.h文件和.c文件之间的关系,.c和.o之间的关系等), 和如
43、何维护这个项目的状态(比如对于一个程序项目来说,就有编译可执行文件,产生文档, 清除所有除源代码文件之外的文件等).3、GCC编译器的常用参数有哪些?它们的功能分别是什么?答:(1)、-O优化参数。后面可以跟数字表示优化级别-O0表示不优化,-O1,-O2,-O3优 化程度依次递增。大部分平台最高级别是-O3,也就是说3以后的数字基本都没用。另外建 议大家最高只用到-O2。大部分开源操作系统经过千锤百炼都是使用-O2参数编译的。优化 级别开得太高对于调试不利。为了优化,编译器可能会打乱部分代码的顺序,造成我们单步 跟踪的时候会发现在C源代码里乱跳。另外还有一个-Os表示为代码大小进行优化,用它可 以生成尽量短小的机器码。(2)、-E表示仅仅对代码进行预处理不编译。也就是仅仅将头文件包含和宏定义展开。如 果没有用-o指定输出文件则将