Forum: Mikrocontroller und Digitale Elektronik Flash-Diagnose


von Ralf (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich verwende einen ATMega88 und möchte beim Start des Programms eine
Flash-Diagnose durchführen. Hierzu habe ich mir eine Routine
geschrieben, welche mir den Speicherinhalt des Flashs von Adresse
0000-1FFD aufsummiert (arithmetische Summe, 2Byte). Der verwendete
IAR-Linker erzeugt mir ebenfalls eine entsprechende Summe des obigen
Speicherbereichs und legt diese am Ende des Flash (1FFE-1FFF) ab.
Leider unterscheiden sich die beiden Summen. Klar, es kann sein, dass
tatsächlich ein Defekt vorliegt, aber vielleicht habe ich auch einen
Denkfehler gemacht.

Meine Routine habe ich als Anhang beigefügt.

Sieht hier jemand einen Fehler oder habe ich das Thema gar komplett
versiebt.

Danke für eure Bemühungen.

Gruß
Ralf

von Ralf (Gast)


Lesenswert?

Ok, ich weiß jetzt, dass es mit den Breakpoints des AVRStudio
zusammenhängt. Diese werden wohl beim Debugging im Flash abgelegt. Ich
gehe mal davon aus, dass man dies nicht umgehen kann. Falls doch, wäre
ich für eine Antwort dankbar.

Gruß
Ralf

von Hagen (Gast)


Lesenswert?

Ändere die Zählschleife so ab das sie Word-basiert über den Code
zusammenzählt. Nun kannst du vorher überprüfen ob der Opcode ein
Breakpoint ist. Ich weis leider nicht was AVRStudio als Opcode dafür
benutzt. Statt nun diesen Opcode aufzusummieren summierst du 0xFFFF
oder 0x0000 auf, also den Code der im HEX als Filler genommen wird.

Deine Zählschleife summiert also statt der Breakpoints den Wert für
eine unbenutzte Speicherzelle zusammen.

Gruß Hagen

von Ralf (Gast)


Lesenswert?

Hallo Hagen,

vielen Dank für deinen Tipp. Leider ist das Problem nicht so einfach zu
lösen. Das AVRStudio fügt nicht einfach einen einzelnen Befehl für den
Breakpoint ein, sondern modifiziert das Programm mit Sprungbefehlen und
verschiebt sogar einige Programmteile. D.h. ein einfaches Überschreiben
ist nicht möglich. Aber wenn das Programm keine Breakpoints enthält,
funktioniert ja die Flash-Diagnose.

Aber troztdem danke für die Antwort.

Gruß
Ralf

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.