执行文件下载到开发板运行

转载 2015年07月08日 17:09:19

Hello,World源代码


按上一篇博文搭建嵌入式开发环境的步骤安装了开发环境,在Ubuntux新建一个文件hello.c,把这个文件将放到


/home/lin/mini2440/examples/hello/目录,其源代码如下:



 


点击看大图


 


首先进入测试程序源代码目录


#cd /home/lin/mini2440/examples/hello/


然后,使用命令行手工编译示例程序


#arm-linux-gcc –o hello main.c


或者借助编译脚本进行编译


#make


最后将生成 hello可执行文件


 


 


将编译好的可执行文件下载到目标板目前主要四种方式:


第一种:复制到介质(如优盘)


第二种:通过网络传送文件到开发板


第三种:通过串口传送文件到开发板


第四种:通过NFS(网络文件系统)直接运行


下面分别进行介绍:


 


一、   使用U


(1)由于使用的Linux系统是Ubuntu(8.10),对U盘是自动挂载的,所以不用像很多书上写的那样用mount命令挂载U盘。


512M的U盘插到PC机后,就直接自动挂载到/media/disk-1。


#sudo cp /home/lin/mini2440/examples/hello /media/disk-1


#umount /media/disk-1;卸载U盘


 


umount 时出现 "Device is busy" 解决办法可以参考下面网址


http://www.lirui.name/post/151.html


最简单的办法当然是直接把U盘拔了。


 


(2)把程序从U盘拷贝到目标板并执行


把优盘插入到开发半的USB Host接口,优盘会自动挂载/udisk目录,命令如下:



 


点击看大图 


 


二、使用FTP传送文件


        方法:使用ftp登录目标版,把编译好的程序上传;然后修改上传后目标板上的程序的可执行属性,并执行。


 


(1)PC机网口和目标板(友善之臂)的网口连接。


(2)在Ubuntu的终端执行


     ifconfig     ;确认目标开发板的IP地址是多少 (192.168.1.230)


 



点击看大图


 


(3)hello文件在/home/lin/mini2440/examples/hello


文件夹里,所以先进入这个文件夹


cd  /home/lin/mini2440/examples/hello


 



点击看大图


 


(4) 然后,在目标板终端(2440开发板所对应的Windows下面的超级终端或Linux下面的minicom串口接收)执行命令如下图所示:



 


点击看大图 


 


三、通过串口传送文件到开发板


        linux下的minicom相当于windows下面的超级终端,minicom没有自己单独的界面,而是在Linux的“终端”显示。


 


        在PC机的Ubuntu终端安装mincom


(1) minicom安装


#sudo apt-get install minicom


 


(2)minicom设置


#minicom -s



 



 


(3) 选择“串口设置”


        在键盘按下A,选择修改“串口设备”,这项默认为/dev/ttyS8,修改为/dev/ttyS0 表示是串口1,如果使用串口2,修改为/dev/ttyS1。将选项E的值设置为115200,将选项F设置为NO(请根据实际情况配置)


 



点击看大图


 


(4)“选择文件名和路径”,设置上传下载的文件夹路径。


 



点击看大图


 


       按回车退出 “选择文件名和路径“设置,要记住要保存mini的设置“设置保存为dfl”,不然的话,下次使用minicom的时候就要重新设置。“退出”,就能退出minicom的设置,进入minicom的主界面。“退出minicom”,就是退出Minicom,回到终端。


 


(5) PC机上传文件到开发板
       在开发板终端上先进入/tmp 目录,然后输入 rz。
       按Ctrl-A,再按s,会出现一个选择传输协议的菜单选项(zmodem/ymodem/xmodem/lermit/ascii),



 


                          


 


(6)选择zmodem,会出现下面要选择上传文件的列表,选择要上传的的文件hello


 



点击看大图


 


按下回车后没有反应,ctrl+c退出,发现tmp文件夹里面没有hello,也就是没有上传,这是因为mincom不带xmodem和zmodem之类的协议,所以需要安装lrzsz这个软件,否则就会遇到传输不了文件或者timeout之类的错误。


 #sudo apt-get install lszsz


下载和解压lrzsz后,进入目录执行 ./configure --prefix=/usr/local/lrzsz ,然后make,make install 最后建立软链接


#cd /usr/bin
#ln -s /usr/local/lrzsz/bin/lrz rz
#ln -s /usr/local/lrzsz/bin/lsz sz


 


(7) 重复上面的minicom的操作,这次会传输成功



 



 


 


(8)传输完成后便可以在开发板的/tmp目录下找到这个文件了。


 



点击看大图


 


(9)在开发板终端进入/tmp目录


[root@FriendlyARM/]# cd /tmp


 


(9)修改文件的属性


记得传送完毕把文件的属性改为可执行才能正常运行。(好像不用也行)


[root@FriendlyARM/tmp]#chmod +x hello


 


(10)执行程序


 [root@FriendlyARM/tmp]# ./hello


Hello,FriendlyARM!


 


