日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
閃存中的底層操作系統(tǒng)更新策略
閃存中的底層操作系統(tǒng)更新策略
 更新時間:2008-8-4 5:01:43  點擊數(shù):3
【字體: 字體顏色

程序4中的程序表明如何將完整編程器的代碼復制到RAM中,以及programmer()函數(shù)如何找到RAM的形式。符號RAM_PROG_START、 PROG_LEN及ROM_PROG_START是RAM和ROM區(qū)域里的標記,那里存放著編程器代碼(也可能是整個應用程序的一部分),通?梢杂贸绦蜻B接器自動計算出來。這種在entrypoint中看似復雜的計算方法迫使匯編程序在算entrypoint的值時按字節(jié)大小進行計算。

當調(diào)用程序調(diào)用relocate_programmer()返回地址處的函數(shù)時,控制權就交給微編程器代碼在RAM中的拷貝,如果這時調(diào)試器還在運行,就會停止顯示任何與programmer()函數(shù)有關的符號信息。為什么會這樣呢?這是因為programmer()現(xiàn)在是從不同于以前分配的地址開始運行,因此任何通過連接器提供給調(diào)試器的符號信息都是毫無意義的。

解決這個問題的方法是將應用程序和RAM地址中的 programmer()重新連接,然后將代碼信息導入調(diào)試器中。這是一種很方便的糾正方法,只不過有些調(diào)試器的代碼表不支持新增內(nèi)容。另外一種方法就是忍受,直到programmer()調(diào)試完成,不管怎樣這時理論上是不需要再看代碼的了。

重新定位

不是所有嵌入式系統(tǒng)開發(fā)工具鏈都可以產(chǎn)生在運行時可以重定位的代碼,這種依賴位置的代碼需要從存放有連接的地址開始運行,否則系統(tǒng)有可能崩潰。

如果只有位置固定的微編程器,則它必須下載到連接器希望運行的RAM地址中。正如前面所說,它表明為微編程器而保留的內(nèi)存必須安排在一個已知的位置。

采用啟動加載方式時,可以有兩種選擇。第一個是將編程器代碼作為一個單獨程序進行匯編并放于它在RAM中的目標地址處,然后將這個代碼映像包含在應用程序映像中(也許是通過將其二進制映像轉(zhuǎn)換成固定的字符陣列),最后在開始更新底層操作系統(tǒng)時復制到RAM中。這個過程有點類似于微編程器的執(zhí)行過程,即從目標板上的存儲器下載微編程器,而不是從串口下載。

第二種是將完整的微編程器代碼作為初始數(shù)據(jù)來處理,然后用運行時間環(huán)境的正常初始化程序?qū)⒋a復制到RAM中。GNU匯編程序使用_attribute_語言擴展支持這種方式,還有好幾種商用匯編程序也可提供這種能力。這種方法的唯一局限在于它需要足夠的RAM空間來容納全部程序代碼以及程序的其它數(shù)據(jù)。

防止系統(tǒng)崩潰

哪怕再小心設計底層操作系統(tǒng)下載,也還是存在目標硬件從空白存儲器進行啟動的可能性。要避免這種情況出現(xiàn),就要迅速激活應用程序的轉(zhuǎn)換機制,但這樣會使毫無準備的用戶手忙腳亂。解決這一問題需要仔細研究目標處理器對非法指示及閃存中未編程部分用0xff表示的數(shù)據(jù)的反應,最好是在用戶實際感受到問題前就開始研究。有些處理器最后會停止下來,并使其控制信號處于三態(tài),懸浮于外部硬件要求的任一值上,如果此時沒有上拉電阻或采取其它預防措施迫使這些不受控制的信號進入安全狀態(tài),很容易導致預料不到的死機結果。

監(jiān)測計數(shù)器

在支持底層操作系統(tǒng)下載的系統(tǒng)中,一些無法避免的應用程序缺陷會使看門狗計數(shù)器停頓下來并使系統(tǒng)復位,從而將微編程器排除在嵌入式系統(tǒng)的外面。極端的情況是在程序的main ()函數(shù)中意外出現(xiàn)的while(1)語句,產(chǎn)生的循環(huán)嵌套(無限程序循環(huán)外面又是無限看門狗超時及系統(tǒng)復位循環(huán))使目標對升級按鈕沒有反應,因為在檢查按鈕之前系統(tǒng)就已經(jīng)重啟了。

支持底層操作系統(tǒng)下載的系統(tǒng)要仔細檢查所有可能的狀態(tài),以便決定為什么系統(tǒng)要啟動,并在探測到大量連續(xù)的看門狗信號和其它復位時迫使它轉(zhuǎn)換成升級模式。很多系統(tǒng)在看門狗計數(shù)器終止時不會中斷RAM的電源,因此可以在那里安全地存儲關鍵數(shù)據(jù)以及復位的計算次數(shù)。計數(shù)器每復位一次時就加一,到達某一個數(shù)量時,啟動代碼將停止應用程序,以避免代碼強制產(chǎn)生復位。

電源中斷

