mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Flash-Diagnose


Autor: Ralf (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.