AVR ATMega128 - Flash auslesen

Gast #1261033
Hallo,
ich benutze den ATMega 128.
Ich Arbeite mit AVR Studio und IAR Embedded Workbench.

Ich möchte meinen gesamten Flash (außer Bootloader Sektion am Ende) 
auslesen und per UART ausgeben.

Ich brauche also eine Möglichkeit
die Daten im Flash
an einer bestimmten Adresse
in einem Byte, einem Word oder einer Seite in eine Variable meines 
C-Programs zu bekommen.

Die den Rest müsste ich dann hinbekommen.
Gast
>bVar = *(unsigned char *)(0x0200)
...
>Das muss auch mit dem IAR-ompiler gehen.

Auf einem AVR wird das, egal mit welchem Compiler, immer ins SRAM 
zeigen, nicht in den Flash.

Oliver
Gast
Danke für die Hilfe.

Die vollständige Lösung ist:
1
word addr; 
2
byte wert;
3
for (addr=0x0000;addr<0x0200;addr++)
4
{
5
wert =  *(__flash byte *)(addr);
6
ausgabe(wert);
7
}

Allerdings funktioniert sie nur für die ersten 64kB des ATMega ...
ich probiere gerade was ich in der zweiten Hälfte nutzen muss und ob ich 
auch den Bootloaderbereich selber damit auslesen kann.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.