999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Bootloader的嵌入式軟件通用更新機制

2011-06-07 05:53:14孫立新
電視技術(shù) 2011年15期
關(guān)鍵詞:嵌入式程序機制

孫立新

(中國民用航空飛行學(xué)院 空中交通管理學(xué)院,四川 廣漢 618307)

0 引言

在嵌入式系統(tǒng)的使用過程中,或者在軟件開發(fā)過程中,系統(tǒng)軟件可能經(jīng)常被損壞。開發(fā)人員需要能方便地把嵌入式操作系統(tǒng)、文件系統(tǒng)和用戶應(yīng)用程序下載到特定的硬件平臺。目前,通常的做法有:

1)使用專用的仿真器。由于不同的硬件平臺都需要不同的仿真器,比如ARM,MIPS等,所以這種方法不僅昂貴,而且也不通用方便。

2)在Bootloader中增加下載的功能。當(dāng)采用嵌入式Linux、Windows CE等較為復(fù)雜的操作系統(tǒng)時,一般需要設(shè)計一個獨立的Bootloader程序,對系統(tǒng)進行初始化并引導(dǎo)嵌入式操作系統(tǒng)。但由于不同硬件平臺的差異,會造成軟件開發(fā)和移植困難,如果還要實現(xiàn)從U盤或者SD卡上更新目標(biāo)文件,難度就更大。

所以,筆者針對這兩種方法的不便,提出了一種通用的更新機制——基于Bootloader的雙系統(tǒng)更新機制。該更新機制是指在嵌入式系統(tǒng)中包含了兩個操作系統(tǒng)的映像,一個用于正常工作,而另一個用作軟件更新或者存儲器分區(qū)管理等。

1 基礎(chǔ)知識

1.1 嵌入式軟件系統(tǒng)架構(gòu)

嵌入式軟件平臺由以下幾部分組成:Bootloader、嵌入式操作系統(tǒng)內(nèi)核(kernel)和文件系統(tǒng)(file system)。其中文件系統(tǒng)是嵌入式系統(tǒng)軟件平臺占用存儲量最大的一部分,也是與用戶開發(fā)最相關(guān)的一部分。它存儲了系統(tǒng)配置文件、系統(tǒng)程序、用戶應(yīng)用程序等。文件系統(tǒng)包括根文件系統(tǒng)映像(例如ramdisk.image.Gz)以及其他類型的文件系統(tǒng)(例如jffs2、cramfs等)[1-2],如圖1所示。

1.2 Bootloader

Bootloader是嵌入式軟件中研究較多的領(lǐng)域。

1)Bootloader的開發(fā)

Bootloader的種類有U-BOOT,BLOB和RedBoot等,基本都支持SCC/FEC以太網(wǎng)、OOTP/TFTP引導(dǎo)、IP和MAC的預(yù)置功能[3-4]。其中U-BOOT是功能比較強大,應(yīng)用較廣泛的引導(dǎo)程序,本文中基于STB810的系統(tǒng)也采用U-BOOT。U-BOOT源代碼在sourceforge網(wǎng)站的社區(qū)服務(wù)器中,Internet上有一群自由開發(fā)人員對其進行維護和開發(fā)。

2)Bootloaderd的移植

Bootloader是依賴于硬件而實現(xiàn)的,每個目標(biāo)板的硬件配置都不完全相同,因此Bootloader程序也都不會完全一樣。關(guān)于Bootloader的移植已有大量的研究成果[5-8]。

除此以外,還有很多成果是基于Bootloader的軟件更新機制的[9-10]。其中在參考文獻[9]中,提出建立雙Boot?loader機制實現(xiàn)從SD卡升級軟件。

2 系統(tǒng)方案設(shè)計

目前,嵌入式系統(tǒng)一般都具有能穩(wěn)定工作的操作系統(tǒng),例如Linux,WinCE,uCOS,pSOS等。這些系統(tǒng)根據(jù)特定的硬件平臺做了性能優(yōu)化,并且支持的接口豐富、配置完整。所以,可以在不擴充Bootloader的情況下,通過增加一個裁減后的小系統(tǒng)來支持串口、USB、SD、網(wǎng)絡(luò)接口(http、tftp協(xié)議等)等不同方式地下載升級。這樣設(shè)計,不僅使用方便,而且減小了開發(fā)和移植的難度,提高了系統(tǒng)安全性。

具體方法描述如下:修改Bootloader,在系統(tǒng)啟動前的一段時間內(nèi)(通常為0.1~3 s)檢測特定條件(通常是串口的按鍵,或者是特殊按鍵組合),如果沒有按鍵,正常啟動主系統(tǒng);當(dāng)有指定的鍵按下,則進入剪裁后的小系統(tǒng),從被支持的接口讀目標(biāo)文件并寫入FLASH,從而更新主系統(tǒng)。流程圖見圖2,系統(tǒng)空間分配表見表1。

