AVR RAM-Test und Interrupts

Gast #1221804
Lesenswert?
• ▲
▼
Hallo,

ich plane in meinem Controller(ATMega 32) einen Ram-Test zu verwenden.
Ich gehe folgendermaßen vor:

1. Sichere das Byte an erster RAM Adresse
2. Schreibe das Pattern 0x55 ins RAM
3. Lese dieses Pattern wieder aus dem RAM und prüfe auf gleichheit
4. Schreibe das Pattern 0xAA ins RAM
5. Lese dieses Pattern wieder aus dem RAM und prüfe auf gleichheit
6. Stelle ursprünglichen RAM Inhalt wieder her

Dieser Test wird in assembler codiert.

Bevor ich die Assembler Routine aus meinem C-Code ausführe disable ich 
die Interrupts und stelle sie anschließend wieder her.

Was passiert aber nun wenn genau ind er Zeit des RAM-Tests ein Interrupt 
z.B. von einem Timer ausgelöst wird. Wird dieser Interrupt gepuffert 
oder ist der dann verloren?

Markus
Gast #1221810
Lesenswert?
• ▲
▼
Hi

>ich plane in meinem Controller(ATMega 32) einen Ram-Test zu verwenden.

Wozu?

>2. Schreibe das Pattern 0x55 ins RAM
>3. Lese dieses Pattern wieder aus dem RAM und prüfe auf gleichheit
>4. Schreibe das Pattern 0xAA ins RAM

Etwa genau so sinnvoll wie kein Test. Dauert nur länger.

>Was passiert aber nun wenn genau ind er Zeit des RAM-Tests ein Interrupt
>z.B. von einem Timer ausgelöst wird. Wird dieser Interrupt gepuffert...

Ein Interrupt (pro Quelle) wird gespeichert. Mehrere gehen verloren.

MfG Spess
Gast #1221821
Lesenswert?
• ▲
▼
Bzgl. RAM-Test und anderer Prüfungen gibt es bei Atmel eine Application 
Note. Schaue dort einmal nach.

Wozu wird ein RAM Test überhaubt gebraucht ?

Hier fällt mir sofort folgendes ein, soll eine Software nach CLASS B 
(Z.B. EN 60335) erstellt werden, so sind zyklische Tests von RAM und 
andere µC Komponeneten zwingend erforderlich. NEC , Renesas , ST und 
andere (evtl. auch Atmel) bieten hierfür sogar kostenfrei 
(zertifizierte!) Bibliotheken an)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren