做嵌入式就避免不了移植工作,所谓移植就是将交叉编译生成的可执行程序,库,配置文件等传输到开发板上进行工作。
常用传输方式有以下几种:
1.串口传输
就是使用串口传输工具rz/sz; 该工具通过串口传输在SRT串口工具最大速率为1024b/s,传输速度慢。
源码下载及移植方法参考我的博客(busybox制作文件系统时应该也可以直接添加该命令):lszrz移植
传输方法:
执行rz,会有win弹窗,选择想要传输的文件即可。
2. 网口传输
网口传输是使用最普遍的传输方式,速度快且稳定。网络传输有以下几种方式:
2.1. nfs
假如我想虚拟机,arm互传,那么nfs服务协议可以运行在虚拟机上;
如果虚拟机运行了nfs服务器,在arm上运行mount命令将虚拟机的某个目录挂载到arm上,然后使用cp,mv等即可传输文件。
同时也需要arm需要支持nfs协议,在制作文件系统时可以使用busybox使文件系统支持该协议。一般都会支持,除非文件系统十分精简。
nfs的安装与搭建参考我的博客:nfs安装及搭建
2.2. ssh
ssh使用一般是最多的,将ssh服务器程序一直到开发板上,然后可以使用xshell进行访问,以windows的方式传输,也可以在虚拟机使用scp传输。
虚拟机传输:
scp root@192.168.0.0:/mnt/filename /home
将192.168.0.0开发板的/mnt目录下的filename文件下载到虚拟机/home目录下
scp /home/filename root@192.168.0.0:/mnt
将虚拟机home目录下的filename文件上传到开发板mnt目录下
2.3. tftp
一个新装系统的开发板可以不支持rz,nfs,ssh;但是tftp一般都会支持;只需要下载个tftp服务器:tftpd64/tftpd32,安装到windows,然后运行,设置好ip地址和文件存放路径即可在开发板上使用tftp命令连接该服务器;
传输命令如下:
从服务器下载文件
tftp -g -r filename serverip
示例:tftp -g -r 1.txt 192.168.0.0
从192.168.0.0服务器下载1.txt文件
上传文件到服务器
tftp -p -l filename serverip
示例:tftp -p -l 1.txt 192.168.0.0
将1.txt文件上传到服务器
上面的命令都没有指定路径,那是因为windows上运行的tftpd已经将路径指定完成。
下拉可以选择本地ip地址。
除了以上方式还有哪些方式呢?