www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]在Bootloader中實(shí)現(xiàn)嵌入式系統(tǒng)自動(dòng)升級(jí)

摘要 嵌入式系統(tǒng)中,對(duì)內(nèi)核或文件系統(tǒng)進(jìn)行升級(jí),一般是將目標(biāo)板連接到主機(jī),通過(guò)JTAG口、串口或網(wǎng)口來(lái)完成升級(jí)過(guò)程。本文討論一種更為方便的升級(jí)方法,即在Boot1oader中通過(guò)CF存儲(chǔ)卡升級(jí)系統(tǒng)。嵌入式系統(tǒng)中的Bootloader通常用于引導(dǎo)操作系統(tǒng),本文描述了如何通過(guò)增強(qiáng)Bootloader的功能,實(shí)現(xiàn)對(duì)嵌入式系統(tǒng)的自動(dòng)升級(jí)。
關(guān)鍵詞 Bootloadcr 嵌入式系統(tǒng)CF存儲(chǔ)卡 自動(dòng)升級(jí)


    嵌入式系統(tǒng)由硬件和軟件兩部分組成,軟件部分主要包括Bootloader、內(nèi)核和文件系統(tǒng)。Bootloader是硬件系統(tǒng)加電所運(yùn)行的第l段軟件代碼,但在嵌入式系統(tǒng)中一般沒(méi)有像PC中的BIOS那樣的固件,因此整個(gè)系統(tǒng)的加載過(guò)程全部是由Bootloader來(lái)完成的。系統(tǒng)在上電l或復(fù)位時(shí)通常都從地址Ox00000000處開(kāi)始執(zhí)行,而在這個(gè)地址處安排的通常就是系統(tǒng)的Bootloader。Bootloader的主要任務(wù)包括:初始化最基本的硬件;將Bootloader本身拷貝到RAM中運(yùn)行;將內(nèi)核拷貝到RAM中并調(diào)用內(nèi)核等。
    通常在嵌入式系統(tǒng)中,首先通過(guò)JTAG接口將Bootloader燒寫(xiě)到目標(biāo)板的Flash中,然后在Bootloader中,將內(nèi)核映像文件和文件系統(tǒng)映像文件通過(guò)串口和網(wǎng)絡(luò)下載并燒寫(xiě)到Flash中。若需對(duì)內(nèi)核或文件系統(tǒng)升級(jí),則按照上述方法重新燒寫(xiě)新的映像文件,直接覆蓋原來(lái)的映像文件。
    上述方法中,一方面必須將目標(biāo)板和主機(jī)通過(guò)串口線(xiàn)和網(wǎng)線(xiàn)相連接,另一方面通過(guò)串口或網(wǎng)絡(luò)下載映像文件,速度很慢。本實(shí)驗(yàn)通過(guò)擴(kuò)充Bootloader功能,實(shí)現(xiàn)了通過(guò)CF存儲(chǔ)卡對(duì)內(nèi)核或文件系統(tǒng)映像文件的自動(dòng)升級(jí),對(duì)需要經(jīng)常為內(nèi)核或文件系統(tǒng)升級(jí)的嵌入式系統(tǒng)來(lái)說(shuō),克服了傳統(tǒng)升級(jí)方法的局限,簡(jiǎn)化了升級(jí)方法,提高了升級(jí)速度。


1 基本原理
   
