mikrocontroller.net

Forum: Compiler & IDEs Daten im Flash-ROM


Autor: Karl-alfred Römer (karl-alfred_roemer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hätte mal ne Frage: Wie kann man in AVR-GCC Daten ins Flash-ROM
programmieren (zur Programmierzeit)  und wie kann man die zur Laufzeit
auslesen? In Assembler ist es klar, nur wie macht man das in C?



Beispiel in Assembler:

.include "m8def.inc"
    ldi     R16, 0xFF
    out     DDRB, R16               ; Port B: Ausgang
    ldi     ZL, LOW(daten*2)        ; Low-Byte der Adresse in Z-Pointer
    ldi     ZH, HIGH(daten*2)       ; High-Byte der Adresse in Z-Pointer
    lpm                             ; durch Z-Pointer adressiertes Byte
                                    ; in R0 laden
    out     PORTB, R0               ; an PORTB ausgeben
 ende:
    rjmp ende                       ; Endlosschleife
 daten:
    .db 0b10101010

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Karl-alfred Römer (karl-alfred_roemer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Link. Umsetzung hat auch schon geklappt.
Noch eine weitere Frage dazu:

Wo landen die Daten im Speicher eigentlich?
Direkt hinter dem Programmcode (wie in Assembler)oder
irgendwo im Flashrom, wo der Compiler meint, es wäre noch
was frei?

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl-alfred Römer schrieb:

> Wo landen die Daten im Speicher eigentlich?

Normalerweise(*) hinter den Vektoren.

(*): Ich weiß nicht, ob es bei AVRs mit mehr als 128 KiB vielleicht 
anders ist.

Autor: Karl-alfred Römer (karl-alfred_roemer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls es eine dumme Frage ist, bitte ich im Voraus um Entschuldigung:
Was für Vektoren? Die Zeigerliste auf die ISR-Routinen?

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja.

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.