99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復(fù)
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

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

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

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

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

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

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

#define Block1 0x0000

#define Block2 0x0200

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

unsigned char databuf[256];

Unsigned char cnt = 0;

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

databuf[255] = cnt+1;

第四步:調(diào)用WriteNVM函數(shù)向Block1寫入數(shù)據(jù)databuf,寫入長度256字節(jié)。調(diào)用WriteNVM函數(shù)向Block2+255位置寫入cnt,寫入長度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);

第二步:判斷兩個Block的標(biāo)志位大小,選取標(biāo)志位數(shù)值小的Block進(jìn)行更新。將目標(biāo)數(shù)據(jù)(待寫入數(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);

}

全部回復(fù)(21)
正序查看
倒序查看
2019-08-13 17:16
能來點干貨嗎?期待樓主的更新
0
回復(fù)
zhanglu
LV.1
3
2019-08-13 17:20
@胖爺阿戈
能來點干貨嗎?期待樓主的更新
太專業(yè)了,不明覺厲。
0
回復(fù)
2019-08-13 17:33
@zhanglu
太專業(yè)了,不明覺厲。
太棒啦,有了NVM區(qū)數(shù)據(jù)備份機(jī)制,芯片斷電的時候,就不用擔(dān)心NVM區(qū)內(nèi)原有數(shù)據(jù)丟失和新數(shù)據(jù)寫入失敗了,贊!
0
回復(fù)
Hex315
LV.5
5
2019-08-13 20:26
@阿倫學(xué)
太棒啦,有了NVM區(qū)數(shù)據(jù)備份機(jī)制,芯片斷電的時候,就不用擔(dān)心NVM區(qū)內(nèi)原有數(shù)據(jù)丟失和新數(shù)據(jù)寫入失敗了,贊!
雖然感覺操作有點復(fù)雜,但是能解決數(shù)據(jù)掉電不丟失的情況,麻煩點也能接受,下次可以試一下
0
回復(fù)
2019-08-14 08:30
@Hex315
雖然感覺操作有點復(fù)雜,但是能解決數(shù)據(jù)掉電不丟失的情況,麻煩點也能接受,下次可以試一下
    .
0
回復(fù)
2019-08-14 09:33
@胖爺阿戈
  .