如果在閃存寫程序過程中電源意外中斷,目標閃存芯片在電源恢復時將可能處于矛盾的狀態(tài)。也許可能已完成寫程序的操作,一切正常,但也可能不是這樣。最好的情形是系統(tǒng)啟動代碼完整無缺,但部分應用程序代碼丟失;最糟的情況是閃存芯片還是空白,什么也沒寫進去。

對第一種情形可以用校驗和的方法檢測問題所在,這時不管用戶有沒有要求系統(tǒng)都會轉(zhuǎn)換到升級模式,對第二種情形唯一的解決辦法就是不要讓這種情況發(fā)生。

防止出現(xiàn)空白閃存芯片的方法就是不要刪除閃存中包含的系統(tǒng)啟動代碼部分,將這些代碼始終原封不動地保存起來,這樣即使電源中斷也可以維持足夠的啟動環(huán)境。然而這種方法也不是任何時候都適用。閃存芯片也許只有一個扇區(qū),要么全部刪除,要么全部保留;或者閃存芯片的“啟動區(qū)域”比它包含的啟動代碼要大,這樣會浪費存儲應用代碼的空間。

刪除以及寫入閃存芯片啟動區(qū)域時小心一點可以在電源突然中斷時減少系統(tǒng)受損的風險,有時可以完全避免。方法是這樣的,當檢測到需要對含啟動代碼的閃存區(qū)重新寫入程序時,程序器首先會在另一個區(qū)域中創(chuàng)建一個與位置無關的代碼副本(也可以設想有一個在預先位置克隆好的系統(tǒng)啟動代碼)。然后刪除啟動代碼,同時目標復位向量迅速恢復到臨時啟動代碼副本的位置。一旦啟動區(qū)域的程序?qū)戇M去之后,復位向量就重新寫入指向新的啟動代碼位置。

成功實現(xiàn)這種方法要依賴兩個重要因素,其中之一是應仔細選擇臨時和永久存放啟動代碼副本的地址。如果永久地址比臨時地址低兩級,只要數(shù)據(jù)位從1變成0臨時復位向量就會轉(zhuǎn)成永久復位向量,這樣就可能造成閃存區(qū)域不必要的刪除。使臨時復位向量轉(zhuǎn)成永久復位向量是一個細微的操作,不管電源何時中斷,向量始終應指向有效的位置。

另外一個關鍵因素是應避免在刪除啟動區(qū)域和寫入臨時復位向量之間電源中斷的風險。實現(xiàn)該目標所需能量可以從閃存芯片和微處理器規(guī)格表中的功耗計算出來,通常是在系統(tǒng)電源電路中增加一些電容彌補斷電造成的中斷,確認電源在運行時繼續(xù)保持,并一直不中斷直至區(qū)域刪除且臨時復位向量寫好為止,這樣可以避免可能產(chǎn)生的損壞。該方法的局限在于它依賴處理器啟動程序,要讀取復位向量得到初始程序計數(shù)器的值。復位后處理器簡單地從固定地址運行代碼,也可將它修改成智能操作代碼的混合體以實現(xiàn)同樣的目的。

硬件選項

采用微編程器的底層操作系統(tǒng)更新方法及由這種方法衍生而來的其它的方法都是以底層操作系統(tǒng)為基礎的,因為它們都要求在代碼重新編程前目標系統(tǒng)中已有代碼存在。這就產(chǎn)生了一個先有雞還是先有蛋的問題。如果在嵌入式系統(tǒng)中需要有代碼才能將新的代碼寫進去,怎樣才能將那些最初的代碼放進去呢?

要啟動這一過程現(xiàn)在有兩種現(xiàn)成的硬件可選,分別是后臺調(diào)試模式(BDM)和JTAG。

帶有BDM端口的處理器可以提供一個基本的直接連接處理器本身內(nèi)部結構的串口,通過向這個端口發(fā)送正確的指令和數(shù)據(jù),可以在目標系統(tǒng)的RAM中增加微編程器的副本,并將控制權轉(zhuǎn)交給它。BDM端口也可以用來激勵閃存芯片的I/O線,這樣就可以直接對它進行編程。很多以BDM為基礎的開發(fā)系統(tǒng)都包括一些腳本和程序可實現(xiàn)這一功能,但也可以在仔細研究處理器說明書之后,通過幾個芯片和電腦打印端口用人工方式來完成。

JTAG是一種設計為便于芯片I/O線進行讀寫的完全不同的技術,通常是在芯片的微處理器(如果有的話)保持復位狀態(tài)時采用。然而與BDM相同,這種能力可以用來激勵 RAM或閃存把微編程器加入到里面,像BDM一樣,JTAG接口也可以通過研究目標處理器說明書然后用幾個元件來實現(xiàn)。JTAG總線收發(fā)芯片有多種型號,可從不同的供應商處得到,并加在不支持JTAG的系統(tǒng)中。



  • 上一篇: 用實例學習如何在程序執(zhí)行時寫閃存
  • 下一篇: 移動式存儲器的原理與應用
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1