《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 嵌入式系統(tǒng)內(nèi)存檢測(cè)分析
嵌入式系統(tǒng)內(nèi)存檢測(cè)分析
來源:微型機(jī)與應(yīng)用2012年第21期
符冬陽(yáng)
(中興通訊股份有限公司 南京研究所,江蘇 南京 210012)
摘要: 在大部分嵌入式系統(tǒng)中,內(nèi)存的好壞主要依賴于內(nèi)存芯片廠家的檢測(cè),對(duì)系統(tǒng)運(yùn)行中出現(xiàn)的內(nèi)存偶然故障,缺乏有效的檢測(cè)手段。對(duì)嵌入式系統(tǒng)中內(nèi)存檢測(cè)的各個(gè)階段、內(nèi)存檢測(cè)方式以及全空間檢測(cè)方法等進(jìn)行了詳細(xì)描述。
Abstract:
Key words :

摘  要: 在大部分嵌入式系統(tǒng)中,內(nèi)存的好壞主要依賴于內(nèi)存芯片廠家的檢測(cè),對(duì)系統(tǒng)運(yùn)行中出現(xiàn)的內(nèi)存偶然故障,缺乏有效的檢測(cè)手段。對(duì)嵌入式系統(tǒng)中內(nèi)存檢測(cè)的各個(gè)階段、內(nèi)存檢測(cè)方式以及全空間檢測(cè)方法等進(jìn)行了詳細(xì)描述。
關(guān)鍵詞: 嵌入式系統(tǒng);內(nèi)存檢測(cè)

 嵌入式系統(tǒng)中內(nèi)存芯片種類繁多,其訪問方式、時(shí)序要求和初始配置并不完全相同,不同芯片的穩(wěn)定工作溫度等也不一樣,甚至同型號(hào)不同批次的芯片的特性還不一樣。這導(dǎo)致嵌入式系統(tǒng)開發(fā)者在內(nèi)存芯片的兼容性開發(fā)、生產(chǎn)檢測(cè)和運(yùn)行時(shí)監(jiān)測(cè)上需要耗費(fèi)很多的精力。內(nèi)存問題小則影響到業(yè)務(wù)功能,大則影響到系統(tǒng)運(yùn)行,如何提供一套完整的內(nèi)存檢測(cè)手段,及時(shí)甄別出壞的內(nèi)存非常重要,本文就對(duì)嵌入式系統(tǒng)的內(nèi)存檢測(cè)做一些探討。
1 典型的嵌入式系統(tǒng)
 典型的嵌入式系統(tǒng)框圖如圖1所示。圖1中的BOOT Flash用于存放BOOT版本,BOOT版本實(shí)現(xiàn)嵌入式系統(tǒng)的基本初始化,并實(shí)現(xiàn)業(yè)務(wù)版本的加載;Version Flash用來存放業(yè)務(wù)版本;SDRAM/DDR作為BOOT版本、業(yè)務(wù)版本運(yùn)行時(shí)使用的內(nèi)存,也是本文描述的檢測(cè)對(duì)象。網(wǎng)口、串口用來作為版本加載、調(diào)試通道、管理通道等;其他接口和設(shè)備根據(jù)具體的嵌入式系統(tǒng)應(yīng)用而不同,如交換芯片、顯示控制芯片和FPGA等。

2 內(nèi)存的檢測(cè)場(chǎng)景
 嵌入式設(shè)備的內(nèi)存檢測(cè)可以存在于以下幾個(gè)階段:
?。?)生產(chǎn)中檢測(cè):在出廠前進(jìn)行檢測(cè),包括數(shù)據(jù)線、地址線測(cè)試,基本讀寫測(cè)試,強(qiáng)化測(cè)試,高低溫測(cè)試等,生產(chǎn)中的檢測(cè)本文不做深入描述;
?。?)上電自檢:在嵌入式系統(tǒng)上電過程中,各種業(yè)務(wù)還未正式啟動(dòng),對(duì)內(nèi)存的檢測(cè)可以比較全面;
 (3)運(yùn)行中檢測(cè):業(yè)務(wù)正常運(yùn)行起來后,內(nèi)存已在使用中,只能對(duì)未使用的內(nèi)存空間做例行檢測(cè)。
