新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式Linux開發環境的搭建之:嵌入式開發環境的搭建

        嵌入式Linux開發環境的搭建之:嵌入式開發環境的搭建

        作者: 時間:2013-09-13 來源:網絡 收藏


        本文引用地址:http://www.104case.com/article/257141.htm

        小知識

        通過串口打印信息是一個很常見的手段,很多其他情況如路由器等也是通過配置串口的波特率這些參數來顯示對應信息的。


        5.1.3下載映像到開發板

        正如第4章中所述,嵌入式開發的運行環境是目標板,而開發環境是宿主機。因此,需要把宿主機中經過編譯之后的可執行文件下載到目標板上。要注意的是,這里所說的下載是下載到目標機中的SDRAM。然后,用戶可以選擇直接從SDRAM中運行或寫入到Flash中再運行。運行常見的下載方式有網絡下載(如tftp、ftp等方式)、串口下載、USB下載等,本書主要講解網絡下載中的tftp方式和串口下載方式。


        1.tftp

        tftp是簡單文件傳輸協議,它可以看作是一個FTP協議的簡化版本,與FTP協議相比,它的最大區別在于沒有用戶管理的功能。它的傳輸速度快,可以通過防火墻,使用方便快捷,因此在嵌入式的文件傳輸中廣泛使用。


        同FTP一樣,tftp分為客戶端和服務器端兩種。通常,首先在宿主機上開啟tftp服務器端服務,設置好tftp的根目錄內容(也就是供客戶端訪問的根目錄),接著,在目標板上開啟tftp的客戶端程序(現在很多Bootloader幾乎都提供該服務)。這樣,把目標板和宿主機用直連線相連之后,就可以通過tftp協議傳輸可執行文件了。


        下面分別講述在Linux下和Windows下的配置方法。

        (1)Linux下tftp服務配置。

        Linux下tftp的服務器服務是由xinetd所設定的,默認情況下是處于關閉狀態。

        首先,要修改tftp的配置文件,開啟tftp服務,如下所示:


        [root@localhosttftpboot]#vim/etc/xinetd.d/tftp

        #default:off

        #description:Thetftpserverservesfilesusingthetrivialfiletransfer

        #protocol.Thetftpprotocolisoftenusedtobootdiskless

        #workstations,downloadconfigurationfilestonetwork-awareprinters,

        #andtostarttheinstallationprocessforsomeoperatingsystems.

        servicetftp

        {

        socket_type=dgram/*使用數據報套接字*/

        protocol=udp/*使用UDP協議*/

        wait=yes/*允許等待*/

        user=root/*用戶*/

        server=/usr/sbin/in.tftpd/*服務程序*/

        server_args=-s/tftpboot/*服務器端的根目錄*/

        disable=no/*使能*/

        per_source=11

        cps=1002

        flags=IPv4

        }


        在這里,主要要將“disable=yes”改為“no”,另外,從“server_args”可以看出,tftp服務器端的默認根目錄為“/tftpboot”,用戶如果需要則可以更改為其他目錄。

        接下來,重啟xinetd服務,使剛才的更改生效,如下所示:


        [root@localhosttftpboot]#servicexinetdrestart

        (或者使用/etc/init.d/xinetdrestart,而且因發行版的不同具體路徑會有所不同)

        關閉xinetd:[確定]

        啟動xinetd:[確定]


        接著,使用命令“netstat-au”以確認tftp服務是否已經開啟,如下所示:


        [root@localhosttftpboot]#netstat–au|greptftp

        ActiveInternetconnections(serversandestablished)

        ProtoRecv-QSend-QLocalAddressForeignAddressState

        udp00*:tftp*:*


        這時,用戶就可以把所需要的傳輸文件放到“/tftpboot”目錄下,這樣,主機上的tftp服務就可以建立起來了(注意:需要在服務端關閉防火墻)。


        接下來,用直連線把目標板和宿主機連起來,并且將其配置成一個網段的地址(例如兩個IP都可以設置為192.168.1.XXX格式),再在目標板上啟動tftp客戶端程序(注意:不同的Bootloader所使用的命令可能會不同,例如:在RedBoot中使用load命令下載文件是基于tftp協議的。讀者可以查看幫助來獲得確切的命令名及格式),如下所示:


        =>tftpboot0x30200000zImage

        TFTPfromserver192.168.1.1;ourIPaddressis192.168.1.100

        Filename'zImage'.

        Loadaddress:0x30200000

        Loading:#################################################################

        ###############################################################

        #############################################

        done

        Bytestransferred=881988(d7544hex)


        可以看到,此處目標板使用的IP為“192.168.1.100”,宿主機使用的IP為“192.168.1.1”,下載到目標板的地址為0x30200000,文件名為“zImage”。


        (2)Windows下tftp服務配置。

        在Windows下配置tftp服務器端需要下載tftp服務器軟件,常見的為tftpd32。


        首先,單擊tftpd32下方的設置按鈕,進入設置界面,如圖5.14所示,在這里,主要配置tftp服務器端地址,也就是宿主機的地址。


        接下來,重新啟動tftpd32軟件使剛才的配置生效,這樣服務器端的配置就完成了,這時,就可以用直連線連接目標機和宿主機,且在目標機上開啟tftp服務進行文件傳輸,這時,tftp服務器端如圖5.15和圖5.16所示。

        圖5.14tftp文件傳輸圖5.15tftpd32配置界面圖5.16tftp服務器端顯示情況


        小知識

        tftp是一個很好的文件傳輸協議,它的簡單易用吸引了廣大用戶。但它同時也存在著較大的安全隱患。由于tftp不需要用戶的身份認證,因此給了黑客的可乘之機。2003年8月12日爆發的全球沖擊波(Worm.Blaster)病毒就是模擬一個tftp服務器,并啟動一個攻擊傳播線程,不斷地隨機生成攻擊地址進行入侵。因此在使用tftp時一定要設置一個單獨的目錄作為tftp服務的根目錄,如上文所述的“/tftpboot”等。

        linux相關文章:linux教程




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 凉山| 六安市| 温州市| 抚松县| 应城市| 波密县| 赫章县| 宜君县| 开江县| 景谷| 雅江县| 平顶山市| 嘉鱼县| 马公市| 德昌县| 会昌县| 定兴县| 唐山市| 东源县| 呼伦贝尔市| 射阳县| 那曲县| 霍林郭勒市| 安多县| 手游| 仙游县| 乐昌市| 浪卡子县| 高清| 淳安县| 永安市| 凭祥市| 湛江市| 安陆市| 海丰县| 将乐县| 青阳县| 崇信县| 且末县| 百色市| 台州市|