新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM的嵌入式Bootloader實現自動升級

        基于ARM的嵌入式Bootloader實現自動升級

        作者: 時間:2012-03-23 來源:網絡 收藏

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

        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環境下燒入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,確定后,你會看到tera term下載文件;

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

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

        #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開始的romfs_len長度的flash區域;

        Flash_write_data(LOADER_FLASHBASE ,UPDATEFILE, romfs_len); //把要升級的romfs燒寫0x46030000開始的romfs_len長度的flash區域中;

        }

        remove(UPDATEFILE); //升級完后刪除CF卡或移動硬盤的升級文件,以免下次啟動又要開始升級;

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

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

        4 結論

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

        本文作者創新點是:通過CF存儲卡或移動硬盤在嵌入式系統的Bootloader中實現。經過調試,系統運行正常,達到自動升級的目的,具有一定的商業價值和社會價值,同時,對同類的嵌入式系統的產品開發具有一定的借鑒意義。

        參考文獻:

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

        [2] 詹榮開 . 嵌入式系統Bootloader技術內幕

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

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

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

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

        [5] 單承剛,戴學豐,劉樹東,崔登志 .基于的嵌入式BootLoader設計與啟動過程 . 微計算機信息2006,32期

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


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 寿光市| 从江县| 大港区| 海城市| 保亭| 讷河市| 巴塘县| 英吉沙县| 宁强县| 嘉祥县| 永年县| 金坛市| 凤山县| 利川市| 樟树市| 上栗县| 盘锦市| 大庆市| 夏河县| 双牌县| 农安县| 洛浦县| 信宜市| 盐山县| 江北区| 扎鲁特旗| 岳普湖县| 忻城县| 静海县| 绥宁县| 酒泉市| 齐齐哈尔市| 石狮市| 习水县| 平遥县| 襄汾县| 呼玛县| 朝阳市| 方正县| 太原市| 买车|