對(duì)內(nèi)存的上電自檢及運(yùn)行中檢測(cè),都是處在實(shí)際應(yīng)用環(huán)境中,本文重點(diǎn)描述這部分檢測(cè)的實(shí)現(xiàn)。
3 內(nèi)存檢測(cè)方案
 在業(yè)務(wù)運(yùn)行階段,內(nèi)存已被部分使用,這個(gè)時(shí)候無法檢測(cè)到整個(gè)內(nèi)存空間的好壞,為了使內(nèi)存在應(yīng)用環(huán)境能做到完整檢測(cè),需要利用BOOT階段協(xié)助檢測(cè)內(nèi)存。
 首先有必要了解嵌入式系統(tǒng)的BOOT過程,如圖2所示。

 BOOT代碼存在BOOT Flash中,一般分為BootCode1和BootCode2兩部分。BootCode1在BOOT Flash中直接運(yùn)行,完成內(nèi)存的基本初始化、拷貝BootCode2到內(nèi)存運(yùn)行。BootCode2也可能壓縮過,這種情況下,BootCode1運(yùn)行時(shí)還必須先解壓BootCode2再拷貝至內(nèi)存。BootCode2承擔(dān)了網(wǎng)口初始化、下載業(yè)務(wù)版本的功能。
 在業(yè)務(wù)版本Version起來后,運(yùn)行它所占用的內(nèi)存無法測(cè)試到,本文考慮在BOOT階段對(duì)這塊區(qū)域進(jìn)行測(cè)試。而當(dāng)Version運(yùn)行起來后,就可以對(duì)未使用的空間作常規(guī)測(cè)試,包括原來BootCode2所在的空間(因?yàn)閂ersion起來后,BootCode2代碼已沒有意義)。
 具體的測(cè)試方案為:
 (1)采用一片EEPROM記錄內(nèi)存測(cè)試結(jié)果、測(cè)試要求等;
?。?)BOOT階段根據(jù)EEPROM中的測(cè)試要求進(jìn)行內(nèi)存檢測(cè),再將結(jié)果寫入EEPROM中;
?。?)業(yè)務(wù)版本運(yùn)行階段,可以讀出BOOT階段的內(nèi)存檢測(cè)結(jié)果,如果異常可產(chǎn)生告警等;
?。?)后臺(tái)服務(wù)器以及業(yè)務(wù)版本可以設(shè)置內(nèi)存檢測(cè)類型,確定是做簡(jiǎn)單測(cè)試還是復(fù)雜測(cè)試,并寫入EEPROM,以指導(dǎo)下次BOOT選擇合適的內(nèi)存檢測(cè)類型。
 詳細(xì)的測(cè)試流程如圖3所示。

?。?)BootCode1拷貝BootCode2到內(nèi)存之后,會(huì)進(jìn)行版本校驗(yàn),判斷BootCode2的正確性,間接檢測(cè)了BootCode2運(yùn)行的內(nèi)存空間,確保BootCode2能夠正常運(yùn)行,如果出錯(cuò),可通過指示燈等告警,提示用戶檢查硬件。
?。?)BootCode2正常運(yùn)行后,從EEPROM中讀取內(nèi)存檢測(cè)標(biāo)志,確定做簡(jiǎn)單內(nèi)存測(cè)試,還是強(qiáng)化內(nèi)存測(cè)試(嵌入式系統(tǒng)對(duì)上電時(shí)間有嚴(yán)格要求,為保證迅速啟動(dòng),一般采用簡(jiǎn)單內(nèi)存測(cè)試)。
 (3)BootCode2檢測(cè)到錯(cuò)誤,可通過指示燈等告警,并將檢測(cè)結(jié)果寫入EEPROM,業(yè)務(wù)版本初始化期間可讀出該結(jié)果,如果有錯(cuò),不會(huì)繼續(xù)往下執(zhí)行,直接告警。