表1 系統(tǒng)空間分配表

在剪裁后的小系統(tǒng)中還可以增加分區(qū)管理和格式化等命令,方便更新操作。也可以利用操作系統(tǒng)中的LCD驅(qū)動以圖形方式顯示操作頁面和操作進度提示等,使方案具有良好的人機接口。

3 基于STB810的實現(xiàn)

STB810是NXP公司的機頂盒產(chǎn)品方案,主芯片PNX8550包含有一個MI/s的CPU和兩個TriMedia的DSP處理器,已經(jīng)移植了嵌入式Linux操作系統(tǒng),相關(guān)驅(qū)動也已經(jīng)基本完成,比如網(wǎng)絡(luò)、USB、SD、IDE等,應(yīng)用軟件包中包含基本的應(yīng)用演示程序,比如媒體播放、GUI應(yīng)用等。系統(tǒng)中也有一個Bootloader,但該Bootloader的功能較弱。所以,在本方案中采用了U-BOOT作為替代,源代碼易于獲取。

上節(jié)已介紹了Bootloaderd的修改。本節(jié)主要介紹操作系統(tǒng)的剪裁。而剪裁后的系統(tǒng)使用gzip壓縮。

Linux中,一個完整的文件系統(tǒng)主要由/bin,/sbin,/dev,/proc,/etc這幾個必不可少的目錄和其他一些目錄組成(如:/usr,/home,/root,/boot,/lib,/mnt,/tmp,/var等)。

3.1 文件系統(tǒng)分析

為了裁剪文件系統(tǒng),有必要了解整個文件系統(tǒng)包含的內(nèi)容及其啟動過程。

配置文件/etc/inittab中的指令進行一些初始化工作,如IDE、SCSI、NETWORK、AUDIO、設(shè)置系統(tǒng)時鐘、設(shè)置主機名等;掛載一些必要的文件系統(tǒng):/proc,/sys,/proc/bus/usb;建立設(shè)備節(jié)點;網(wǎng)絡(luò)設(shè)置等。

此外,還有動態(tài)設(shè)備進行管理,當(dāng)新增加一個設(shè)備時,它會在/dev下創(chuàng)建該設(shè)備的節(jié)點,動態(tài)分配設(shè)備的主設(shè)備號、次設(shè)備號;當(dāng)設(shè)備拔下來后,則會刪除以上建立的對應(yīng)東西。例如當(dāng)需要從U盤更新軟件時就可以不剪裁。插入U盤,hotplug自動加載需要的模塊,udev創(chuàng)建相應(yīng)的/dev/sda1等節(jié)點,hotplug向HAL發(fā)消息,HAL收到消息后,根據(jù)配置文件,運行fstab-sync來修改fstab,創(chuàng)建/media的子目錄作為掛載點。

另外,在/opt目錄中,主要是飛利浦的一些應(yīng)用程序,如音視頻播放等。/lib目錄中,有文件系統(tǒng)的一些基本的庫和PNX8550芯片相關(guān)的一些必要模塊。在/usr目錄中,有可執(zhí)行命令、應(yīng)用程序(音視頻播放等)所需要的DirectFB庫文件,以及一些測試程序。這些程序或者庫文件在更新機制中基本不使用,可以剪裁。

3.2 文件系統(tǒng)編譯

文件系統(tǒng)中占空間比較大的主要是/bin,/sbin,/usr/bin,/usr/sbin中的一些可執(zhí)行文件、庫文件以及一些模塊。這部分通常通過Busybox來編譯,重新配置生成/bin,/sbin,/usr/bin,/usr/sbin中的可執(zhí)行文件,以減小這些可執(zhí)行文件的大小。注意,在編譯配置中不用動態(tài)模塊庫,只用靜態(tài)模塊。

文件系統(tǒng)采用initramfs,根文件系統(tǒng)(Rootfs)采用Busybox編譯成vmlinux,再用gzip壓縮,命名為tool.raw(剪裁后的小系統(tǒng)),將Bootloader映像文件命名為boot.raw,將主Linux系統(tǒng)(正常工作時使用的系統(tǒng))命名為linux.raw,這樣Flash的空間映像見表2。

4 結(jié)論

基于Bootloader的雙系統(tǒng)更新機制是利用了一個裁

表2 STB810空間映像表

減的小系統(tǒng),方便實現(xiàn)各種接口的軟件更新機制和存儲器分區(qū)管理功能。當(dāng)主文件系統(tǒng)損壞時提供系統(tǒng)恢復(fù)能力,提高了系統(tǒng)的安全性,但又不增加成本,并可大大節(jié)省軟件開發(fā)和移植的工作量。