本實(shí)驗(yàn)對(duì)傳統(tǒng)Bootloader的功能進(jìn)行了擴(kuò)充,加入了升級(jí)系統(tǒng)的功能。例如,用戶(hù)需要對(duì)目標(biāo)板上的內(nèi)核或文件系統(tǒng)進(jìn)行升級(jí),只需要將新的映像文件命名為指定的名稱(chēng)并拷貝到CF存儲(chǔ)卡中。然后,CF存儲(chǔ)卡插入目標(biāo)板的CF存儲(chǔ)卡插槽,重新啟動(dòng)目標(biāo)板即可完成升級(jí)過(guò)程。重啟時(shí),系統(tǒng)首先運(yùn)行Bootloader,Bootloader將檢測(cè)CF存儲(chǔ)卡中是否有內(nèi)核或文件系統(tǒng)的映像文件。若有,則讀取映像文件并燒寫(xiě)到目標(biāo)板的F1ash中,實(shí)現(xiàn)升級(jí);若無(wú),則直接啟動(dòng)目標(biāo)板中的系統(tǒng),如圖1所示。

    實(shí)驗(yàn)使用的開(kāi)發(fā)板基于Intel XScale處理器PXA255。PXA255具有16位的CF存儲(chǔ)卡控制器,用于連接CF存儲(chǔ)卡。開(kāi)發(fā)板上有32 MB的Flash和64 MB的SDRAM,且Flash的起始地址映射到Ox00000000,SDRAM的起始地址映射到OxA0000000。
    實(shí)驗(yàn)板上的InteI Strata Flash,容量為32 MB,分為Bootloader、reserved、kernel和root filesystem四個(gè)區(qū)。其中,Bootloader分區(qū)用于燒寫(xiě)B(tài)ootloader,其起始地址為Ox00000000,當(dāng)系統(tǒng)加電啟動(dòng)或復(fù)位時(shí),CPU便跳轉(zhuǎn)到這個(gè)位置開(kāi)始執(zhí)行指令;reserved分區(qū)為保留分區(qū),主要用于傳遞內(nèi)核啟動(dòng)參數(shù)以及其他系統(tǒng)設(shè)置;kernel分區(qū)和root filesystem分區(qū)分別用于燒寫(xiě)內(nèi)核和文件系統(tǒng)。各分區(qū)的起始地址及大小如圖2所示。

2 實(shí)現(xiàn)
   
本文所討論的實(shí)現(xiàn)方法,主要是擴(kuò)充Bootloader的功能,增加對(duì)CF存儲(chǔ)卡的支持,使系統(tǒng)啟動(dòng)時(shí),Bootloader能對(duì)CF存儲(chǔ)卡進(jìn)行文件讀取。首先,要將CF存儲(chǔ)卡格式化成特定的文件系統(tǒng)格式(本實(shí)驗(yàn)主要支持FAT32、FATl6和EXT2三種文件系統(tǒng))。然后,將待升級(jí)的映像文件(內(nèi)核映像文件、文件系統(tǒng)映像文件或Bootloader本身的映像文件)通過(guò)主機(jī)拷貝到CF存儲(chǔ)卡。因此,Bootloader可以榆測(cè)到需要升級(jí)的映像文件并對(duì)目標(biāo)板上的相應(yīng)部分進(jìn)行更新。
2.1 Bootloader框架及工作流程
    本實(shí)驗(yàn)所編寫(xiě)的Bootloader僅實(shí)現(xiàn)了最基本的硬件初始化功能、系統(tǒng)引導(dǎo)功能和系統(tǒng)升級(jí)功能,靜態(tài)編譯的二進(jìn)制文件大小為38 KB。Bootloader用匯編語(yǔ)言和C語(yǔ)言實(shí)現(xiàn),匯編語(yǔ)言?xún)H作了屏蔽所有中斷、初始化相關(guān)GPIO(General Purpose IO)、初始化SDRAM、拷貝Bootloader和內(nèi)核到SDRAM等簡(jiǎn)單工作,便跳轉(zhuǎn)到C程序,在C程序中實(shí)現(xiàn)了后續(xù)的初始化工作及系統(tǒng)升級(jí)。詳細(xì)流程如圖3所示。

2.2 對(duì)CF存儲(chǔ)卡的支持及數(shù)據(jù)讀取過(guò)程
   
