您好,登錄后才能下訂單哦!
本篇文章為大家展示了使用NVRAM的簡單解決方案是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
許多供應(yīng)商提供專為NVRAM使用的現(xiàn)成文件系統(tǒng)軟件。除非要求某些專門功能,否則開發(fā)人員自行設(shè)計在經(jīng)濟(jì)上會所產(chǎn)生的問題。數(shù)據(jù)結(jié)構(gòu)的存儲主要是針對特定應(yīng)用程序的,因此將進(jìn)一步解決。本文芯片存儲器供應(yīng)商宇芯電子介紹關(guān)于使用NVRAM的簡單解決方案。
非易失性使用普通的易失RAM很簡單。上電時必須將其初始化為一個已知值,然后可以根據(jù)需要對其進(jìn)行寫入和讀取。借助NV-SRAM,面臨兩個新挑戰(zhàn):
?開機(jī)時,軟件需要識別NVRAM是否已初始化,如果尚未初始化,請執(zhí)行該初始化。
?數(shù)據(jù)的完整性,尤其是斷電一段時間后,需要進(jìn)行驗證。
NVRAM初始化
首次啟動NVRAM時,就像普通RAM一樣,它包含不確定的數(shù)據(jù),需要初始化。在隨后的情況下,軟件需要識別NVRAM已初始化,并且不會覆蓋此保存的數(shù)據(jù)。
進(jìn)行這種識別的最簡單方法是使用簽名,該簽名只是可以快速識別的字節(jié)序列,不能隨機(jī)出現(xiàn)。這種理想是不可能的,因為任何字節(jié)序列(無論多長)都可能隨機(jī)發(fā)生。只是最大程度地減少這種可能性,同時仍然使檢查變得快捷容易。如果簽名只有4個字節(jié),則隨機(jī)發(fā)生簽名的可能性為40億比1。對于幾乎所有可以想象的應(yīng)用程序來說已經(jīng)足夠了。并且可以快速檢查32位值。
通過仔細(xì)選擇簽名值便可以減少意外發(fā)生的機(jī)會。一個連續(xù)的數(shù)字序列(例如1、2、3、4)比“隨機(jī)”集合感覺不太可能。畢竟彩票最后一次是什么時候產(chǎn)生連續(xù)的數(shù)字序列的?當(dāng)然這種序列與其他序列一樣可能或不太可能。但是通過考慮內(nèi)存的工作方式,特定序列的可能性可能會增加。首次開機(jī)時的內(nèi)存可能具有哪些值?大致有四種可能性:
1、完全隨機(jī)
2、全零
3、所有的
4、一些反映芯片架構(gòu)的規(guī)則模式(例如交替的1和0)
如果為(1),那么任何簽名都會給我們40億比1的機(jī)會。其他任何一個都可以通過使用正確的簽名來檢測??赡艿那闆r如下:0x00、0xff,0xaa,0x55。這應(yīng)該覆蓋所有(2),(3)和(4),但仍僅為32位。
初始化序列需要謹(jǐn)慎。設(shè)置有效數(shù)據(jù),然后將簽名初始化為過程中的最后一件事是至關(guān)重要的。
非易失性NV-SRAM完整性
當(dāng)然,使用簽名并不能保證數(shù)據(jù)的完整性。使用校驗和或CRC進(jìn)行錯誤檢查,甚至使用數(shù)據(jù)自校正機(jī)制都是明智的。
使用NVRAM進(jìn)行系統(tǒng)啟動
當(dāng)使用NVRAM時,啟動邏輯需要容納簽名驗證和數(shù)據(jù)完整性檢查
結(jié)論
在嵌入式設(shè)計中使用NVRAM很簡單,但是確實需要按此處所述小心地適應(yīng)其功能。使用全局簽名和錯誤檢查的方法適用于許多應(yīng)用程序。對于非常大的數(shù)據(jù)庫,單獨檢查每個數(shù)據(jù)塊可能會更有效率。使用C ++對應(yīng)用程序代碼開發(fā)人員隱藏NVRAM管理,從而最大程度地減少程序員錯誤的可能性,也可能是值得的。
上述內(nèi)容就是使用NVRAM的簡單解決方案是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。