新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于網絡加載的嵌入式BootLoader的設計與實現

        基于網絡加載的嵌入式BootLoader的設計與實現

        作者: 時間:2013-01-15 來源:網絡 收藏

        其中subnet是目標機與主機共同的子網,netmask是它們的子網掩碼。Hardware ethernet是目標機的硬件地址,可以通過fixed-address給目標分配一個固定的IP地址,當目標機啟動時,就會自己獲得這個IP地址。Option host-name是目標機的機器名。當主機與目標機直接連接時,option routers指向主機的地址,當它們不是直接連接,而是通過路由時,option routers的值為真正的routers地址值,同理optionsubnet-mask為option routers的子網掩碼。Filename為目標機從TFTP服務端下載的文件名,next-server為提供TFTP服務的位置。
        最后請檢查/var/state/dhcp/dhcpd.leases文件是否存在,當一切準備好后,就可以運行DHCP服務了:
        #/etc/init.d/dhcpd start
        2)建立服務器端的TFTP服務
        該服務在基于下載應用程序時使用,它類似于FTP服務,但它不需要向服務器提供用戶名與密碼,且其下載速度比FTP要快。其配置過程如下:
        在確信TFTP協議已經被正確安裝后,
        ①修改文件/etc/xinetd.conf,打開tftp的支持;
        ②修改文件/etc/xinetd.d/tftp,例如:
        e.JPG
        參數server_args為tftp服務指定的目錄,其余參數理解比較容易。
        設置完畢后,請重新啟xinetd,運行tap服務。
        3)建立服務器端的NFS服務
        目標平臺在Linux運行初始化時,需要借助該服務來掛載根文件系統。其配置過程如下:
        在確定NFS已經正確安裝后,請修改文件/etc/exports,例如:
        /home/karim/ctrl—rooffs 192.168.172.10 (rw,no_root_squash)
        其中目錄/home/karim/ctrl-rooffs可以修改為服務器端的根文件系統存放的目錄。192.168.172.10為服務器端的IP地址。
        修改完成后只需要重新啟動NFS服務即可,NFS服務提供網絡文件系統功能,便于應用程序的管理與使用。
        1. 3 客戶端嵌入式的設計
        在基于網絡加載的系統中,應用程序文件一般被存放在網絡服務器。系統啟動后,BootLoader需要先驅動網絡適配器,并通過UDP/IP協議棧(BOOTP/DHCP、TFTP協議等),將映像文件下載到目標機端的SDRAM運行,當嵌入式linux操作系統初始化時,它借助NFS協議將根文件系統掛載到服務器端。
        在該方案中,BootLoader程序的主要工作步驟如下:
        1)基本硬件的初始化:包括屏蔽所有的中斷、初始化所有的硬件、設置/裝載系統setup值、設置CPU的時鐘和頻率、RAM的初始化等;
        2)讀取網絡參數配置文件:
        該配置文件主要存放系統使用網絡過程中需要的一些參數,包括MAC地址、tftp服務器的IP地址、Kernel文件名、應用程序文件名等。
        3)初始化PCI接口,并驅動網卡;
        4)通過DHCP協議獲取目標平臺的IP地址;
        目標平臺先廣播發送ARP包,當DHCP服務器接收到該ARP包后,就會根據ARP包中的硬件地址從地址表中分配一個有效的IP地址,并發送應答報文給目標平臺。
        5)通過tftp協議下載kernel代碼至內存SDRAM;
        6)運行Linux內核和系統應用程序。


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 绍兴市| 遂宁市| 伊宁县| 石楼县| 翼城县| 崇州市| 黔西| 富顺县| 松原市| 江陵县| 贵定县| 邹城市| 阜康市| 西丰县| 南靖县| 吴江市| 尤溪县| 桐城市| 孟州市| 开化县| 房产| 克拉玛依市| 开鲁县| 奇台县| 东兰县| 临沂市| 永济市| 克拉玛依市| 天柱县| 利津县| 莎车县| 郸城县| 曲阳县| 安乡县| 句容市| 蓬安县| 剑川县| 灵石县| 开化县| 石狮市| 灌南县|