ฉันจะทดสอบ RAM สำหรับข้อมูลที่เสียหายบนระบบที่ใช้ ARM ได้อย่างไร


20

ฉันมีอุปกรณ์ฝังตัว มันขึ้นอยู่กับ ARM กับ Linux 2.6.31 และมี RAM 256 MB

ฉันต้องการรับแนวคิด / คำแนะนำเกี่ยวกับวิธีที่มีประสิทธิภาพมากที่สุดในการทดสอบ RAM อุปกรณ์สำหรับข้อมูลที่เสียหาย มีการทดสอบ / ซอฟต์แวร์ที่บางคนสามารถแนะนำได้หรือไม่?

บันทึก:

ฉันมี memtester แล้ว ฉันได้รับหลังจากคำแนะนำจาก Ulrich Dangel (ด้านล่าง)

ฉันยังได้mtestตั้งค่าจาก uboot ตอนนี้

การทดสอบ / แนวทางอื่นใดที่ฉันสามารถใช้ได้?


2
โปรดทราบว่านี่เป็นซีพียู ARM ไม่ใช่ x86 ตัวหนึ่ง น่าเสียดายที่ Memtest86 + จะไม่ทำงานในกรณีนี้
Renan

ฉันได้รับ memtester การทดสอบ / แนวทางอื่นใดที่ฉันสามารถใช้ได้?
Ankur Agarwal

1
@abc คุณต้องการอะไรอีก ฉันคิดว่าคุณมีปัญหาอื่น ๆ หากวิธีการเหล่านี้จะไม่ให้ผลลัพธ์ที่คุณต้องการ mtestโดยพื้นฐานแล้วจะเหมือนกับ memtest86 + โดยทั่วไปคุณมีตัวเลือกที่แตกต่างกันทำการทดสอบหน่วยความจำจากระบบปฏิบัติการของคุณเช่น linux (นี่อาจเป็นได้memtesterแต่คุณอาจมีปัญหาในการทดสอบพื้นที่ทางกายภาพทั้งหมด) นอกจากนี้คุณยังสามารถใช้ระบบขนาดเล็ก (uboot) เพื่อทดสอบหน่วยความจำของคุณ ( mtest)
Ulrich Dangel

โปรเซสเซอร์มาจาก Marvell หรือไม่? ฉันมีคำถามเดียวกันกับตัวประมวลผลเครือข่าย marvell ซึ่งเป็นการตั้งค่าเดียวกัน (ARM / 256MB RAM / Linux 2.6.31) เป็นของคุณ
ทิมวู

นี่คือคำถามที่แตกล้นที่คล้ายกัน การทดสอบทั้งหมดที่นี่สามารถพบปัญหาบางอย่าง พวกเขาจะไม่พบปัญหาทั้งหมดและในความเป็นจริงมันเป็นเรื่องยากมากที่จะทำ เครื่องมือจำลองสถานการณ์และบอร์ดจำลองที่ดีมากเท่านั้นที่สามารถตรวจสอบสิ่งนี้ ไม่ใช่ซอฟต์แวร์ หากทำเสร็จแล้วปัญหาเดียวจะเป็นชิป DDR (หรืออาจเป็นโฮสต์คอนโทรลเลอร์) และmemtesterและmtestอาจพบสิ่งเหล่านี้ อย่างไรก็ตามหากพวกเขาพูดว่าทุกอย่างดี อย่าออกกฎ 100% สำหรับปัญหา DDR
เสียงรบกวน

คำตอบ:


21

วิธีการทั่วไปในการทดสอบหน่วยความจำคือการเขียนรูปแบบเฉพาะเช่น0xFFFFFFFFในหน่วยความจำของคุณและอ่านมันในภายหลังและเปรียบเทียบผลลัพธ์ แน่นอนคุณสามารถและควรเปลี่ยนรูปแบบเพื่อค้นหาปัญหา โซลูชันบางอย่างเช่นmemtest86+สร้างรูปแบบสุ่มและเปลี่ยนทิศทางที่ใช้ในการเขียนไปยังหน่วยความจำ สำหรับข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับขั้นตอนวิธีการที่ใช้ใน memtest86 มีลักษณะที่พวกเขาหน้าเทคโนโลยี โซลูชันทั้งหมดที่มีในโพสต์นี้ใช้แนวคิดพื้นฐานที่เหมือนกัน

หากคุณต้องการรันการทดสอบจากภายใน Linux (คุณพูดถึง Linux ในโพสต์ของคุณ) ให้ดูที่memtesterและชุด memtestซึ่งทั้งคู่ควรทำงานด้วยแขน ในการเริ่มต้นคุณควรใช้memtesterเพราะมันทำสิ่งที่คุณต้องการ

การทดสอบหน่วยความจำของคุณจากภายใน Linux มีข้อเสียบางประการเช่นคุณไม่สามารถทดสอบหน่วยความจำกายภาพทั้งหมดของคุณได้เนื่องจากเคอร์เนลต้องการหน่วยความจำด้วย เพื่อทดสอบหน่วยความจำด้วย uboot (มีขนาดเล็กกว่าลินุกซ์เคอร์เนลมาก) ดูที่คำสั่งรวมmtest ช่วยให้คุณระบุช่วงที่อยู่รูปแบบและการวนซ้ำ ด้วยmtestคุณควรจะทำการทดสอบอย่างครอบคลุมโดยไม่ต้องพึ่งพาระบบปฏิบัติการ คุณเพียงแค่ต้องแน่ใจว่าคุณใช้ช่วงหน่วยความจำที่ถูกต้องมิฉะนั้นอาจเป็นไปได้ว่าคุณเขียนทับขอบเขตubootหน่วยความจำ

หากการทดสอบโดยmtestนั้นไม่เพียงพอคุณสามารถขยาย uboot และรวมคุณสมบัติการทดสอบหน่วยความจำเพิ่มเติมลงใน uboot ได้


ตกลงฉันได้รับ memtester การทดสอบอื่น ๆ ที่ฉันสามารถทำได้?
Ankur Agarwal

1
วิธีการทดสอบอื่นใดที่ฉันสามารถลองได้ ฉันกำลังคิดถึงการทดสอบ RAM จาก uboot
Ankur Agarwal

@abc ตกลงฉันเพิ่มหมายเหตุเกี่ยวกับคำสั่ง uboots mtest
Ulrich Dangel

1
ฉันเริ่มใช้คำสั่ง uboot และตอนนี้ฉันเห็นว่าหน่วยความจำแสดงคำสั่ง uboot ติดอยู่ตรงกลางbist > md.w 0x00000023 10 00000023:
Ankur Agarwal

u-boot รองรับ mtest ที่ต่างกันสองตัว คอมไพล์ด้วย CONFIG_SYS_ALT_MEMTEST สำหรับการทดสอบหน่วยความจำที่ครอบคลุมกว่าค่าเริ่มต้น
m__
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.