浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 接口電路

閃存中的底層操作系統(tǒng)更新策略

發(fā)布時(shí)間:2008/9/1 0:00:00 訪(fǎng)問(wèn)次數(shù):438

  將底層操作系統(tǒng)放于閃存中有很多好處,例如設(shè)計(jì)人員可以隨時(shí)在現(xiàn)場(chǎng)將軟件新版本下載到閃存中對(duì)其進(jìn)行更新,但在下載過(guò)程中有一些因素需要注意,否則會(huì)造成系統(tǒng)崩潰的災(zāi)難性后果。本文介紹一種便利的軟件結(jié)構(gòu),它可以幫助工程師避免犯一些常見(jiàn)的錯(cuò)誤。

  所有現(xiàn)場(chǎng)更新底層操作系統(tǒng)的方法都存在這樣一個(gè)問(wèn)題,即假如升級(jí)內(nèi)容中存在缺陷,那么目標(biāo)系統(tǒng)可能需要花很大力氣才能更正,許多缺陷很簡(jiǎn)單且顯而易見(jiàn),但有些隱藏很深的缺陷只有在產(chǎn)品完成以后才能顯現(xiàn)出來(lái)。

  用戶(hù)發(fā)現(xiàn)和處理缺陷的能力各有千秋,而更糟糕的是,他們往往不注意諸如“如果在編程過(guò)程中電源系統(tǒng)中斷系統(tǒng)將受到損壞”一類(lèi)的警告,在系統(tǒng)更新過(guò)程中,他們很愿意重新啟動(dòng)其它功能系統(tǒng),然后再把“出了問(wèn)題”的產(chǎn)品拿去維修。

  所有設(shè)計(jì)完好的底層操作系統(tǒng)更新過(guò)程,都要能夠盡可能從用戶(hù)的錯(cuò)誤和其它災(zāi)難性事件中恢復(fù),做到這一點(diǎn)最好的方法就是采取可靠的底層操作系統(tǒng)更新策略,以完全避免這些問(wèn)題。本文將討論這樣一種策略,它可以直接使用,但是也可以根據(jù)實(shí)際應(yīng)用的特性對(duì)它進(jìn)行修正。

  微編程器

  微編程器是對(duì)嵌入式系統(tǒng)在底層操作系統(tǒng)更新過(guò)程之前、過(guò)程中及之后運(yùn)行情況的一種系統(tǒng)級(jí)描述,這種對(duì)工作情形的描述有助于避免與其它底層操作系統(tǒng)下載方法有關(guān)的問(wèn)題,小心對(duì)待這些過(guò)程可以消除很多其它的擔(dān)心。

  采用微編程器的底層操作系統(tǒng)更新方法第一步是使嵌入式系統(tǒng)進(jìn)入下載發(fā)生時(shí)所期望的狀態(tài)。過(guò)渡到這個(gè)狀態(tài)可以采用好幾種方式,例如,它可以通過(guò)用戶(hù)按下設(shè)備控制界面上的“升級(jí)”鍵來(lái)完成,或者在系統(tǒng)探測(cè)到文件傳輸開(kāi)始或結(jié)束時(shí)進(jìn)行,或者用其它方法。不管哪種情況,目標(biāo)系統(tǒng)都會(huì)意識(shí)到底層操作系統(tǒng)馬上要更新了,于是讓其它控制過(guò)程進(jìn)入安全和穩(wěn)定的停止?fàn)顟B(tài)。

  下一步,目標(biāo)系統(tǒng)會(huì)收到一個(gè)叫做微編程器的應(yīng)用程序,微編程器將控制系統(tǒng),并開(kāi)始接收新的應(yīng)用底層操作系統(tǒng),將它寫(xiě)到閃存中。一切完成后,目標(biāo)系統(tǒng)就開(kāi)始運(yùn)行新的底層操作系統(tǒng)。

  采用微編程器下載底層操作系統(tǒng)的最大特點(diǎn)之一是它的靈活性,微編程器的執(zhí)行過(guò)程即使在底層操作系統(tǒng)開(kāi)始更新前的最后一刻也可以更改,以便對(duì)系統(tǒng)進(jìn)行錯(cuò)誤糾正和改進(jìn)。

  微編程器不會(huì)消耗目標(biāo)系統(tǒng)的資源,除非已開(kāi)始進(jìn)行編程。此外,由于微編程器很小,所以目標(biāo)系統(tǒng)在更新過(guò)程開(kāi)始時(shí)不需要龐大而復(fù)雜的通訊協(xié)議,只需簡(jiǎn)單的文本文件傳輸就足夠了。

  采用微編程器的底層操作系統(tǒng)更新其安全性一度是最引人注目的優(yōu)點(diǎn)。當(dāng)目標(biāo)系統(tǒng)的閃存芯片只用于存儲(chǔ)底層操作系統(tǒng)時(shí),系統(tǒng)將不會(huì)有對(duì)閃存芯片內(nèi)容進(jìn)行刪除和編程的代碼,除非實(shí)際過(guò)程中需要這樣。因此即使在程序失控的嚴(yán)重情況下,系統(tǒng)也不會(huì)意外地刪除它本身的底層操作系統(tǒng)。

  然而,微編程器也有缺點(diǎn),它通常作為一個(gè)獨(dú)立的程序執(zhí)行,因此下載和傳輸?shù)侥繕?biāo)系統(tǒng)的代碼需要分開(kāi)管理。處理程序組件時(shí)小心謹(jǐn)慎有助于減少后續(xù)工作量。

  微編程器一般都載入ram中運(yùn)行,這在某些微處理器結(jié)構(gòu)中是不可能的,尤其是古老的8051系列,雖然其結(jié)構(gòu)都是面向硬件的,但它的限制大過(guò)它所帶來(lái)的好處。

  下載過(guò)程

  程序1中的代碼顯示的是下載目標(biāo)系統(tǒng)和運(yùn)行微編程器所需要的功能。在這個(gè)例子中,目標(biāo)系統(tǒng)從某個(gè)i/o通道(也許是串口)接收文本形式的摩托羅拉s record文件,將它譯碼并寫(xiě)到ram中,然后在傳輸結(jié)束時(shí)目標(biāo)系統(tǒng)跳轉(zhuǎn)到下載代碼啟動(dòng)微編程器。

  注意programmer_buf[]存儲(chǔ)空間是自動(dòng)調(diào)整的,也就是說(shuō)它在目標(biāo)系統(tǒng)的存儲(chǔ)單元里沒(méi)有固定的位置,這意味著新記錄的地址是相對(duì)的而不是絕對(duì)的,新代碼的位置是獨(dú)立的。如果匯編程序不能產(chǎn)生位置獨(dú)立的代碼,那么programmer_buf[]就要在存儲(chǔ)器中分配一個(gè)固定的位置,新記錄的地址也要留在那個(gè)位置。

  假如目標(biāo)系統(tǒng)沒(méi)有資源可長(zhǎng)期分配給programmer_buf[],則新來(lái)的微編程器內(nèi)容可以放在其它數(shù)據(jù)的上面。此時(shí),系統(tǒng)無(wú)論如何都要中斷其它操作,將ram大部分空間留給微編程器。

  基本微編程器

  微型編程器的頂級(jí)代碼如程序2所示,這個(gè)代碼也可以從某些地方接收s。颍澹悖铮颍湮募⑵渥g碼。微編程器將新接收到的數(shù)據(jù)記錄在閃存中,當(dāng)文件傳輸完成后重新啟動(dòng)系統(tǒng)。雖然過(guò)于簡(jiǎn)單了些(用文本文件來(lái)傳輸大的程序也許不十分可靠),但這個(gè)代碼表示了微編程器的所有重要特征。

 。澹颍幔螅澹撸妫欤幔螅瑁ǎ┏藢(shí)際擦除閃存中的內(nèi)容外,它還管理簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),繼續(xù)跟蹤哪一段閃存中的數(shù)據(jù)需要擦除,哪一段已經(jīng)被擦除。s。颍

  將底層操作系統(tǒng)放于閃存中有很多好處,例如設(shè)計(jì)人員可以隨時(shí)在現(xiàn)場(chǎng)將軟件新版本下載到閃存中對(duì)其進(jìn)行更新,但在下載過(guò)程中有一些因素需要注意,否則會(huì)造成系統(tǒng)崩潰的災(zāi)難性后果。本文介紹一種便利的軟件結(jié)構(gòu),它可以幫助工程師避免犯一些常見(jiàn)的錯(cuò)誤。

  所有現(xiàn)場(chǎng)更新底層操作系統(tǒng)的方法都存在這樣一個(gè)問(wèn)題,即假如升級(jí)內(nèi)容中存在缺陷,那么目標(biāo)系統(tǒng)可能需要花很大力氣才能更正,許多缺陷很簡(jiǎn)單且顯而易見(jiàn),但有些隱藏很深的缺陷只有在產(chǎn)品完成以后才能顯現(xiàn)出來(lái)。

  用戶(hù)發(fā)現(xiàn)和處理缺陷的能力各有千秋,而更糟糕的是,他們往往不注意諸如“如果在編程過(guò)程中電源系統(tǒng)中斷系統(tǒng)將受到損壞”一類(lèi)的警告,在系統(tǒng)更新過(guò)程中,他們很愿意重新啟動(dòng)其它功能系統(tǒng),然后再把“出了問(wèn)題”的產(chǎn)品拿去維修。

  所有設(shè)計(jì)完好的底層操作系統(tǒng)更新過(guò)程,都要能夠盡可能從用戶(hù)的錯(cuò)誤和其它災(zāi)難性事件中恢復(fù),做到這一點(diǎn)最好的方法就是采取可靠的底層操作系統(tǒng)更新策略,以完全避免這些問(wèn)題。本文將討論這樣一種策略,它可以直接使用,但是也可以根據(jù)實(shí)際應(yīng)用的特性對(duì)它進(jìn)行修正。

  微編程器

  微編程器是對(duì)嵌入式系統(tǒng)在底層操作系統(tǒng)更新過(guò)程之前、過(guò)程中及之后運(yùn)行情況的一種系統(tǒng)級(jí)描述,這種對(duì)工作情形的描述有助于避免與其它底層操作系統(tǒng)下載方法有關(guān)的問(wèn)題,小心對(duì)待這些過(guò)程可以消除很多其它的擔(dān)心。

  采用微編程器的底層操作系統(tǒng)更新方法第一步是使嵌入式系統(tǒng)進(jìn)入下載發(fā)生時(shí)所期望的狀態(tài)。過(guò)渡到這個(gè)狀態(tài)可以采用好幾種方式,例如,它可以通過(guò)用戶(hù)按下設(shè)備控制界面上的“升級(jí)”鍵來(lái)完成,或者在系統(tǒng)探測(cè)到文件傳輸開(kāi)始或結(jié)束時(shí)進(jìn)行,或者用其它方法。不管哪種情況,目標(biāo)系統(tǒng)都會(huì)意識(shí)到底層操作系統(tǒng)馬上要更新了,于是讓其它控制過(guò)程進(jìn)入安全和穩(wěn)定的停止?fàn)顟B(tài)。

  下一步,目標(biāo)系統(tǒng)會(huì)收到一個(gè)叫做微編程器的應(yīng)用程序,微編程器將控制系統(tǒng),并開(kāi)始接收新的應(yīng)用底層操作系統(tǒng),將它寫(xiě)到閃存中。一切完成后,目標(biāo)系統(tǒng)就開(kāi)始運(yùn)行新的底層操作系統(tǒng)。

  采用微編程器下載底層操作系統(tǒng)的最大特點(diǎn)之一是它的靈活性,微編程器的執(zhí)行過(guò)程即使在底層操作系統(tǒng)開(kāi)始更新前的最后一刻也可以更改,以便對(duì)系統(tǒng)進(jìn)行錯(cuò)誤糾正和改進(jìn)。

  微編程器不會(huì)消耗目標(biāo)系統(tǒng)的資源,除非已開(kāi)始進(jìn)行編程。此外,由于微編程器很小,所以目標(biāo)系統(tǒng)在更新過(guò)程開(kāi)始時(shí)不需要龐大而復(fù)雜的通訊協(xié)議,只需簡(jiǎn)單的文本文件傳輸就足夠了。

  采用微編程器的底層操作系統(tǒng)更新其安全性一度是最引人注目的優(yōu)點(diǎn)。當(dāng)目標(biāo)系統(tǒng)的閃存芯片只用于存儲(chǔ)底層操作系統(tǒng)時(shí),系統(tǒng)將不會(huì)有對(duì)閃存芯片內(nèi)容進(jìn)行刪除和編程的代碼,除非實(shí)際過(guò)程中需要這樣。因此即使在程序失控的嚴(yán)重情況下,系統(tǒng)也不會(huì)意外地刪除它本身的底層操作系統(tǒng)。

  然而,微編程器也有缺點(diǎn),它通常作為一個(gè)獨(dú)立的程序執(zhí)行,因此下載和傳輸?shù)侥繕?biāo)系統(tǒng)的代碼需要分開(kāi)管理。處理程序組件時(shí)小心謹(jǐn)慎有助于減少后續(xù)工作量。

  微編程器一般都載入ram中運(yùn)行,這在某些微處理器結(jié)構(gòu)中是不可能的,尤其是古老的8051系列,雖然其結(jié)構(gòu)都是面向硬件的,但它的限制大過(guò)它所帶來(lái)的好處。

  下載過(guò)程

  程序1中的代碼顯示的是下載目標(biāo)系統(tǒng)和運(yùn)行微編程器所需要的功能。在這個(gè)例子中,目標(biāo)系統(tǒng)從某個(gè)i/o通道(也許是串口)接收文本形式的摩托羅拉s record文件,將它譯碼并寫(xiě)到ram中,然后在傳輸結(jié)束時(shí)目標(biāo)系統(tǒng)跳轉(zhuǎn)到下載代碼啟動(dòng)微編程器。

  注意programmer_buf[]存儲(chǔ)空間是自動(dòng)調(diào)整的,也就是說(shuō)它在目標(biāo)系統(tǒng)的存儲(chǔ)單元里沒(méi)有固定的位置,這意味著新記錄的地址是相對(duì)的而不是絕對(duì)的,新代碼的位置是獨(dú)立的。如果匯編程序不能產(chǎn)生位置獨(dú)立的代碼,那么programmer_buf[]就要在存儲(chǔ)器中分配一個(gè)固定的位置,新記錄的地址也要留在那個(gè)位置。

  假如目標(biāo)系統(tǒng)沒(méi)有資源可長(zhǎng)期分配給programmer_buf[],則新來(lái)的微編程器內(nèi)容可以放在其它數(shù)據(jù)的上面。此時(shí),系統(tǒng)無(wú)論如何都要中斷其它操作,將ram大部分空間留給微編程器。

  基本微編程器

  微型編程器的頂級(jí)代碼如程序2所示,這個(gè)代碼也可以從某些地方接收s。颍澹悖铮颍湮募⑵渥g碼。微編程器將新接收到的數(shù)據(jù)記錄在閃存中,當(dāng)文件傳輸完成后重新啟動(dòng)系統(tǒng)。雖然過(guò)于簡(jiǎn)單了些(用文本文件來(lái)傳輸大的程序也許不十分可靠),但這個(gè)代碼表示了微編程器的所有重要特征。

  erase_flash()除了實(shí)際擦除閃存中的內(nèi)容外,它還管理簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),繼續(xù)跟蹤哪一段閃存中的數(shù)據(jù)需要擦除,哪一段已經(jīng)被擦除。s。颍

相關(guān)IC型號(hào)

熱門(mén)點(diǎn)擊

 

推薦技術(shù)資料

耳機(jī)放大器
    為了在聽(tīng)音樂(lè)時(shí)不影響家人,我萌生了做一臺(tái)耳機(jī)放大器的想... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線(xiàn):13692101218  13751165337
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!