ARM tabanlı bir sistemde RAM'i veri bozulması açısından nasıl test edebilirim?


20

Yerleşik bir cihazım var. Linux 2.6.31 ile ARM tabanlı ve 256 MB RAM'e sahip.

Veri RAM'leri için cihaz RAM'ini test etmenin en etkili yolu hakkında bazı fikirler / ipuçları almak istedim. Birinin önerebileceği bir test / yazılım var mı?

Not:

Şimdi memtester var. Ulrich Dangel'in önerisinden sonra aldım (aşağıda).

Ayrıca mtestuboot'tan şimdi kurdum.

Kullanabileceğim başka testler / yaklaşımlar var mı?


2
Bu bir ARM CPU, x86 bir CPU değildir; ne yazık ki, Memtest86 + bu durumda çalışmaz.
Renan

Memtester var. Kullanabileceğim başka testler / yaklaşımlar var mı?
Ankur Agarwal

1
@abc başka ne istiyorsun? Bu yöntem istediğiniz sonucu üretmezse başka sorunlarınız olduğunu düşünüyorum. mtesttemelde memtest86 + ile aynı şeyi yapar. Temel olarak farklı seçenekleriniz var, linux gibi işletim sisteminizden bellek testini çalıştırın (bu olurdu, memtesterancak tüm fiziksel bölgeyi test etmekte sorun yaşayabilirsiniz). Ayrıca hafızanızı test etmek için bazı mini sistemler (uboot) kullanabilirsiniz ( mtest)
Ulrich Dangel

İşlemci Marvell'den mi? Sizinle aynı yapılandırma (ARM / 256MB RAM / Linux 2.6.31) olan bir marvell ağ işlemcisiyle aynı sorum var.
Tim Wu

İşte benzer bir yığın taşması sorusu . Buradaki tüm testler bazı problemler bulabilir. Tüm sorunları bulamayacaklar ve aslında bunu yapmak çok zor. Sadece çok iyi tahta simülasyon araçları ve modelleme bunu doğrulayabilir; yazılım değil. Bu yapılırsa, tek sorun bir DDR yongası (veya muhtemelen ana bilgisayar denetleyicisi) olacaktır ve memtester ve mtest bunları bulabilir. Ancak, her şeyin yolunda olduğunu söylerlerse; % 100 bir DDR sorunu göz ardı etmeyin.
artless noise

Yanıtlar:


21

Belleği test 0xFFFFFFFFetmenin genel çözümü, belleğinize benzer belirli bir desen yazmak ve daha sonra okumak ve sonucu karşılaştırmaktır. Sorunları keşfetmek için modeli değiştirebilir ve elbette değiştirmelisiniz. Gibi bazı çözümler memtest86+de rastgele desenler oluşturur ve belleğe yazmak için kullandıkları yönü değiştirir. Memtest86'da kullanılan algoritmalar hakkında daha detaylı bilgi için teknik sayfasına bakınız . Bu gönderide sunulan tüm çözümler temelde aynı temel fikri kullanmaktadır.

Testinizi Linux içinden çalıştırmak istiyorsanız (yayınınızda Linux'tan bahsettiniz), her ikisi de kolla çalışması gereken memtester ve memtest paketine bir göz atın . Başlamak için memtester'ı temelde tam olarak ne istediğinizi yaptığı için kullanmalısınız.

Belleğinizin Linux içinden test edilmesi, çekirdeğin de belleğe ihtiyacı olduğu için tüm fiziksel belleğinizi gerçekten test edemeyeceğiniz gibi bazı dezavantajlara sahiptir. Belleği uboot ile test etmek için (linux çekirdeğinden çok daha küçüktür) entegre mtest komutuna bir göz atın . Adres aralığını, kalıbını ve yinelemeyi belirlemenizi sağlar. İle MTest bir işletim sistemine dayanmadan oldukça kapsamlı testler yapılması gerekir. Sadece geçerli bellek aralıklarını kullandığınızdan emin olmanız gerekir, aksi takdirde ubootbellek bölgesinin üzerine yazmanız mümkün olabilir .

Mtest tarafından sağlanan test yeterli değilse, elbette uboot'u genişletebilir ve ek bellek testi özelliklerini uboot'a entegre edebilirsiniz.


Tamam memtester var. Yapabileceğim başka bir test var mı?
Ankur Agarwal

1
Deneyebileceğim başka test yaklaşımları var mı? RAM'i uboot'tan test etmeyi düşünüyorum.
Ankur Agarwal

@abc ok uboots mtest komutu hakkında bir not ekledim
Ulrich Dangel

1
Uboot komutlarını kullanmaya başladım ve şimdi bellek ekranı uboot komutunun ortada sıkıştığını görüyorumbist > md.w 0x00000023 10 00000023:
Ankur Agarwal

u-boot iki farklı test için destek var. Varsayılandan daha kapsamlı bir bellek testi için CONFIG_SYS_ALT_MEMTEST ile derleyin.
m__
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.