全部博文(252)
分类:
2012-06-05 21:36:53
相信大多数学习嵌入式linux的朋友都知道,嵌入式linux应用程序开发的基本方法是:先建立交叉编译环境(即宿主机-目标机)模式,然后在宿主机(即PC机,一般在虚拟机上安装linux系统)上编写程序,编译程序,调试程序,最后再将可执行文件“下载”到目标机(即开发板)上运行。这里所说的“下载”,我总结了一下,一共有4种方法:
1、通过FTP传送
2、通过NFS服务共享文件
3、通过串口发送
4、通过U盘拷贝
其中方法4最容易,但操作起来最麻烦,尤其是需要反复下载调试程序的时候,把U盘砸了的心都有了;方法3需要有超级终端(WIN7就悲剧了),速度慢,操作也比较繁琐,因此比较实用也是我使用过的只有方法1和方法2.
这里介绍方法1和方法2的主要步骤:
方法1——通过FTP传送
前提:PC虚拟机上linux系统中安装FTP服务(安装系统的时候可以选择安装,也可以通过单独安装包安装),网线连接PC机和开发板,IP地址配置好在同一网段
主要步骤:
ftp 192.168.1.230 //运行FTP客户端,并连接192.168.1.230开发板,或者也可以分开使用:ftp回车 o192.168.1.230回车,效果一样(我的开发板IP地址为:192.168.1.230)
输入用户名和密码登陆开发板
bin //设置文件格式为二进制
put 目标文件 //发送目标文件
by //关闭FTP程序,个人觉得这条命令及其人性化
然后到开发板上更改目标文件的可执行权限(chmod 755 目标文件),最后./执行就行了
截图如下:
虽然下载一次只需要几条命令,但同样如果反复调试,反复下载的话也让人感觉很烦,因此下面介绍最好用的方法2.
方法2——通过NFS服务共享文件
前提:PC虚拟机上linux系统中安装NFS服务(安装系统的时候可以选择安装,也可以通过单独安装包安装),网线连接PC机和开发板,IP地址配置好在同一网段
接下来就是将PC虚拟机上linux系统中某个文件夹通过NFS服务共享给开发板了,配置如下:
宿主机配置:
配置待共享的目录
vi /etc/exports
有几行就有几个目录需要共享,这里有两个文件夹,路径过后跟的是参数: *(rw,sync,no_root_squash)
*表示所有IP地址,也可以改成某个IP地址或地址段:192.168.1.1;rw表示对该文件夹可读可写;sync表示实时同步该文件夹;no_root_squash表示允许其他的机器用root权限执行NFS目录
配置完成后重启NFS服务即可:service nfs restart 全部都显示OK即NFS启动成功
目标机配置:
目标机只需要将上述加入/etc/exports的文件夹mount给自己即可命令为:
mount –t nfs –o nolock 192.168.1.2:/home/Emberd/NFS_File /mnt
192.168.1.2为宿主机IP地址,-t表示指定待mount的文件类型,-o表示额外的选项,nolock表示不使用文件锁(文件锁这玩意我也没深入了解过,只知道这里把他禁用了就OK)
挂载成功,没有消息就是好消息,以后可以到/home/Emberd/NFS_File中编写代码,编译文件,产生可执行代码,然后在目标机中cd到该文件夹,直接执行即可。
错误信息:
1.如果不使用-o nolock 参数的话,回无法mount,并且要等很久才有错误信息,错误信息如下:
2.如果IP地址填写错,或者宿主机没有启动NFS服务的话会有以下提示: