您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 预备实验:交叉编译环境建立
1预备实验:交叉编译环境建立知识点储备:1、熟练掌握shell指令:sudo、cd、ls、tar、pwd、vim、source、export(阅读“Linux系统命令及其使用详解”,完成附录一“Linux指令的随堂测试”)2、掌握添加环境变量的手段(参见附录二“关于在ubuntu下设置环境变量的三种方法”)3、掌握编写Makefile的方法(阅读“跟我一起写Makefile”,完成附录三的“Makefile的随堂测试”)4、关于64位ububuntu12.4系统安装32位依赖库的问题解答见附录四。一、交叉编译的安装步骤:(cd切换工作目录;pwd:查看当前目录路径;exit:退出root)1、将压缩包arm-linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了,我的存放路径是/home/song/software,如下图,记住这个路径,等会还会用到。(cdsong后cdsoftware)2、使用tar命令:tar-zxvfarm-linux-gcc-4.4.3.tar.gz将software文件夹下的arm-linux-gcc-4.4.3.tar.gz解压缩安装到当前目录下如下图通过下图可以看到解压成功了,并且解压后的文件存放在了/home/song/software/opt/FriendlyARM/toolschain/4.4.3文件夹下,如下图所示,这个存放路径可得记住,如下图(jack123@ubuntu:~/song/software/opt$cdFriendlyARMjack123@ubuntu:~/song/software/opt/FriendlyARM$cdtoolschainjack123@ubuntu:~/song/software/opt/FriendlyARM/toolschain$cd4.4.3jack123@ubuntu:~/song/software/opt/FriendlyARM/toolschain/4.4.3$lsjack123@ubuntu:~/song/software/opt/FriendlyARM/toolschain/4.4.3$pwd/home/jack123/software/opt/FriendlyARM/toolschain/4.4.3)2:/home/jack123/software/opt/FriendlyARM/toolschain/4.4.3/bin23、接下来配置系统环境变量,把交叉编译工具链的路径添加到环境变量PATH中去,这样就可以在任何目录下使用这些工具。记下上一步中的安装路径,使用命令:vi/etc/profile编辑profile文件,添加环境变量。(或sudogedit/etc/bash.bashrc:if[-d/home/jack123/software/opt/FriendlyARM/toolschain/4.4.3];thenPATH=/home/jack123/software/opt/FriendlyARM/toolschain/4.4.3/bin:${PATH}fi)(exportPATH=/opt/EmbedSky/4.3.3/bin:$PATH)在profile中最后一行添加:export(此处一个空格接下一行)PATH=$PATH:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin这个路径就是那个bin目录所在的路径,可能你的不一样,按照你实际的目录填就可以了,如下图32行编写完保存就好了4、使用命令:source/etc/profile使环境变量生效5、在终端上输入命令arm-linux再按Tab键,可以看到下图,说明环境变量设置成功了36、使用命令:arm-linux-gcc-v会出现下面的错误提示:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc:15:exec:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc:notfound说是出现这种问题的原因是由于Ubuntu12.04用的是64位的,解决方法就是使用命令:sudoapt-getinstallia32-libs装一些32位的库7、待安装完32位的库之后,再使用命令:arm-linux-gcc-v,这一次就成功了,如下图48、验证,编译一个hello.c文件使用命令:arm-linux-gcchello.c-ohello看是否编译成功可见成功生成了二进制文件。64位:这种情况是因为你的操作系统是Ubuntu64位的,而交叉编译工具链都是32位执行程序。要成功运行这些交叉编译工具链,需要与这些工具链相关的32位库。安装命令如下:1sudoapt-getinstalllibc6:i386libstdc++6:i386libncurses5:i386zlib1g:i3865二、设备驱动的安装在实验之前需要安装两种驱动,分别是USB转串口驱动和USB下载驱动。(1)USB转串口驱动现在很多的电脑都没有串口了,对于我们开发人员来说,只能购买一个USB转串口,本文对USB转串口在ARM开发板上的使用做一个简单的介绍:首先我们需要安装USB转串口的驱动,打开设备管理器,右击端口,选择“更新驱动程序软件”如图所示:会出现如何搜索驱动程序软件?选择“浏览计算机查找”并找到解压后的“USB转串口驱动”目录,选择目录下的,点击进行安装,安装完成即可,若安装不成功则禁用端口,并以管理员身份运行windows7_vista_32_64目录下的进行安装驱动。6安装完成以后,接上USB转串口,这时在我的电脑的设备管理器中,我们可以看到它,如下图所示:这时我们看到的是,但有时候我们看到COM号是大于4的,改成COM1-4,更改方案:7右键端口,选择“属性”选项,点击“端口设置”→“高级”注意左下角的就是我们需要更改的端口号,改成COM1-4任何中的一个。(2)UBS下载驱动插入下载线后,设备管理器会出现其他设备,按以上方面点击右键选择“更新程序软件驱动”选择浏览路径,选择解压后的文件路径到,并安装,选择“始终安装”。8三、代码的编写以及烧录插入USB接口和串口转USB接口,按ARM板上RESET键若驱动安装良好,则最上方显示串口名以及连接成功此时出现如图程序按a键进入下载,点击USB下载——uboot——选择对应的二进制文件即可片刻即可下载成功9附录一:随堂练习--linux常用指令1.利用sudo-s指令切换到root用户2.利用pwd显示当前路径3.利用ls-l指令列出当前文件夹下的各个文件的属性4.将路径切换到opt目录之下cd/opt5.在opt目录下新建arm文件夹,并修改属性,使其具有可读写可执行的权限创建文件夹:mkdirarm;具有可读写可执行:sudochmod777/opt/arm6.在arm文件夹下,利用vim编写hello.c文件,输入以下内容,并保存退出Qw保存shift+zz退出7.#includestdio.hmain(){printf(HelloWorld!\n);}8.在opt目录下新建tmp文件夹,将步骤5编写的hello.c文件拷贝到tmp文件夹下:mkdirtmpcp-ihello.c/opt/tmp9.将tmp文件夹压缩为tmp.tgz(#tarcvfztmp.tgztmp)10.删除tmp文件夹rm-rtmp11.将tmp.tgz解压缩到当前文件夹下(tar-zxvftmp.tgz)12.进入tmp文件夹,利用cat、more、less指令查看hello.c,体会区别Cat(#includestdio.hmain(){printf(HelloWorld!\n);})More(同上)less(#includestdio.hmain(){printf(HelloWorld!\n);}hello.c(END))13.利用date指令查看当前的时间六3月422:28:30CST201714.利用date指令设置当前时间date--date12:34:5615.利用ps指令显示当前的进程号PIDTTYTIMECMD5156pts/900:00:00su5157pts/900:00:00bash5312pts/900:00:00ps16.利用Kill指令删除某一运行的进程bash:kill:(456)-NosuchprocessKill对应PIDpkill对应的com17.利用echo指令输出一段字符串“#Itisadd”到hello.c文件中/opt/tmp#echo#Itisaddhello.c输入18.利用export指令查看环境变量$PATHbash:export:`/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games':notavalididentifier19.利用find命令查找/opt目录下所有的c文件/opt/opt/arm10/opt/arm/hello.c/opt/arm/.hello.c.swp/opt/tmp/opt/tmp/hello.c/opt/tmp.tgzfind/opt-name*.c20.用ctrl+c中止进程CTRL-Z和CTRL-C都是中断命令,但是他们的作用却不一样.CTRL-C是强制中断程序的执行,而CTRL-Z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行.21.用mount指令挂载u盘1.在插入U盘前和插入U盘后,都输入同一个命令,检查多了哪个盘cat/proc/partitions这里我发现多了8167827424sdb8177825423sdb1sdb是统称,所以新插入的U盘就是/dev/sdb12.用命令检查新的U盘的文件系统格式root@:8015MB,8015282176bytes247heads,62sectors/track,1022cylinders,total15654848sectorsUnits=sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytesDiskidentifier:0x0001fce0DeviceBootStartEndBlocksIdSystem/dev/sdb1*62156509077825423cW95FAT32(LBA)看到这里是FAT32格式。3.mountmount-tvfat/dev/sdb1/media/usb注意:mount-t按两次tab键会提示输入什么文件系统类型/media/usb是我自己创建的目录4.umount移除//umount/media/usb22.试编写shell指令脚本vimhello.sh进入vim后按i键,然后输入Perlcode?1112#!/bin/bashechoHelloworld!然后shift+z两次(保存)在命令行输入:chmod+xhello.sh(赋予执行权限)运行:./hello.sh附录二:在ubuntu下设置环境变量有三种方法一、临时设置exportPATH=/home/yan/share/usr/local/arm/3.4.1/bin:$PATH二、当前用户
本文标题:预备实验:交叉编译环境建立
链接地址:https://www.777doc.com/doc-4199956 .html