国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

xiaoyuhzou1228的個(gè)人空間 http://m.qingdxww.cn/space-uid-139997.html [收藏] [復(fù)制] [RSS]

博客

NVM區(qū)數(shù)據(jù)備份機(jī)制

熱度 10已有 1728 次閱讀2019-8-8 17:24

上一篇主要說(shuō)明NVM區(qū)操作注意事項(xiàng),本文針對(duì)上篇提到的NVM區(qū)數(shù)據(jù)備份方法進(jìn)行補(bǔ)充講解。

NVM區(qū)主要特性是寫(xiě)入數(shù)據(jù)掉電不丟失,可以永久的保存數(shù)據(jù),一般用作存放不經(jīng)常修改的數(shù)據(jù),此功能類似FLASH。向NVM區(qū)寫(xiě)入數(shù)據(jù)可分為3步:第一步,將目標(biāo)扇區(qū)內(nèi)原有數(shù)據(jù)讀出到RAM中;第二步,擦除NVM目標(biāo)扇區(qū)內(nèi)數(shù)據(jù);第三步,將新數(shù)據(jù)和RAM中的舊數(shù)據(jù)寫(xiě)入到該扇區(qū)中。基于以上寫(xiě)操作的特點(diǎn)可以看出,若執(zhí)行寫(xiě)NVM區(qū)操作的第二步或第三步時(shí)芯片斷電了,就會(huì)造成NVM區(qū)內(nèi)原有數(shù)據(jù)丟失,而新數(shù)據(jù)寫(xiě)入失敗,表現(xiàn)出NVM區(qū)內(nèi)數(shù)據(jù)錯(cuò)亂的現(xiàn)象。雖然這只是小概率事件,但出于穩(wěn)定性和產(chǎn)品健壯性考慮也要加入數(shù)據(jù)備份機(jī)制。

數(shù)據(jù)備份有兩套基本方案,分別適用于小數(shù)據(jù)量和大數(shù)據(jù)量的應(yīng)用場(chǎng)景。本期介紹小數(shù)據(jù)量備份方案,即要求每次更新數(shù)據(jù)量小于一個(gè)扇區(qū)大小減1,本例扇區(qū)大小256字節(jié),因此更新數(shù)據(jù)量最大255字節(jié)。(注意:不同型號(hào)芯片NVM扇區(qū)大小會(huì)有差異,可以聯(lián)系凌科技術(shù)確認(rèn))。實(shí)現(xiàn)思路是:從NVM區(qū)選取兩塊區(qū)域,每個(gè)區(qū)域的最后一字節(jié)記錄該區(qū)域的操作次數(shù)。以該標(biāo)志決定更新數(shù)據(jù)應(yīng)選用哪個(gè)區(qū)域。依次循環(huán)操作兩個(gè)區(qū)域,操作區(qū)域1的時(shí)候,區(qū)域2就充當(dāng)了備份作用,反之同理。

第一次寫(xiě)入數(shù)據(jù)

第一步:將NVM區(qū)地址0x0000~0x00FF定義為Block1,將0x0200~0x02FF定義為Block2。

#define Block1 0x0000

#define Block2 0x0200

第二步:定義一個(gè)256字節(jié)的數(shù)組databuf和一個(gè)標(biāo)志位變量cnt,并將cnt賦值0。

unsigned char databuf[256];

Unsigned char cnt = 0;

第三步:將目標(biāo)數(shù)據(jù)(待寫(xiě)入數(shù)據(jù))拷貝到databuf數(shù)組中,并將cnt+1拷貝到databuf+255的位置。

databuf[255] = cnt+1;

第四步:調(diào)用WriteNVM函數(shù)向Block1寫(xiě)入數(shù)據(jù)databuf,寫(xiě)入長(zhǎng)度256字節(jié)。調(diào)用WriteNVM函數(shù)向Block2+255位置寫(xiě)入cnt,寫(xiě)入長(zhǎng)度1字節(jié)

WriteNVM(Block1,databuf,256);

WriteNVM(Block2+255,&cnt,1);

更新數(shù)據(jù)

第一步:調(diào)用ReadNVM函數(shù)分別讀取Block1和Block2的標(biāo)志位(最后一字節(jié))。

unsigned char flag1,flag2;

ReadNVM(Block1+255,&flag1,1);

ReadNVM(Block2+255,&flag2,1);

第二步:判斷兩個(gè)Block的標(biāo)志位大小,選取標(biāo)志位數(shù)值小的Block進(jìn)行更新。將目標(biāo)數(shù)據(jù)(待寫(xiě)入數(shù)據(jù))拷貝到databuf數(shù)組中,并將標(biāo)志位加2后拷貝到databuf+255的位置。

if(flag1 > flag2)

{

cnt = flag2 + 2;

databuf[255] = cnt;

WriteNVM(Block2,databuf,256);
}else{

cnt = flag1 +2;

databuf[255] = cnt;

WriteNVM(Block1,databuf,256);

}

讀取數(shù)據(jù)

第一步:讀取Block1和Block2的標(biāo)志位數(shù)據(jù)。

ReadNVM(Block1+255,&flag1,1);

ReadNVM(Block2+255,&flag2,1);

第二步:判斷標(biāo)志位大小,數(shù)值大的Block內(nèi)為新數(shù)據(jù),數(shù)值小的Block內(nèi)為舊數(shù)據(jù)。

