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

摘  要: 在大部分嵌入式系統中,內存的好壞主要依賴于內存芯片廠家的檢測,對系統運行中出現的內存偶然故障,缺乏有效的檢測手段。對嵌入式系統中內存檢測的各個階段、內存檢測方式以及全空間檢測方法等進行了詳細描述。
關鍵詞: 嵌入式系統;內存檢測

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

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

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

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

 

 

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

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产成人精品高清免费| 97久久精品无码一区二区| japanese六十路| 人妻精品久久久久中文字幕| 国产卡一卡二卡三卡四| 另类ts人妖一区二区三区| 国产成人18黄网站麻豆| 啊轻点灬大ji巴太粗太长了欧美 | 欧美bbbbxxxx| 美女扒开屁股让男人桶| 欧美日韩国产区在线观看| 污污内射在线观看一区二区少妇 | 国产h片在线观看| 亚洲欧美日韩人成在线播放| 亚洲国产综合第一精品小说| 久久久久波多野结衣高潮| www天堂在线| 亚洲人成777| 精品深夜av无码一区二区| 美女被免费视频网站a国产| 热久久国产欧美一区二区精品| 最近中文字幕mv高清在线视频| 欧美日韩亚洲视频| 无码成人AAAAA毛片| 国产美女无遮挡免费视频网站| 国产丝袜第一页| 亚洲欧美日韩综合一区| 久久久久无码精品国产H动漫| HEYZO高无码国产精品| 被黑化男配做到哭h| 色呦呦网站在线观看| 毛片毛片毛片毛片出来毛片| 无码人妻丰满熟妇啪啪网站| 性一交一乱一伦一色一情| 岛国片免费在线观看| 天天色影综合网| 国产人成精品香港三级在| 国产一区二区三区夜色| 亚洲无圣光一区二区| 久久青草国产免费观看| a毛片a毛片a视频|