在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式設(shè)備遠(yuǎn)程在線升級技術(shù)的研究

            嵌入式設(shè)備遠(yuǎn)程在線升級技術(shù)的研究

            作者: 時間:2012-07-06 來源:網(wǎng)絡(luò) 收藏

            2.2 系統(tǒng)軟件設(shè)計(jì)
            2.2.1 Bootloader工作原理
            Bootloader位于FLASH的起始處,主要是用來啟動系統(tǒng),并且裝載用戶程序執(zhí)行,如果沒有Bootloader,硬件啟動成功后,將直接運(yùn)行用戶應(yīng)用程序。反之,Bootloader的啟動代碼將先被執(zhí)行,進(jìn)行一系列的初始化操作后,根據(jù)預(yù)先設(shè)定的條件,選擇執(zhí)行用戶應(yīng)用程序或升級控制程序。
            Bootloader包含兩種不同的操作模式:“啟動加載”模式和“下載”模式。啟動加載模式:這種模式也稱為“自主”模式。也就是Bootloader從目標(biāo)機(jī)上的某個固態(tài)存儲上將操作系統(tǒng)加載到RAM中運(yùn)行,整個過程并沒有用戶的介入。這種模式是Boodoader的正常工作模式。下載模式:在這種模式下,目標(biāo)機(jī)上的Bootloader將通過串口連接或網(wǎng)絡(luò)連接等通信手段從PC下載文件,比如:下載內(nèi)核映像和根文件系統(tǒng)映像等。從主機(jī)下載的文件通常首先被Bootloader保存到目標(biāo)機(jī)的RAM中,然后再被Bootloader寫到目標(biāo)機(jī)上的FLASH類固態(tài)存儲中。Bootloader工作原理流程圖如圖3所示。

            本文引用地址:http://www.biyoush.com/article/148804.htm

            d.JPG


            2.2.2 FLASH存儲器編程及升級流程
            終端的升級主要是對ARM芯片內(nèi)部的FLASH存儲器的原始數(shù)據(jù)進(jìn)行擦除以及新數(shù)據(jù)的下載的過程。本采用IAP(In-Application Programming)進(jìn)行FLASH編程,在應(yīng)用編程IAP是從結(jié)構(gòu)上將FLASH存儲器映射為兩個存儲體,當(dāng)運(yùn)行一個存儲體上的用戶程序時,可對另一個存儲體重新編程,之后將程序從一個存儲體轉(zhuǎn)向另一個;同時還可以在應(yīng)用程序控制下,對程序某段存儲空間進(jìn)行讀取、擦除和寫入操作。IAP的實(shí)現(xiàn)極為靈活,可利用單片機(jī)的串行口接到計(jì)算機(jī)的RS232口,通過專門設(shè)計(jì)的固件程序來編程內(nèi)部存儲器,可以通過現(xiàn)有的Inte rnet或其他通訊方式很方便地實(shí)現(xiàn)升級和維護(hù)。
            為了實(shí)現(xiàn)升級將ARM芯片內(nèi)部的FLASH存儲器劃分為Bootloader區(qū)(程序啟動區(qū))、升級處理區(qū)、用戶代碼0區(qū)、用戶代碼1區(qū)。如圖4所示。

            e.JPG


            啟動區(qū)主要用于存放系統(tǒng)初始化代碼以及引導(dǎo)程序Boofloader,當(dāng)CPU復(fù)位后,自動執(zhí)行該段程序代碼,該程序的主要功能是讀取片外EEPROM中相關(guān)標(biāo)志,判定系統(tǒng)的運(yùn)行模式,若是工作模式,則根據(jù)片外EEPROM中其他標(biāo)志,跳轉(zhuǎn)到規(guī)定的應(yīng)用程序區(qū)的首地址;若是升級模式,則進(jìn)入軟件升級處理部分的首地址。
            升級處理區(qū)主要是負(fù)責(zé)接收程序代碼數(shù)據(jù)包、校驗(yàn)、固化程序代碼等;當(dāng)升級完畢后,將修改片外EEPROM中相關(guān)標(biāo)志,指示CPU復(fù)位后的運(yùn)行模式和復(fù)位后應(yīng)運(yùn)行的程序區(qū)。
            用戶代碼0區(qū)和用戶代碼1區(qū)用于交替存放當(dāng)前用戶代碼以及升級代碼,若當(dāng)前用戶代碼放在0區(qū),則將接收到的升級代碼存放在1區(qū),此時用戶代碼1區(qū)便成為當(dāng)前終端指向的用戶程序,而用戶代碼0區(qū)則用于存放下次升級時的新代碼。
            終端上電后首先進(jìn)入Bootloader區(qū)進(jìn)行系統(tǒng)的初始化,接著終端從片外的EEPROM中讀取升級配置,包括升級標(biāo)志位,已收到的最后一個數(shù)據(jù)包的ID等,若終端處于升級狀態(tài),則發(fā)出向服務(wù)器索要升級數(shù)據(jù)的指令,此時指令中將包含終端上次已接收到的最后一個數(shù)據(jù)包的ID,這樣可以避免服務(wù)器重復(fù)發(fā)送數(shù)據(jù)包,實(shí)現(xiàn)續(xù)傳的功能。終端通過Internet接收數(shù)據(jù)包并對數(shù)據(jù)包進(jìn)行校驗(yàn)判斷以保證接收到正確的數(shù)據(jù)。由于FLASH中進(jìn)行編程的最小單位是頁,當(dāng)接收到的數(shù)據(jù)達(dá)到一頁后,通過IAP進(jìn)行編程,編程結(jié)束后將最后一條數(shù)據(jù)包的ID保存在EEP ROM中,所有升級數(shù)據(jù)發(fā)送結(jié)束并編程成功后,通過IAP指示CPU復(fù)位后應(yīng)運(yùn)行的應(yīng)用程序區(qū)域。具體的軟件升級流程圖如圖5所示。

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