公司有個用ARM940T做的手持式產品,我們移植了一個uClinux上去,系統還是運行不錯的。
因為沒有帶網口,只有USB轉串口可以使用,所以想尋找一個穩定的傳輸途徑,在host和device之間交換文件。問了很多人都不清楚,還是要靠自己找解決方法。
在google上找了半天,終於找到了一個可以通過串口傳送文件的軟件,這就是古董級的Unix工具:lrzsz。lrzsz可以通過Xmodem,Ymodem,Zmodem協議傳送文件。
lrzsz的下載地址:見http://www.linuxidc.com/Linux/2010-08/27739.htm
在uClinux的user目錄下,我找到了這個lrzsz目錄,說明uClinux應該是可以運行lrzsz的。編譯uClinux的時候,選上lrzsz,編譯,燒錄進開發板,上電,運行,其中lrzsz編譯出來兩個文件,一個是lrz用於接收文件,一個是lsz用於發送文件。
在Windows上用超級終端打開串口,連上uClinux,輸入以下命令:
cd /bin
lsz *
第一個命令是進入bin目錄,第二個lsz命令是發送全部文件。
輸入以後,超級終端立刻彈出一個界面,顯示一個文件正在傳送中,包括進度,文件名,使用的協議是zmodem,哈哈,很酷哦!
全部文件發送完畢後,都放在了一個默認目錄下面。
從host端發送文件到device端,也是很容易的,但是要保證RamDisk有足夠的空間。我一開始沒有注意RamDisk只有128KB,卻傳送了1MB的文件,結果傳送完畢後,系統就掛了,注意注意!
采用這個命令:
cd /var
lrz -Z
第一個命令是進入RamDisk,應該保證這個目錄是可寫的,並且保證大小應該超過傳送的文件。
第二個命令是接收文件,使用Zmodem協議。
運行命令後,在超級終端下選擇“發送文件”,選擇“Zmodem協議”,選擇一個文件,即可將文件通過串口發送到device的var目錄下。
在Windows下可以用超級終端,在Linux下應該用什麼終端工具?
答案是:c-Kermit,我在Ubuntu下裝了minicom,但是跑不起來,其中u-boot的網頁上也說minicom不一定能用。下載一個c-kermit,就可以與device通訊了。就不再多說啦!
我的email是 [email protected],可以與我交流一下開發經驗,Ricky Xian