由于是從CF存儲(chǔ)卡上讀取新的映像文件并實(shí)現(xiàn)系統(tǒng)更新,故在Bootloader中必須首先支持CF卡。CF卡本身提供了兩個(gè)探測(cè)引腳(即Card Detect Pins),用于判斷CF卡是否存在。這兩個(gè)引腳成為CDl和CD2,在CF卡內(nèi)部被硬件設(shè)計(jì)為直接與地相連。當(dāng)CF卡插入時(shí),CDl和CD2應(yīng)全為低電平,因此,在Bootloader中通過(guò)檢測(cè)CDl和CD2的電平高低,可以判斷CF卡是否存在。
    CF卡主要由3部分組成:控制器、存儲(chǔ)器陣列和緩沖區(qū)。其中,內(nèi)置的智能存儲(chǔ)器可以使外圍電路設(shè)計(jì)大大簡(jiǎn)化,且完全符合內(nèi)存卡的PCMCIA(Personal Computer Memory Card Intemational Association)和AIA (AdvanccdTechnology Attachment)接口規(guī)范。因此,對(duì)CF卡的訪(fǎng)問(wèn)有基于PCMCIA規(guī)范的Memory Map模式、I/O方式以及基于ATA規(guī)范的True IDE方式。這里所實(shí)現(xiàn)的Bootloader中,CF卡工作在Truc IDE模式下,將CF卡的0E(Output Enable)引腳設(shè)置為低電平(反之,若為高電平,則CF卡將工作在PCMCIA規(guī)范的Memory Map模式或I/O模式下)。
    對(duì)CF卡的True IDE工作模式設(shè)置完成后,通過(guò)向CF卡的寄存器寫(xiě)入必要的信息實(shí)現(xiàn)對(duì)CF卡的控制及讀寫(xiě)。CF卡主要包含以下寄存器:
    ◆數(shù)據(jù)寄存器(R/W),用于對(duì)扇區(qū)的讀/寫(xiě)操作,主機(jī)通過(guò)該寄存器向CF卡控制器寫(xiě)入或從CF卡控制寄存器讀出扇區(qū)緩沖區(qū)的數(shù)據(jù);
    ◆錯(cuò)誤寄存器(R),控制寄存器在診斷方式或操作方式下的錯(cuò)誤原因;
    ◆扇區(qū)數(shù)寄存器(R/W)。記錄讀、寫(xiě)命令的扇區(qū)數(shù)目;
    ◆扇區(qū)號(hào)寄存器(R/W),記錄讀、寫(xiě)和校驗(yàn)命令指定的起始扇區(qū)號(hào);
    ◆柱面號(hào)寄存器(R/W),記錄讀、寫(xiě)、校驗(yàn)和尋址命令指定的柱面號(hào);
    ◆驅(qū)動(dòng)器/寄存器(R/W),記錄讀、寫(xiě)、校驗(yàn)和尋道命令指定的驅(qū)動(dòng)器號(hào)、磁頭號(hào)和尋址方式;
    ◆狀態(tài)寄存器(R),反映CF卡驅(qū)動(dòng)器執(zhí)行命令后的狀態(tài),讀浚寄存器要清除中斷請(qǐng)求信號(hào);
    ◆命令寄存器(W),命令寄存器接收主機(jī)發(fā)送的CF卡工作的控制命令。
    從CF卡讀取數(shù)據(jù)的過(guò)程如圖4所示。

2.3 文件系統(tǒng)支持
   
要對(duì)CF卡進(jìn)行文件存取,必須將CF卡格式化成某種文件系統(tǒng)。本實(shí)驗(yàn)所編寫(xiě)的Bootloader主要支持3種文件系統(tǒng):FATl6、FAT32和EXT2。當(dāng)需要對(duì)嵌入式系統(tǒng)的內(nèi)核映像(映像文件名為zlmage)或根文件系統(tǒng)映像(映像文件名為tootfs.img)進(jìn)行升級(jí)時(shí),將待更新的映像文件按照指定的文件名拷貝到CF存儲(chǔ)卡中。系統(tǒng)啟動(dòng)時(shí),Bootloader首先檢測(cè)CF存儲(chǔ)卡的文件系統(tǒng)類(lèi)型,然后按照相應(yīng)的文件系統(tǒng)格式查詢(xún)CF卡中的所有文件。若發(fā)現(xiàn)待更新的映像文件,則調(diào)用CF卡底層操作(詳見(jiàn)2.2節(jié)),將映像文件讀出到SDRAM中,再?gòu)腟DRAM燒寫(xiě)到嵌入式開(kāi)發(fā)板的Flash中,實(shí)現(xiàn)升級(jí)。有關(guān)文件系統(tǒng)的實(shí)現(xiàn)細(xì)節(jié),詳見(jiàn)參考文獻(xiàn)。


