上一篇文章介紹了第一種NVM區備份機制,但寫入資料長度受限于扇區大小,本文介紹第二種NVM區資料備份機制。此方法會先將NVM區劃分為A、B兩個等大小區域,將A區作為正式資料區,B區作為備份區,每個區域的最后一位元組為資料有效標志位FLAG,1表示該區資料有效,0表示該區資料無效。更新資料程序中若出現掉電,重新上電后先根據A、B兩區FLAG判斷哪個區域內資料有效,進而繼續完成更新操作。本例中NVM區大小是32KB,A區大小劃分為16KB,B區大小劃分為16KB。舉例說明:本例假設A區已經成功寫入了資料,需要向NVM區寫入新資料。其他情況處理流程與下述4步同理。
(1)判斷A區FLAG = 1后,將A區資料讀出寫入到B區,寫入成功后,將B區 FLAG賦值為1。
(2)B區FLAG修改成功后,將A區FLAG標志改為0。
(3)A區FLAG標志修改成功后,對A區進行資料更新操作,即寫入新資料。更新成功后,將A區FLAG標志寫為1。
(4)A區FLAG修改成功后,將B區FLAG標志修改為 0,至此完成資料更新操作。
至此,兩種NVM區資料備份方案全部介紹完畢。
uj5u.com熱心網友回復:
資料備份這兩套方案分別適用于小資料量和大資料量,那安全性哪個更高呢?uj5u.com熱心網友回復:
我覺得安全性都是一樣的吧,就看哪個方案更適合自己uj5u.com熱心網友回復:
連續拜讀了樓相關這幾篇文章,學到很多東西,感徑訓是這種方案簡單易操作點,只是不確定這幾種方法各自的優缺點在哪?uj5u.com熱心網友回復:
樓主介紹的這種NVM區資料備份機制有什么優缺點嗎?uj5u.com熱心網友回復:
優點很明顯,要說缺點,可能就是NVM區只有一半區域可用,因為另一半作為備份區了。uj5u.com熱心網友回復:
A、B區FLAG反復修改有些凌亂uj5u.com熱心網友回復:
樓主分享的很好,哪種芯片是這種機制,有介紹嗎?uj5u.com熱心網友回復:
例如LKT4306演算法下載的芯片,更新NVM區存放資料時,需要增加備份uj5u.com熱心網友回復:
不錯先收藏,下次流程換成流程圖說明就更容易理解了。uj5u.com熱心網友回復:
兩種方法更有優劣吧?從常規角度來說是不是上一篇應用更廣泛呢?uj5u.com熱心網友回復:
NVM和DRAM相比哪個性能更高些呢?讀寫速度和壽命哪個更有優勢呢?uj5u.com熱心網友回復:
這樣寫豈不是將寫操作的時間加倍了?uj5u.com熱心網友回復:
挺好的,多寫點這類技術文章,對于最近的專案很有用。uj5u.com熱心網友回復:
這樣備份使用空間就小了呀,有沒有可以從硬體解決的方法呢,硬體增加個電路啥的?uj5u.com熱心網友回復:
這樣就增加硬體成本了,成本太高性價比就下降了uj5u.com熱心網友回復:
修改后會不會出現漏洞之類的?uj5u.com熱心網友回復:
文章很棒,持續關注樓主中。。。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/98678.html
標籤:硬件使用
上一篇:pic16F886怎樣編程
下一篇:2019年江西省電子設計大賽賽題
