Forum: Mikrocontroller und Digitale Elektronik PIC18 Ram Prüfung


von Klatec (Gast)


Lesenswert?

Hallo Zusammen

Ich möchte den Ram von meinem PIC18 beim Hochlauf testen, also mit einem 
Wert beschreiben und wieder auslesen. Ich möchte dies in C machen, weiß 
jedoch nicht wie ich über die schon def Variablen, die in diesem Bereich 
liegen, den gesamten Ram als eine Variable ansprechen kann.
Bitte um Hilfe. Danke.

Lg.
Johann K.

von Klatec (Gast)


Lesenswert?

Noch mal nachgefragt

Wie kann ich mit C das Ram beschreiben und lesen ohne eine Variable zu 
definieren.

#pragma udata dTestdd=0x200  //Ram ab
unsigned char ucSerOutTelEnd;  //Telegramm Ende
unsigned char ucSerOutPufEmpty;  //Serielleausgabepuffer ist leer
unsigned char uaSerOutPuf[200];  //Ausgabepuffer Seriellekommunikation
unsigned char ucSerOutAdr;    //Adresse für Ausgabepuffer
unsigned char ucPufDatInNew[6];  //aktuell eingelesene Eingänge
unsigned char ucPufDatInOld[6];  //letzt eingelesene Eingänge
unsigned char ucReadPufSpi;      //Lesepuffer SPI
unsigned char ucCounterTest;
unsigned char ucTestArry[10];

Diese Variablen liegen im Ram und ich möchte ab der Adresse 0x200 den 
RAM mit schrieben und lesen auf korrekte Funktion prüfen ohne die 
Variablen zu verwenden.


Danke.

von Klatec (Gast)


Lesenswert?

Habe noch vergessen, es handelt sich um den internen RAM.

von Kein Name (Gast)


Lesenswert?

Ganzen Speicher ansprechen ist eigentlich kein Problem.

for (volatile char *p = 0x200; p < 0x800; p++) {
    *p = Testwert;
    if (*p != Testwert) ....
}

Nur wenn du es in C schreibst, musst du im generierten Assemblercode 
überprüfen, ob der Optimizer wirklich eine Funktion erzeugt, die den 
getesteten Speicher nicht benutzt. Nach Murphys Gesetz vergisst du 
dieses Problem wieder, schaltest Debug-Optimierung ein und dein Programm 
stürzt bereits beim Start ab.

In Inline Assemler dürfte die Sache recht problemlos nur mit SFRs gehen.

von Klatec (Gast)


Lesenswert?

Danke.

Ich werde mich mit Assembler befassen, schaut beim PIC sehr kopliziert 
aus, bei der 8051 Familie ist das viel einfacher.

Lg.
johann K.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.