<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è) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM的嵌入式Bootloader實(shí)現自動(dòng)升級

基于A(yíng)RM的嵌入式Bootloader實(shí)現自動(dòng)升級

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

在系統初次安裝或傳統升級時(shí)燒寫(xiě)內核和文件系統時(shí)用Sigma Designs 公司提供的tera term軟件燒寫(xiě),步驟為:

1) cd ../armutils_2.5.80.0/bin

2) uuencode romfs-config-envision8624L-romfs-rom.bin.gz x > romfs-config-envision8624L-romfs-rom.bin.gz.uuencode //生成uuencode編碼的文件(為ascii碼,用于在windows環(huán)境下燒入flash);

3) 運行tera term出現boot >

4)運行config serial fast,然后選菜單setupàserial port,設置baud rate為115200(串口波特率);

5)在Boot>download serial romfs gz ,準備接受文件;

6)選菜單file-->send file,選中romfs-config-envision8620L-romfs-rom.bin.gz.uuencode,確定后,你會(huì )看到tera term下載文件;

7). Boot> flash romfs,把文件燒到flash中;

在本實(shí)驗中,升級時(shí)將生成的內核和文件系統映像文件直接以二進(jìn)制形式燒進(jìn)去,不需要用uuencode轉,即:把romfs-dtv-EM8624L-romfs.bin放在CF卡或移動(dòng)硬盤(pán)相應的文件中進(jìn)行升級即可。實(shí)現的偽代碼為:

#define FLASH_SIZE 0X8000000

#define LOADER_FLASHBASE 0X46030000 //romfs存放的起始物理地址

if (fp = fopen(UPDATEFILE , ”rb”)) == NULL)return;www.51kaifa.com

else

{

Flash_erase_region(LOADER_FLASHBASE , romfs_len); //刪除0x46030000開(kāi)始的romfs_len長(cháng)度的flash區域;

Flash_write_data(LOADER_FLASHBASE ,UPDATEFILE, romfs_len); //把要升級的romfs燒寫(xiě)0x46030000開(kāi)始的romfs_len長(cháng)度的flash區域中;

}

remove(UPDATEFILE); //升級完后刪除CF卡或移動(dòng)硬盤(pán)的升級文件,以免下次啟動(dòng)又要開(kāi)始升級;

system("reboot"); //重啟新系統

上述函數調用放在的stage1中執行。

4 結論

本文分析了嵌入式系統的的實(shí)現過(guò)程,并提出了通過(guò)CF卡或移動(dòng)硬盤(pán)實(shí)現嵌入式系統的,一方面簡(jiǎn)化了升級過(guò)程,不需要通過(guò)串口將目標板與主機相連來(lái)實(shí)現系統升級,而只需插入CF卡或移動(dòng)硬盤(pán)就可以完成,尤其對支持網(wǎng)絡(luò )功能的嵌入式設備來(lái)說(shuō),只需遠程地把要升級的文件通過(guò)網(wǎng)絡(luò )拷貝到CF卡或硬盤(pán)中指定的目錄下即可,不需要帶著(zhù)主機到現場(chǎng)去升級;另一方面,升級速度也大大提高,因為系統對CF卡或移動(dòng)硬盤(pán)的存取速度遠遠高于串口。

本文作者創(chuàng )新點(diǎn)是:通過(guò)CF存儲卡或移動(dòng)硬盤(pán)在嵌入式系統的Bootloader中實(shí)現。經(jīng)過(guò)調試,系統運行正常,達到自動(dòng)升級的目的,具有一定的商業(yè)價(jià)值和社會(huì )價(jià)值,同時(shí),對同類(lèi)的嵌入式系統的產(chǎn)品開(kāi)發(fā)具有一定的借鑒意義。

參考文獻:

[1]王建,許毅平,周曼麗. 7嵌入式系統中Bootloader分析與設計[J]. 微計算機信息,2006,5-2

[2] 詹榮開(kāi) . 嵌入式系統Bootloader技術(shù)內幕

http://www.ibm.com/developerworks/cn/linux/l-btloader/index.html

[3] 張治斌,喬應旭 . SST89C54與CF卡的接口設計與實(shí)現

http://www.chinaecnet.com/xsj06/xsj064331.aspwww.51kaifa.com

[4]Raj Kamal . Embedded Systems Architecture , Programming and Design 清華大學(xué)出版社

[5] 單承剛,戴學(xué)豐,劉樹(shù)東,崔登志 .基于的嵌入式BootLoader設計與啟動(dòng)過(guò)程 . 微計算機信息2006,32期

[6]周立功等 . 微控制器基礎與實(shí)踐[M] . 北京:北京航空航天大學(xué)出版社 . 2003


上一頁(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>