if(flag1 > flag2)

{

ReadNVM(Block1,databuf,255);

}else{

ReadNVM(Block2,databuf,255);

}


路過(guò)

雞蛋

鮮花

握手

雷人

發(fā)表評(píng)論 評(píng)論 (20 個(gè)評(píng)論)

回復(fù) tyl20100 2019-8-13 17:15
能來(lái)點(diǎn)干貨嗎?期待樓主的更新
回復(fù) zhanglu95 2019-8-13 17:18
太專業(yè)了,不明覺(jué)厲。
回復(fù) dg336699 2019-8-13 17:27
太棒啦,有了NVM區(qū)數(shù)據(jù)備份機(jī)制,芯片斷電的時(shí)候,就不用擔(dān)心NVM區(qū)內(nèi)原有數(shù)據(jù)丟失和新數(shù)據(jù)寫(xiě)入失敗了,贊!
回復(fù) Test_wf 2019-8-13 20:21
雖然感覺(jué)操作有點(diǎn)復(fù)雜,但是能解決數(shù)據(jù)掉電不丟失的情況,麻煩點(diǎn)也能接受,下次可以試一下
回復(fù) miniminimini 2019-8-13 22:18
這個(gè)方法不錯(cuò),可以試試
回復(fù) tyl20100 2019-8-14 08:34
如此操作的好處是什么?會(huì)不會(huì)導(dǎo)致可用數(shù)據(jù)區(qū)變小呢?
回復(fù) kessy1 2019-8-14 09:11
好處是數(shù)據(jù)有備份,不會(huì)丟失。數(shù)據(jù)區(qū)雖然變小,但是夠用就行。
回復(fù) wang0327 2019-8-14 09:31
這樣操作影響數(shù)據(jù)的讀寫(xiě)速度嗎?
回復(fù) 小屁孩123 2019-8-14 13:54
讀寫(xiě)速度相比沒(méi)有備份機(jī)制的速度慢了
回復(fù) QL87 2019-8-15 13:18
讀寫(xiě)速度應(yīng)該是存儲(chǔ)的數(shù)據(jù)大小有關(guān)系,如果數(shù)據(jù)很大,讀寫(xiě)的速度肯定會(huì)變慢一些
回復(fù) zhanglu95 2019-8-15 13:49
哪款產(chǎn)品有NVM區(qū)呢?樓主推薦一下
回復(fù) kessy1 2019-8-15 18:15
很多芯片都有NVM區(qū),你可以咨詢幾個(gè)廠家問(wèn)問(wèn),LKT的有個(gè)型號(hào)是帶NVM的,具體還得看你需要多大的空間
回復(fù) dg336699 2019-8-15 19:27
看完樓主最近這幾篇文章,大概了解啦NVM區(qū)數(shù)據(jù)備份機(jī)制,文章不錯(cuò)!
回復(fù) miniminimini 2019-8-16 08:25
看了樓主的文章很有啟發(fā),這就去咨詢一下
回復(fù) wang0327 2019-8-16 08:53
樓上提到的LKT和樓主說(shuō)的凌科技術(shù)是一家嗎?有哪位大神用過(guò)他家產(chǎn)品沒(méi)?產(chǎn)品技術(shù)怎么樣?怎樣才能聯(lián)系到他們的技術(shù)人員?
回復(fù) QL87 2019-8-16 16:29
這么搞的話,太局限了,超過(guò)256字節(jié)就沒(méi)法用了,太理想化
回復(fù) 小屁孩123 2019-8-16 17:00
文中的小概率事件能不能避免
回復(fù) zhanglu95 2019-8-19 09:04
樓上同問(wèn)
回復(fù) Test_wf 2019-8-19 13:40
不同型號(hào)的加密芯片其NVM扇區(qū)大小有差異,是不是越大的越好?
回復(fù) tyl2010 2019-8-19 21:27
防數(shù)據(jù)丟失有多種方案這個(gè)先收藏以后嘗試一下。

facelist

您需要登錄后才可以評(píng)論 登錄 | 立即注冊(cè)

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
返回頂部
主站蜘蛛池模板: 青娱乐伊人| 久久香蕉国产线看观看首页| 在线免费日本| 一男多女生榨精h白丝| 99免费精品| 久久精品热播在线看| 亚洲AV无码国产精品色午夜情| 欧美特黄a级| 欧美午夜a级限制福利片| 天天躁日日躁狠狠躁综合| 特黄特色大片免费视频播放| 一区国产视频| 国产学生无码中文视频一区| 色欲AV精品人妻一区二区麻豆| 日产国产精品久久久久久| 青青青青在线成人视99| 午夜免费看片| 亚洲高清一区二区三区久久| jijzzizz中国版| 暖暖视频免费观看社区| 中文字幕va一区二区三区| 亚洲jizzjizz妇女| 四虎精品永久在线| 天堂欧美| 芳草地社区在线视频| 日产精品久久久久久久蜜殿| 五月天狠狠操| 青娱乐在线视频盛宴| 天天色天天色天天色| 97色伦图片7778久久| 欧美人与动牲交A免费| 天堂成人网| 欧美综合视频在线| 亚洲综合激情丁香六月| 一级黄a| 国产三级在线免费观看| 亚洲高清视频在线观看| 亚洲最大网址| 天天色天天色| 亚洲精品第一综合99久久| 高h肉文合集|