PC 和開發板之間傳輸檔案
8.1 傳輸檔案的多種方法
在嵌入式開發中,涉及交叉編譯:在 PC 上編譯,在開發板上執行。所以就涉及 PC 和開發板之間的檔案
傳輸,方法有多種:網路傳輸、串列埠傳輸、USB 傳輸,當然,還有最笨的方法:U 盤複製。
一般的日常開發流程為:
a. 在 Windows 上閱讀修改程式碼,然後透過 FileZilla 把程式碼傳到 VMWare 中的 Ubuntu;
b. 在 Ubuntu 上編譯程式;
c. 把程式下載到開發板上,執行驗證,
d. 在 Windows 下透過串列埠操作開發板。
所以在 Windows、Ubuntu、開發板三者間,兩兩之間都存在檔案的傳輸。
當然,有人不喜歡 Windows,PC 只用純 Linux,這些高手已經熟練掌握各種 Linux 命令,不再存在檔案傳輸的障礙。
總之,各種需求都存在,比如某些筆記本沒有網口,那可以使用 USB 線連線開發板,開發板模擬出網路卡;在工地上網口、USB 口統統沒有,那我們還可以使用串列埠。
我們會一一列舉,作為初學者,不需要驗證全部章節,選擇合適你的即可。
8.2 在 Windows 上透過串列埠和開發板傳輸檔案
如果只是偶爾傳輸小檔案,可以直接使用串列埠。
注意:在開發過程中,使用 NFS 是最方便的。
8.2.1 用 MobaXterm 開啟串列埠、啟動開發板
這不用介紹了吧。
8.2.2 使用 rz 命令透過串列埠下載 Windows 檔案到開發板上
可以在開發板上使用 rz 命令,將 PC 上的檔案傳輸到開發板。
請參考《5.3.2 使用rz命令透過串列埠下載Windows檔案到開發板上》
8.2.3 使用 sz 命令讓開發板向 PC 傳送檔案
可以在開發板上使用 sz 命令,將開發板的檔案上傳給PC。
請參考《5.3.3 使用 sz 命令透過串列埠把開發板檔案上傳給 PC》。
8.3 透過 USB 給開發板傳檔案
尚未實現。
8.4 安裝網路服務
在嵌入式開發中,網路服務帶來了很多便利,特別是 Ubuntu 上的 NFS 服務。使用 NFS 服務,開發板可以掛載 Ubuntu 上的某個目錄,假設開發板把 Ubuntu 上的/home/book 目錄掛載到自己的/mnt 目錄,那麼在開發過程中,可以如此操作:
a. 在 Ubuntu 上的/home/book/abc 目錄中編譯程式
b. 開發板可以直接執行/mnt/abc 下的程式
在 Ubuntu 上編譯程式,開發板可以立刻執行程式,免去了上傳、下載等等繁瑣的操作。
Windows 推出了 WSL 子系統(Windows Subsystem for Linux),這確實是個很牛的產品。可惜它不支援NFS 服務,否則我們早就捨棄 Ubuntu 而採用 WSL 了。
當然,網路服務不僅僅有 NFS,還有 TFTP、SSH 等服務。如果只是傳輸檔案,可以使用 TFTP、SSH 等服務,比如:
a. 在 Ubuntu 啟動 TFTP 服務,開發板透過 tftp 命令和 Ubuntu 互傳檔案;
b. 在 Windows 啟動 TFTP 服務,開發板透過 tftp 命令和 Windows 互傳檔案;
c. 在開發板上啟動 SSH 服務,Windows 透過 FileZilla 登入開發板,互傳檔案。
上述場景各有其存在的道理:
如果開發板沒安裝 SSH 服務,那麼就可以透過 tftp 命令使用 Ubuntu 或 Windows 的 TFTP 服務。
如果開發板安裝了 SSH 服務,那麼使用 FileZilla 傳輸檔案時是完全的 GUI 操作,非常方便。
開發、除錯過程使用 Ubuntu 的 NFS 服務,這是最方便的。
NFS、TFTP、SSH 等服務,都是基於網路的。開發板可以使用網線和電腦相連,也可以使用 USB OTG 線與電腦相連,後者透過虛擬的 USB 網路卡使用網路。
使用網線,還是使用 USB OTG 線?有網路卡、有網線就用網線,沒有再選擇 USB OTG 線。
下面章節講解怎麼安裝、配置各種服務,作為初學者建議先使用 NFS,其他的先不管。
8.4.1 在 Ubuntu 中安裝、配置 NFS
如果你使用的是我們提供的 Ubuntu,那麼已經安裝好了 NFS 服務。檢視一下/etc/export 的內容,就知道開發板可以掛載哪一個目錄。如果該檔案中沒有指定目錄,請繼續往下看。
如果你的 Ubuntu 未安裝 NFS 服務,那麼在確保 Ubuntu 可以上網的前提下,執行以下命令:
sudo apt-get install nfs-kernel-server
1
注意:如果 Ubuntu 無法上網,使用 VMware 橋接網路時請參考《1.3 VMware 橋接網路設定》,使用 VMware NAT 網路或 Docker 時請參考《第四章 使用 NAT 配置 Ubuntu 網路》和《第五章 安裝軟體及開發示例》。
然後,還得修改/etc/exports,新增類似以下的內容,下面的例子裡允許開發板透過 NFS 訪問 Ubuntu的/home/book 目錄:
/home/book *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
1
最後,重啟 NFS 服務,在 Ubuntu 上執行以下命令:
sudo /etc/init.d/nfs-kernel-server restart
1
可以在 Ubuntu 上透過 NFS 掛載自己,驗證一下 NFS 可用:
sudo mount -t nfs -o nolock,vers=3 127.0.0.1:/home/book /mntls /mnt
1
再次重申:NFS 是一種網路服務,開發板可以透過網線連線 Ubuntu 來使用 NFS 服務;甚至也可以透過USB OTG 線連線 Ubuntu,透過虛擬的 USB 網路卡使用 NFS 服務。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69997197/viewspace-2764988/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 開發板和 Ubuntu 之間怎麼傳檔案Ubuntu
- 加速檔案傳輸:檔案和UDP之間的區別UDP
- linux之間檔案傳輸scpLinux
- linux 系統之間傳輸檔案Linux
- 如何在電腦和樹莓派之間傳輸檔案樹莓派
- 兩機之間不用密碼傳輸檔案(轉)密碼
- 如何以最簡單的方式傳輸檔案到開發板上-lrzsz-ZModem
- linux 間定時傳輸檔案Linux
- 鐳速傳輸淺談TLS 和檔案傳輸TLS
- 什麼是檔案傳輸,介紹檔案傳輸的發展程式
- 蘋果手機和Windows之間互傳檔案蘋果Windows
- 在suse和solaris之間互傳檔案_scp
- 在電腦和安卓裝置之間使用 FTP 傳輸檔案安卓FTP
- 網際網路使用者之間如何傳輸大檔案
- 利用tftp和nfs下載檔案到開發板FTPNFS
- 什麼是極速檔案傳輸,極速檔案傳輸如何進行大檔案傳輸
- windows伺服器間自動傳輸檔案Windows伺服器
- Java 使用 TCP 和 UDP 傳輸檔案JavaTCPUDP
- webservice傳輸檔案Web
- scp 傳輸檔案
- sftp 傳輸檔案FTP
- expect+scp傳輸檔案發現檔案丟失
- 主機和Docker容器之間的檔案互傳方法Docker
- PHP開發之檔案的上傳下載PHP
- 大檔案如何傳輸,大檔案的傳輸方式有哪些?
- 利用securecrt中的rs, sz在linux與windows之間傳輸檔案SecurecrtLinuxWindows
- 如何分發大檔案、大檔案傳輸解決方案
- 實現linux和windows檔案傳輸LinuxWindows
- 鐳速傳輸升級,別再用Email和FTP傳輸檔案了AIFTP
- 【多檔案自平衡雲傳輸】使用展示 —— 檔案傳輸系統
- 檔案傳輸協議的五種安全檔案傳輸替代方案協議
- mysql之 表空間傳輸MySql
- 鐳速傳輸:如何快速傳輸大檔案?
- Linux 檔案傳輸Linux
- wtfpd檔案傳輸使用
- 利用ssh傳輸檔案
- 微信開發 檔案上傳
- 有了大檔案傳輸加速功能,不再擔憂傳輸大檔案