?。?)業(yè)務(wù)版本能正常起來的情況下,可以對(duì)空余內(nèi)存做檢測(cè)。
?。?)在業(yè)務(wù)版本運(yùn)行中,可以根據(jù)需要設(shè)置內(nèi)存強(qiáng)化檢測(cè),會(huì)填寫檢測(cè)標(biāo)志到EEPROM中,并重啟系統(tǒng),觸發(fā)BOOT中進(jìn)行內(nèi)存全檢,并將檢測(cè)結(jié)果反饋給后臺(tái)服務(wù)器。對(duì)EEPROM里數(shù)據(jù)格式定義如圖4所示。

 

 

4 具體測(cè)試類型分析
 內(nèi)存檢測(cè)的具體類型主要考慮如下幾種:
?。?)基本的數(shù)據(jù)線、地址線測(cè)試。對(duì)某幾個(gè)特定地址讀寫特定數(shù)據(jù),這種檢測(cè)方式速度快,適用于常規(guī)測(cè)試,可在系統(tǒng)默認(rèn)情況下執(zhí)行。
?。?)跳檢測(cè)試。比如每1 KB區(qū)間檢測(cè)4 B,采用特征數(shù)據(jù)進(jìn)行讀寫測(cè)試,特征數(shù)據(jù)如0x00000000、0xFFFFFFFF、0x55555555、0xaaaaaaaa等。
 (3)強(qiáng)化測(cè)試。借鑒開源測(cè)試方法memtest86+,利用各種算法進(jìn)行內(nèi)存的全方位測(cè)試,這種測(cè)試耗時(shí)長(zhǎng),根據(jù)CPU頻率不同,內(nèi)存大小不同,測(cè)試時(shí)間可能以小時(shí)計(jì),這種測(cè)試只在首次使用時(shí),或者作設(shè)備巡檢時(shí)選擇執(zhí)行。
 對(duì)內(nèi)存檢測(cè)結(jié)果的分析,可以用來篩選內(nèi)存芯片,指導(dǎo)內(nèi)存芯片的選型,判斷哪些批次的好壞??梢栽跈z測(cè)結(jié)果里增加內(nèi)存型號(hào)記錄、檢測(cè)當(dāng)時(shí)的環(huán)境溫度等,作進(jìn)一步的分析,可以更好的協(xié)助芯片選型、批次分析及設(shè)計(jì)改進(jìn)。
參考文獻(xiàn)
[1] Wind River. Tornado BSP Training Workshop[Z]. 1998.
[2] http://www.memtest.org/,2012-05-01.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 一区二区三区在线观看视频| 国产精品v欧美精品∨日韩| 亚洲综合网美国十次| 337p色噜噜| 成人在线综合网| 亚洲美女视频免费| 英语老师解开裙子坐我腿中间 | 日韩乱码人妻无码中文字幕| 四虎国产精品永久在线网址| chinese中国农村夫tube| 欧美性猛交xxxx乱大交3| 国产国语对白露脸在线观看| 99久久99热精品免费观看国产| 最近中文国语字幕在线播放| 啦啦啦中文在线观看日本| 99久久无色码中文字幕| 新婚熄与翁公试婚小说| 亚洲中久无码永久在线观看同| 色噜噜视频影院| 在线观看免费精品国产| 五十路亲子中出在线观看| 绿巨人app入口| 国产成人综合色视频精品| 中国日本欧美韩国18| 欧美最猛黑人xxxx黑人猛交98| 国产剧情中文字幕| chinese乱子伦xxxx国语对白 | 免费在线观看视频a| 虎白女粉嫩尤物福利视频| 大肉大捧一进一出好爽APP| 五月激情婷婷网| 第四色亚洲色图| 国产亚洲成av人片在线观黄桃| 99久久人人爽亚洲精品美女| 成人综合伊人五月婷久久| 亚洲成a人片77777老司机| 色窝窝亚洲av网| 国产男女猛烈无遮挡免费视频网站 | 天天躁夜夜躁狠狠躁2021a| 亚洲av无码久久寂寞少妇| 精品国偷自产在线不卡短视频|