MSP430 Dersleri 9 – RAM Test Ugulaması

Merhaba Arkadaşlar,
ADC ile ilgili yazıyı daha yeni yayınlamıştım ki RAM bölgesi testi ile ilgili bir soru aldım. Güzel bir uygulama olacağından sizinle paylaşmak istedim. İlk soru olduğu için de biraz heyecanlandım açıkçası. 🙂 O zaman hızlıca uygulamaya geçelim.

Yapmamız gereken uygulama ile bellek bölgesinin belirli bir bölümünün arızalı olup olmadığını kontrol etmemiz gerekmektedir. Burada öncelikle “Bellek bölgesinin düzgün çalıştığını nasıl anlarız?” sorunu karşımıza çıkıyor. İlk aşamada bu konuda bir fikrim yoktu ancak ufak bir araştırma sonucunda kontrol işleminin basit olarak adres bölgesine bir sayı yazma ve adres okunarak yazma işleminin doğru yapılıp yapılmadığının kontrolü ile gerçekleştiğini gördüm. Buna göre yazdığım program aşağıda yer almaktadır.

#include "msp430.h" 
      org 0f800h 
reset mov #0280h,SP 
      mov #WDTPW+WDTHOLD,&WDTCTL 
      mov #0220h,R6 
      clr R5 
      call #tst 
aa    jmp aa 

tst   nop 
loop  mov #0ffffh,0(R6) 
      cmp #0ffffh,0(R6) 
      jnz err 
      mov #05555h,0(R6) 
      cmp #05555h,0(R6) 
      jnz err 
      mov #00000h,0(R6) 
      cmp #00000h,0(R6) 
      jnz err 
      mov #01111h,0(R6) 
      cmp #01111h,0(R6) 
      jnz err 
      jmp gec 
err   inc R5 
gec   incd R6 
      cmp #0240h,R6 
      jnz loop 
      ret 

      org 0fffeh 
      dw reset 
      end

Bu program basit olarak bir 220h ile 240h arasındaki adreslere 4 adet farklı sayıyı yazıp daha sonra sayıların doğru olarak yazılıp yazılmadığını kontrol etmektedir. Eğer hatalı yazılma yapılmışsa yani bellek bölgesi arızalı ise R5 kaydedicisi bir arttırılmaktadır. Sonuç olarak R5 kaydedicisinde bu adres bölgeleri arasındaki arızalı bellek bölgesi sayısı yer alacaktır.

Bu uygulama ile gerçek bir sorun için nasıl uygulama geliştireceğimize dair bir örnek yapmış olduk. Aslında böyle birkaç tane daha yazı olması faydalı olabilir. Tabii ki siz faydalı olduğunu düşünüyorsanız. Bu konuda tavsiyelerinize göre yazı paylaşabilirim. Geri dönüşlerinizi bekliyorum. 🙂 Herkese iyi çalışmalar dilerim efendim.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir