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
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?
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.
Falls es eine dumme Frage ist, bitte ich im Voraus um Entschuldigung: Was für Vektoren? Die Zeigerliste auf die ISR-Routinen?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.