<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于網(wǎng)絡(luò )加載的嵌入式BootLoader的設計與實(shí)現

基于網(wǎng)絡(luò )加載的嵌入式BootLoader的設計與實(shí)現

作者: 時(shí)間:2013-01-15 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:由于引導裝載程序()的加載方式在產(chǎn)品開(kāi)發(fā)初期階段的廣泛應用,因此基于設計與實(shí)現具有較強的實(shí)際意義。提出了基于加載的整套設計與解決方案,并將該方案應用到實(shí)際產(chǎn)品;C中。最后,通過(guò)BootLoad er引導裝載過(guò)程的測試與分析,驗證該方案的可行性與高效性。
關(guān)鍵詞:;BootLoader;網(wǎng)絡(luò );;

從軟件結構層次的角度來(lái)看,一般由引導裝載程序(BootLoader,BSP)、操作系統和應用程序幾部分組成。然而在有的嵌入式系統中,操作系統和應用程序存放在系統以外的設備中,如網(wǎng)絡(luò )、硬盤(pán)等,整個(gè)系統只有引導裝載程序。因此BootLoader是嵌入式系統設計中比較重要的一部分。
在嵌入式系統的引導中,按照應用程序存放位置,可以有3種不同的加載方式:固態(tài)存儲媒體、磁盤(pán)以及網(wǎng)絡(luò ),每種方式都會(huì )有自己特有的配置和用法。3種設置方式各有其優(yōu)缺點(diǎn),固態(tài)儲存媒體啟動(dòng)方式一般適用于帶有ROM/FLASH的嵌入式系統中,是大多數嵌入式設備的首選方案如手機,mp3等,但當應用程序較大的情況下,為了降低嵌入式設備的單價(jià),磁盤(pán)啟動(dòng)方式也被大量使用,典型應用如SDH電信傳輸網(wǎng)絡(luò )設備測試儀ANT-20等,而基于網(wǎng)絡(luò )加載方式則是最便宜的嵌入式設備的應用方案,應用程序存放在網(wǎng)絡(luò )服務(wù)器端,嵌入式設備啟動(dòng)時(shí),只需要將它通過(guò)網(wǎng)絡(luò )當到內存并運行,一方面可以快速解決應用程序升級問(wèn)題,另一方面也可以降低嵌入設備的整體成本,且在開(kāi)發(fā)初期這種方式也能大幅提高調試速度,典型的應用如嵌入式設備的瘦客戶(hù)端。

1 基于網(wǎng)絡(luò )加載的BootLoader方案設計
這種方案重點(diǎn)解決兩個(gè)問(wèn)題,一是嵌入式設備加電后啟動(dòng)前與服務(wù)器端之間的通信與聯(lián)系,二是嵌入設備在啟動(dòng)過(guò)程中應用程序下載方式的實(shí)現。前者需要將嵌入式設備驅動(dòng)起來(lái),實(shí)現通信能力,網(wǎng)卡驅動(dòng)是必須實(shí)現的步驟,后者需要通過(guò)相關(guān)的協(xié)議棧將應用程序下載到系統內存,運行起來(lái)。本文重點(diǎn)介始基于UDP/IP協(xié)議棧的(DHCP、TFIP、NFS)加載方案設計。
1.1 BooiLoader中網(wǎng)卡驅動(dòng)的設計
網(wǎng)絡(luò )適配器(網(wǎng)卡)一般由可編程數據鏈路控制器、曼徹斯特編碼/譯碼器、收發(fā)器接口和控制電路等幾部分組成,其中可編程數據鏈路控制器由微處理器和網(wǎng)絡(luò )管理部分等組成,如圖1所示。

本文引用地址:http://dyxdggzs.com/article/148141.htm

c.JPG


在BootLoader網(wǎng)卡驅動(dòng)設計中,主要包括3種基本的操作(文中以Realtek8139網(wǎng)卡作為實(shí)例進(jìn)行具體分析):
1)網(wǎng)卡的初始化
應完成的工作是初始化網(wǎng)卡中的相關(guān)硬件,包括網(wǎng)卡中斷向量的設置、網(wǎng)卡接收與發(fā)送緩沖區在內存中的映射、網(wǎng)卡數據結構的初始化等。
2)數據包發(fā)送
發(fā)送和發(fā)送控制部分負責幀的發(fā)送。發(fā)送部分接受來(lái)自“NBZ曼徹斯特轉換器”的曼徹斯特碼的數據,并在發(fā)送控制部分允許的條件下將數據發(fā)送到媒體,發(fā)送的數據稱(chēng)為T(mén)xD。發(fā)送控制部分判定是否進(jìn)行發(fā)送,這種判定基于LAN管理部分和TxD來(lái)進(jìn)行。
3)數據包的接收
接收和接收控制部分負責幀的接收。這一部分產(chǎn)生網(wǎng)絡(luò )是否有載波存在的信號,產(chǎn)生的依據是從RxD中獲得。因此,網(wǎng)絡(luò )上來(lái)的信號一方面饋送給接收器,另一方面要饋送給接收控制部分。接收控制部分根據LAN管理部分和媒體上接收的信號判定是否使接收器工作。
1.2 網(wǎng)絡(luò )服務(wù)器端應用方案的設計
在網(wǎng)絡(luò )加載BootLoader中,使用到的應用層協(xié)議有DHCP、TFTP和NFS。目標平臺在工作中,需要服務(wù)器端提供以上協(xié)議的服務(wù):
1)建立服務(wù)器端的DHCP服務(wù)
該服務(wù)完成的功能是為目標平臺提供有效的IP地址分配,保證目標平臺與服務(wù)器之間正常通信時(shí)地址唯一。其配置過(guò)程如下:
在確信DHCP協(xié)議已經(jīng)被正確安裝后,需修改/etc/dhcpd.conf文件,例如:
d.JPG


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>