如此操作的好處是什么?會不會導(dǎo)致可用數(shù)據(jù)區(qū)變小呢?
0
回復(fù)
2019-08-14 09:34
@胖爺阿戈
如此操作的好處是什么?會不會導(dǎo)致可用數(shù)據(jù)區(qū)變小呢?
這個不錯,可以試試看
0
回復(fù)
2019-08-14 09:43
@胖爺阿戈
如此操作的好處是什么?會不會導(dǎo)致可用數(shù)據(jù)區(qū)變小呢?
好處是數(shù)據(jù)有備份,不會丟失。數(shù)據(jù)區(qū)雖然變小,但是夠用就行。
0
回復(fù)
114W1
LV.5
10
2019-08-14 09:50
@大衛(wèi)是誰
好處是數(shù)據(jù)有備份,不會丟失。數(shù)據(jù)區(qū)雖然變小,但是夠用就行。
這樣操作影響數(shù)據(jù)的讀寫速度嗎?
0
回復(fù)
2019-08-14 13:56
@114W1
這樣操作影響數(shù)據(jù)的讀寫速度嗎?
讀寫速度相比沒有備份機(jī)制的速度慢了
0
回復(fù)
BLoun
LV.5
12
2019-08-15 13:22
@小屁孩456
讀寫速度相比沒有備份機(jī)制的速度慢了
讀寫速度應(yīng)該是存儲的數(shù)據(jù)大小有關(guān)系,如果數(shù)據(jù)很大,讀寫的速度肯定會變慢一些
0
回復(fù)
zhanglu
LV.1
13
2019-08-15 13:53
@BLoun
讀寫速度應(yīng)該是存儲的數(shù)據(jù)大小有關(guān)系,如果數(shù)據(jù)很大,讀寫的速度肯定會變慢一些
哪款產(chǎn)品有nvm區(qū)呢?樓主推薦一下
0
回復(fù)
鄧女士
LV.5
14
2019-08-15 18:28
@zhanglu
哪款產(chǎn)品有nvm區(qū)呢?樓主推薦一下
很多芯片都有NVM區(qū),你可以咨詢幾個廠家問問,LKT的有個型號是帶NVM的,具體還得看你需要多大的空間
0
回復(fù)
2019-08-15 20:25
看完樓主最近這幾篇文章,大概了解啦NVM區(qū)數(shù)據(jù)備份機(jī)制,文章不錯哦
0
回復(fù)
2019-08-16 08:23
看了樓主的文章很有啟發(fā),這就去咨詢一下
0
回復(fù)
114W1
LV.5
17
2019-08-16 08:55
@miniminimini
看了樓主的文章很有啟發(fā),這就去咨詢一下
樓上提到的LKT和樓主說的凌科技術(shù)是一家嗎?有哪位大神用過他家產(chǎn)品沒?產(chǎn)品技術(shù)怎么樣?怎樣才能聯(lián)系到他們的技術(shù)人員?
0
回復(fù)
BLoun
LV.5
18
2019-08-16 16:43
@114W1
樓上提到的LKT和樓主說的凌科技術(shù)是一家嗎?有哪位大神用過他家產(chǎn)品沒?產(chǎn)品技術(shù)怎么樣?怎樣才能聯(lián)系到他們的技術(shù)人員?
這么搞的話,太局限了,超過256字節(jié)就沒法用了,太理想化
0
回復(fù)
2019-08-16 17:02
@BLoun
這么搞的話,太局限了,超過256字節(jié)就沒法用了,太理想化
文中的小概率事件能不能避免
0
回復(fù)
zhanglu
LV.1
20
2019-08-19 09:00
@小屁孩456
文中的小概率事件能不能避免
樓上同問。
0
回復(fù)
Hex315
LV.5
21
2019-08-19 13:42
@zhanglu
樓上同問。
不同型號的加密芯片其NVM扇區(qū)大小有差異,是不是越大的越好?
0
回復(fù)
2019-08-19 21:24
@Hex315
不同型號的加密芯片其NVM扇區(qū)大小有差異,是不是越大的越好?
防數(shù)據(jù)丟失有多種方案這個先收藏以后嘗試一下。
0
回復(fù)
發(fā)
主站蜘蛛池模板: 亚洲AV最新在线观看网址 | 久久婷婷人人澡人人爽人人爱 | 18禁黄久久久AAA片 | 年轻的老师4 | 亚洲成人免费视频在线 | 中文1区2区3区 | 色七七av | 久草在线免费在线观看 | 国产猛男猛女无遮无掩 | 影音先锋亚洲熟女av网 | 久久久久久久久91 | 婷婷成人丁香五月综合激情 | 女上男下gifxxoo吃奶 | 久久综合九色综合97网 | 久久久久久不卡 | 国产午夜福利视频在线观看 | 九九热在线视频观看这里只有精品 | 国产精品色婷婷99久久精品 | x88av入口av在线 | 性欧美人与zozoxxxx视频 | 最近中文字幕免费mv2019在线 | 黄色一区二区在线 | 国产一区日韩二区欧美三区 | 灰色果实哪里黄 | 一本一本久久A久久综合精品蜜桃 | 亚洲成色www久久网站 | 麻豆疯狂做受xxxx高潮视频 | 欧美激情一二三区 | 国产激情无码视频在线播放性色 | 亚洲精品色婷婷在线影院 | 91免费 | 精品无码在线播放 | 2020久久超碰国产精品最新 | 午夜爽爽爽男女免费观看影院 | youjizz丰满熟妇中国 | 免费观看黄色片在线观看 | 一本一道久久a久久综合蜜桃 | 成在人线AV无码免费高潮喷水 | 亚洲精品视频在线观看视频 | 中文字幕国内自拍 | 日韩欧美中文字幕在线四区 |