参考资料:


1)嵌入式linux系统与主机通过串口传输文件


http://hi.baidu.com/path_of_growth/blog/item/23ecd1fd6a80bbf4fd037f33.html


2)minicom,ckermit两个超级终端


http://hi.baidu.com/path_of_growth/blog/item/23ecd1fd6a80bbf4fd037f33.html


 


 


四、通过网络文件系统NFS执行


nfs原理:通过网络,将远程主机共享的文件系统,挂载到本机。这种模式的好处是减少映像文件的下载次数和对flash的烧写次数。对于缩短开发周期,提高开发效率很有好处。虽然下载hello程序用不了多久,但一旦应用程序变得越来越大,NFS运行的方便就能显现。


(1)在电脑服务器端下载并安装nfs

$ sudo apt-get install nfs-kernel-server portmap

(2)配置共享文件

    设置服务器端(电脑)上一个文件夹作为共享文件夹,以后客户端(开发板)将通过网络文件系统NFS访问这个文件夹。我这里把/home/lin/NFSshare作为共享目录。

打开配置文件
$ sudo gedit /etc/exports

将下面这句话添加在这个文件最后。
/home/lin/NFSshare *(rw,sync,no_root_squash)
 


     /home/lin/NFSshare是服务器端(电脑)共享的文件夹,需要把执行文件hello复制到此文件夹里。


     注意NFSshare与*之间一定要有空格。而*号与后面就没有空格。*号代表ip地址。*代表允许所有的网络段访问,括号中rw代表可读写,sync未知,no_root_suqash意思是以root权限访问该共享文件夹。

(3)重启NFS服务

sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-kernel-server restart


(4)服务器安装完之后可以这样测试。

本地测试:$sudo mount 192.168.1.160:/home/lin/NFSshare /tmp
        执行后,可以在mnt目录下发现我的共享目录下的文件。
这样nfs应该就搭建成功了。其中192.168.1.160为服务端(电脑)的IP。这个服务端(电脑)的IP地址可以通过在电脑的“终端”输入命令#ifconfig 得到。


 


点击看大图



 


        /home/lin/NFSshare文件夹里的内容挂载到/tmp文件夹里,/tmp文件夹里的原来的东西都不见了。 显示的是/home/lin/NFSshare文件夹的内容


 


$sudo umount 192.168.1.160:/home/lin/NFSshare /tmp 


卸载后,/tmp原来的东西又回来了。


 


点击看大图


 


(5)客户端(开发板)连接服务端


将客户端(开发板)插上网线接入网络,设置好IP。
在客户端(2440开发板)终端输入:
#mount -t nfs -o nolock 192.168.1.160:/home/lin/NFSshare /tmp
  


如果无任何输出说明连接成功了。
#cd /tmp
#ls

    可以看到这个目录下有我主机的共享目录的中的内容了。这样NFS连接就成功了。



 


点击看大图

相关文章推荐

如何将QT程序移植到开发板上运行

1.        首先,要将QT环境设置成在ARM下运行的环境,这样编译出来的可执行文件才能在开发板下运行。 要注意你的QT是不是ARM版本的,可用“qmake -v”命令来查看 2.环...

把电脑虚拟机linux下编译的程序烧写到ARM9开发板的linux系统里面的具体操作步骤

首先在Linux虚拟机下操作的: ①、cd /mnt/hgfs/share(share是在VM里面设置的Linux虚拟机和Windows共享的文件夹) ②、cd ZigbeeCom (到该文件夹下面看...
  • iaiot
  • iaiot
  • 2015-12-31 16:52
  • 2072

ARM开发板烧写linux系统的步骤

1,准备工作 2,

vmware下如何使用nfs下载程序到开发板

linux安装在vmware虚拟机中 linux操作系统版本:ubuntu9.10 开发板:飞凌ok6410 开发板上的操作系统:linux2.6.36,文件系统类型是yaffs 串口上位机:...

linux开发板交叉编译之后的程序如果传到开发板

有时候我们在开发板调试应用或者驱动,经常代码要改来改去,在pc上调试很容易,写完代码,编译直接运行即可, 但是在开发板,这样就不行了,通常开发板调试有如下几个办法: 1.开发板通过网口,搭建NFS...

ARM开发板运行执行文件,找不到库报错的解决方法

平台:smart210 coretex A8 、Redhat6 这里举我的列子,其实不管你运行什么可执行文件遇到这种问题都是一样的方法去解决的。 1、错误提示 问...

QEMU模拟Mini2440开发板运行环境(二):NFS挂载根文件系统

紧接着第一篇(http://blog.csdn.net/maxwell_nc/article/details/44279553),我们使用网络文件系统NFS挂载根文件系统 原创文章欢迎转载,请保留出处...

利用tftp和nfs下载文件到开发板

一、Linux下安装nfs服务器: 1. 安装nfs服务 $sudo apt-get install nfs-kernel-server portmap 2. 在配置文件/etc/exports...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)