假設有一種開發環境,一塊闆子,除了序列槽,沒有任何外部出入輸出裝置,沒有sd卡,沒有網線,這個時候如果你想跟這塊闆子傳輸互動檔案,要怎麼辦?
根據modem所采用的檔案傳輸協定:xmodem,ymodem,zmodem将其分類
xmodem:簡單通用,傳輸資訊機關是“包=128B”,傳輸速度慢,适合電話線路品質差的情況下用
ymodem:由XMODEM演變來,效率可靠性高,包=128*8B;一次傳輸可發送或接受幾個檔案
zmodem:于上兩種不同,已連續的資料流發送資料,效率更高
在ubuntu主機中可以直接使用rz或者sz指令與secureCRT互動檔案
在開發闆中busybox提供rx指令可直接Xmodem下載下傳檔案到開發闆,但是沒有找到上傳指令
指令:
rz 下載下傳Zmodem
xz 上傳Zmodem
rx 下載下傳Zmodem
如果想在開發闆中上傳檔案的話可以移植完整版的lrzsz到開發闆,完整使用其功能
一,移植lrzsz到開發闆中
lrzsz工具在配合secureCRT相當實用,現把其移植到arm-linux下
交代下環境:
pc ubuntu12.4
cross-compile arm-linux-gcc
--1--擷取源碼
<a href="http://www.ohse.de/uwe/software/lrzsz.html" target="_blank">http://www.ohse.de/uwe/software/lrzsz.html</a>
擷取lrzsz-0.12.20.tar.gz
--2--解壓源碼
tar -xzf lrzsz-0.12.20.tar.gz
--3--生成cache檔案
./configure --host=arm-linux --cache-file=./arm-linux.cache
這個時候目錄中應該生成了./arm-linux.cache檔案
--4--修改配置
vi arm-linux.cache
将
ac_cv_prog_CC=${ac_cv_prog_CC='gcc'}
改成
ac_cv_prog_CC=${ac_cv_prog_CC='arm-linux-gcc'}
--5--使用cache檔案配置源碼
./configure --host=arm-linux --cache-file=./arm-linux.cache
--6--編譯源碼
make
注:可能出現的問題:zglobal.h:188:22: error: libintl.h: No such file or directory
注:可能出現的問題:warning: incompatible implicit declaration of built-in function 'gettext'
解決方法:
vi config.h
修改/* Define to 1 if NLS is requested. */
#define ENABLE_NLS 1
為
#define ENABLE_NLS 0
--6--得到工具
在src/檔案夾下的lrz和lsz工具即是交叉編譯成功的lrzsz工具了
--7--實用
将lrz和lsz複制到闆子/bin下,即可使用,當然要配合secureCRT
一,利用lrzsz通過序列槽與secureCRT傳輸檔案
--1--secureCRT設定,在序列槽的情況下需要打開XON/XOFF流控機制
會話選項->串行->流控->XON/XOFF 打鈎,然後重新開機會話

會話選項->終端->X/Y/Zmodem->目錄 選擇要存放的目錄(我選擇的是桌面)
--2--上傳檔案
終端輸入lrz指令後自動彈出選擇檔案對話框,選擇之後開始傳輸
$ ./lrz
--2--下載下傳檔案
終端中輸入lsz+檔案名
$
./lsz <檔案名>
--3--通過BusyBox中的rx簡單下載下傳檔案
如果根本完全沒有任何外部接口,連lrzsz都灌不進去。或者隻想下載下傳傳輸檔案,不需要上傳的情況,可以使用Busybox中的rx指令簡單下載下傳檔案
終端中輸入rx+要儲存的名稱,比如$rx redmin.txt
然後在終端中發送檔案 菜單->傳輸->發送Xmodem->選擇redmin.txt檔案發送資料
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。