1. 程式人生 > >上位機通過串列埠向開發板傳送檔案

上位機通過串列埠向開發板傳送檔案

工作中用的一款開發板,網路驅動與PCIE驅動有衝突,因此板子的網路功能基本上都不能用,每次我copy檔案都是把SD卡拔下來(作業系統在SD卡上),插到上位機上去copy,插插拔拔很麻煩,後來我想到了可以通過串列埠傳輸檔案到開發板,就方便多了,網上查了一下步驟:

首先是下載lrzsz工具,可以下載原始碼,然後我在PC的linux虛擬機器上編譯:下載解壓之後在資料夾目錄下首先配置編譯選項:

輸入:CFLAGS=-O2 CC=arm-none-linux-gnueabi-gcc ./configure --cache-file=armlnx_cache_file1

這裡相當於將編譯器改為了arm-none-linux-gnueabi-gcc,我的開發板用的是這個交叉編譯工具鏈,不同的硬體平臺是不同的版本,這裡需要注意。

上面的語句相當於執行了./configure,就生成了合適的makefile,--cache-file是用來臨時存放測試資料的,名字可以任起,我這裡叫armlnx_cache_file1。

之後我們輸入make,執行編譯連結等操作,成功的話就會在src資料夾下生成lrz與lsz兩個可執行檔案。我們把這兩個檔案copy到開發板系統的sbin目錄下就可以使用了。

傳輸檔案的時候在開發板的目錄下隨便建立一個資料夾,我就叫tmp,然後進入tmp,輸入lrz,就會進入等待接收狀態,列印顯示了lrz waiting to recieved。。。。。

注意這裡有個問題,我開始的時候用的是putty終端,後來發現putty不支援zmodem協議檔案傳輸,所以我們想通過串列埠傳輸檔案的話只能換一個終端了。我開始看了一下secureCRT,但是這個軟體不是免費的,還要破解,很麻煩,況且公司也不允許用破解或者盜版軟體。於是我又找了一個XShell工具,是免費的,很好用。

裝上xshell之後需要配置一下,首先建立一個連結,名字隨便起,協議選擇serial串列埠:


之後配置串列埠引數,注意別填錯,根據你的環境的串列埠設定來填:


確定之後就可以了,接著開啟開發板,在xshell中就啟動系統了,進入tmp,輸入lrz -y,然後在xshell中選擇檔案傳輸,如下圖所示:


選擇想要傳輸的檔案就可以了,注意這裡我選擇的是YMODEM的方式傳輸,如果在開發板的tmp路徑下直接輸入lrz後面不跟選項,就是在ZMODEM下傳輸,也不用在xshell中再選擇傳輸檔案,它會直接彈出一個對話方塊的,但是這種方法我試了好幾次傳輸都失敗,所以迫不得已我只能選擇了YMODEM的方式。

如果大家能解決我的問題,非常感謝,哈哈哈。