樣品申請 | 資料下載 | 替換型號咨詢

如何保證單片機(jī)上電后RAM的初始值唯一?

首先明確一個問題,我們都知道,根據(jù)RAM的特性,單片機(jī)每次上電之后RAM里面的值是隨機(jī)的。也就是說RAM上電后的初始值可以是0xAA,也可以是0x55,也可以是其它任何的值,這個都是正常的。明確了這個基本原理之后,我們來看一下下面這個跟RAM的初始值的使用相關(guān)的一個問題。


設(shè)計出狀況


有工程師在開發(fā)的汽車娛樂系統(tǒng)中遇到了一種情況,就是他在使用RH850F1K的過程中,發(fā)現(xiàn)每次上電后RAM的值好像都是固定的。按照軟件設(shè)計的初衷,他想通過判斷RAM的值從而知道這次復(fù)位是掉電復(fù)位還是單片機(jī)內(nèi)部復(fù)位——比如“看門狗”復(fù)位。如果是掉電復(fù)位,則對RAM進(jìn)行初始化;如果是單片機(jī)內(nèi)部復(fù)位,則不對RAM進(jìn)行初始化,從而可以保持用戶之前的一些設(shè)置,比如頻道、界面信息等。


大致的設(shè)計思路和流程如下:


單片機(jī)復(fù)位后,軟件會判斷某個變量的值。如果不是0x55,就認(rèn)為這是上電復(fù)位,所有的RAM需要初始化,并把該變量的值寫為0x55;如果是0x55,就認(rèn)為這是“看門狗”復(fù)位,這時候則不改變一些變量的值,比如記錄里程相關(guān)的數(shù)據(jù)。


相關(guān)的C語言代碼如下:

if (variable != 0x55)

{

初始化所有變量;

variable = 0x55;

}

else

{

只改變部分變量的值;

}

在測試的過程中,測試工程師發(fā)現(xiàn)了一個問題:對于99%單片機(jī)來講,上述的邏輯都是沒有問題的,但是對于個別單片機(jī)卻存在固定性的問題。


按照設(shè)計的初衷,本來我們認(rèn)為上電后RAM的值是隨機(jī)的,但是對于某些個別單片機(jī)來講,測試工程師發(fā)現(xiàn)上電后RAM的值會固定的是0x55,或者出現(xiàn)0x55的幾率非常高。


解決方法


針對這個現(xiàn)象,筆者也從單個單片機(jī)的特性方面做了解釋:首先還是回到文章最初提到的問題,根據(jù)RAM的特性,上電后RAM是任何值都是正常的,基于這個前提,我們可以說測試工程師遇到的現(xiàn)象是正常的。


那么,為什么個別單片機(jī)RAM上電后會偏向于某個特定值呢?


半導(dǎo)體器件的設(shè)計是非常復(fù)雜的,外觀很小的一個芯片都是芯片內(nèi)部數(shù)百萬計的各種極其小的元器件搭建而成的,而這些的原材料基本都是硅。對于每個特定的芯片而言,其特性數(shù)據(jù)都是有一些偏好的,也包括上電后RAM的初始值,所以當(dāng)我們看每個單片機(jī)的電氣特性數(shù)據(jù)的時候,這些數(shù)據(jù)基本都是一個范圍值,而不是確定的值。


另外,上面軟件本身的設(shè)計也是有缺陷的,或者說魯棒性不好。假定上電后RAM的初始值是完全隨機(jī)的,那么這樣總會碰到隨機(jī)值恰好是0x55的情況?;谶@種考慮,我建議軟件工程師重新設(shè)計了判斷的條件。比如判斷RAM若干不連續(xù)地址的值,并且使用校驗的算法,比如比較簡單的校驗和,這樣可靠性就大大提高了。


在工作過程中,難免會遇到過多個類似的問題,這個問題也具有一定的普遍性,除了前面提到的汽車娛樂系統(tǒng),在車身、儀表,甚至工業(yè)應(yīng)用中的電表等都會涉及到,希望這篇文章能夠幫助設(shè)計工程師少走一些彎路。

亚洲少人妇无码| 国产精品国产三级国产一区| 国产老熟女午夜福利视频| 国产暗拍出租屋嫖妓視频| 又污又湿又爽又黄的网站| 涂了春药被一群人伦NP| 操白虎护士小骚逼的视频| 精品少妇爆乳无码av无码专区| 国产高清在线精品一区二区| 国产精品18久久久久白浆| 久久久综合精品一区二区三区| 在线观看欧美精品视频二区| 国产精品亚洲av一区二区| 无码免费一区二区三区| 肉棒插嫩屄祝频| 青青久久AV资源绿巨人| 日韩乱妇乱女熟妇熟女av| 国产999在线| 捆起来强c高潮调教无码| 国产精品亚洲欧自偷片专区| 老牛精品亚洲成av人片| 老鸭窝毛片一区二区三区| 女人被鸡巴捅的淫叫视频| 青娱乐aV电影| 久久这里只有精品| 国产精品久久久一级毛片| 美女吃鸡巴露奶头特别爽| 美女人妻骚逼白虎骚夫妇| 懂色av人成一区二区三区| 亚洲女性与黑人XOⅩO| 日本欧美在线观看一区二区| 不扣钮的女孩电影| 女人高潮喷水免费看一区| 老妇女日批视频| 免费国产精品自在线观看| 91大屁股丰满肥臀在线| 亚洲欧洲精品优质a v| 蜜臀久久久亚洲一级av| 能免费看黄片的亚洲av| 91看看福利1000集| 天天躁人人爽人人澡人人妻|