3 結(jié)論
   
通過(guò)CF存儲(chǔ)卡對(duì)嵌入式系統(tǒng)的自動(dòng)升級(jí),一方面可以簡(jiǎn)化升級(jí)過(guò)程,無(wú)需通過(guò)串口或網(wǎng)絡(luò)將目標(biāo)板與主機(jī)相連,將文件下載升級(jí),而只需插入CF卡,啟動(dòng)系統(tǒng)便可以完成升級(jí)過(guò)程;另一方面,升級(jí)速度也大大提高,因?yàn)橄到y(tǒng)對(duì)CF卡的存取速度遠(yuǎn)遠(yuǎn)高于串口或網(wǎng)絡(luò)。但是,要通過(guò)CF卡實(shí)現(xiàn)系統(tǒng)升級(jí),嵌入式板必須具有CF卡接口,因此,它并不適合所有的嵌入式系統(tǒng)

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險(xiǎn)積極籌備個(gè)人養(yǎng)老金的產(chǎn)品設(shè)計(jì)和系統(tǒng)開(kāi)發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動(dòng)商業(yè)養(yǎng)老保險(xiǎn)、個(gè)人養(yǎng)老金、專(zhuān)屬商業(yè)養(yǎng)老保險(xiǎn)等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動(dòng)的最基本功能。而對(duì)于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對(duì)于空間和生活深層關(guān)系的思考,同時(shí)也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績(jī)預(yù)告。今年前三季度,公司預(yù)計(jì)實(shí)現(xiàn)營(yíng)業(yè)收入7.54億元至8.33億元,同比增長(zhǎng)60.24%至77.03%;歸母凈利潤(rùn)預(yù)計(jì)為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟(jì)和信息化局發(fā)布2022年度第一批北京市市級(jí)企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠(chéng)健華正式獲得"北京市企業(yè)技術(shù)中心"認(rèn)定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國(guó)際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國(guó)軟件定義存儲(chǔ)及超融合市場(chǎng)研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷(xiāo)售額同比增長(zhǎng)59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團(tuán)成立60周年的紀(jì)念日。趁著首都銀行集團(tuán)成立60周年與首都銀行(中國(guó))在華深耕經(jīng)營(yíng)12年的“大日子”,圍繞作為外資金融機(jī)構(gòu)對(duì)在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國(guó)際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國(guó)進(jìn)出口商品交易會(huì)("廣交會(huì)")于"云端"開(kāi)幕。本屆廣交會(huì)上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過(guò)140,...

關(guān)鍵字: 中國(guó)智造 BSP 手機(jī) CAN

Lua RTOS 是一個(gè)實(shí)時(shí)操作系統(tǒng),設(shè)計(jì)在嵌入式系統(tǒng)上運(yùn)行,對(duì) FLASH 和 RAM 內(nèi)存的要求最低。目前 Lua RTOS 可用于 ESP32, ESP8266 和 PIC32MZ 平臺(tái),并可以輕松移植到其他32位...

關(guān)鍵字: Lua RTOS 操作系統(tǒng) 嵌入式系統(tǒng)

通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱(chēng)作UATR,是一種串行、異步、全雙工的收發(fā)器。全雙工的UART支持同時(shí)雙向通信,是嵌入式系統(tǒng)必不可少的d...

關(guān)鍵字: 異步收發(fā) 傳輸器 嵌入式系統(tǒng)

嵌入式教程

6897 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