[1]王亞軍,劉金剛.Linux運用于嵌入式系統(tǒng)的技術(shù)分析[J].計算機應(yīng)用研究.2005,22(5):102-104.

[2]詹榮開.嵌入式Bootloader技術(shù)內(nèi)幕[EB/OL].(2006-09-20)[2010-12-20].http://www-128.ibm.com/developerworks/cn/linux/l-loader/.

[3]陳渝,李明,楊曄.源碼開放的嵌入式系統(tǒng)軟件分析與實踐[M].北京:北京航空航天大學(xué)出版社.2004.

[4]張和君,張躍.基于GNU工具的嵌入式Bootloader設(shè)計與開發(fā)[J].計算機工程,2006(8):277-279.

[5]王東,李哲英.U-Boot在S3C44B0上的移植方法[J].北京交通大學(xué)學(xué)報,2005(4):76-80.

[6]孫棣華,趙君杰.U-Boot引導(dǎo)程序可視化配置[J].計算機應(yīng)用,2010,6:177-197.

[7]楊潔,趙剛.嵌入式系統(tǒng)中Bootloader的編譯與移植[J].四川大學(xué)學(xué)報:自然科學(xué)版,2007(8):835-839.

[8]王亞剛.嵌入式Bootloader機制的分析與移植[J].計算機工程,2010,3(6):267-269.

[9]王恒,王颋,王泉,等.基于Bootloader的可靠嵌入式軟件遠程更新機制[J].微計算機信息,2007,12(23):57-59.

[10]李權(quán),鄢萍,賀曉輝.高可靠性的嵌入式軟件現(xiàn)場更新方法[J].計算機應(yīng)用,2010(8):2228-2231.

猜你喜歡
嵌入式程序機制
試論我國未決羈押程序的立法完善
自制力是一種很好的篩選機制
文苑(2018年21期)2018-11-09 01:23:06
搭建基于Qt的嵌入式開發(fā)平臺
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
創(chuàng)衛(wèi)暗訪程序有待改進
破除舊機制要分步推進
注重機制的相互配合
打基礎(chǔ) 抓機制 顯成效
中國火炬(2014年4期)2014-07-24 14:22:19
主站蜘蛛池模板: 国产99视频精品免费视频7| 亚洲综合天堂网| av在线无码浏览| 欧美一级夜夜爽| 欧美午夜一区| 亚洲va视频| 久久99国产乱子伦精品免| www亚洲天堂| 内射人妻无码色AV天堂| 午夜在线不卡| 亚洲一级无毛片无码在线免费视频| www.av男人.com| 国产流白浆视频| 欧美日韩国产在线播放| 国产欧美亚洲精品第3页在线| 国产超碰一区二区三区| 亚洲人成成无码网WWW| 精品无码日韩国产不卡av| 欧美国产日韩在线| 无码免费试看| 白浆视频在线观看| 日本国产精品| 亚洲国产亚综合在线区| 国产乱论视频| 亚洲AV无码久久天堂| 国产精品深爱在线| 久久国产精品夜色| 国产爽爽视频| 亚洲国产清纯| 四虎成人免费毛片| 91偷拍一区| 国产三级成人| 在线日本国产成人免费的| 福利在线一区| 国产在线97| 欧美区一区二区三| 丰满人妻一区二区三区视频| 国产制服丝袜91在线| 国产va免费精品| 亚洲娇小与黑人巨大交| 91久久夜色精品国产网站| 激情综合激情| 欧美成人精品在线| 又黄又爽视频好爽视频| 精久久久久无码区中文字幕| 精品国产免费人成在线观看| 欧美69视频在线| 精品少妇人妻av无码久久| 97国产精品视频自在拍| 58av国产精品| 午夜久久影院| 国产又色又刺激高潮免费看| 成人一区专区在线观看| 久久黄色小视频| 成人欧美在线观看| 伊人天堂网| 日本91视频| 成人福利在线观看| 毛片最新网址| 一级一级特黄女人精品毛片| 国产剧情国内精品原创| 亚洲美女视频一区| 国产麻豆永久视频| 99一级毛片| 成人午夜网址| 成人在线观看一区| 久久久久九九精品影院| 国产精品乱偷免费视频| 99视频精品在线观看| 国产精品女人呻吟在线观看| 亚洲成人精品| 四虎成人免费毛片| 亚洲国产精品一区二区高清无码久久| 亚洲国产一成久久精品国产成人综合| 最新日韩AV网址在线观看| 国产一区二区免费播放| 中文字幕调教一区二区视频| 99热线精品大全在线观看| 色综合天天操| 露脸真实国语乱在线观看| 88国产经典欧美一区二区三区| 婷婷亚洲天堂|