Bascom Hilfe: DATA, $DATA,READ.....Zitat von funkheld
Gruß Richard
Bascom Hilfe: DATA, $DATA,READ.....Zitat von funkheld
Gruß Richard
...The AVR has built-in EEPROM. With the WRITEEEPROM and READEEPROM statements, you can write to and read from the EEPROM...
Ich möchte nichts in das Eeprom reinschreiben, sondern während der Laufzeit in den Flashspeicher.
Gruss
Geht trotzdem mit DATA:
http://www.rn-wissen.de/index.php/Ba...ogrammspeicher
#ifndef MfG
#define MfG
Und das reinschreiben während der Laufzeit?
Gruss
das in den Flash schreiben geht aus dem Programmcode heraus zunächst garnicht. In den Programmspeicher schreibt entweder der ISP oder der Bootloader, der in einem separaten Speicherbereich liegt und das dann daher kann.
Wenn Du zur Laufzeit ins Flash schreiben willst mußt Du Dir einen Bootloader schreiben, der im Loaderbereich liegt, vom Hauptprogramm angesprungen wird, die Daten speichert und wieder zurück ins Hauptprogramm geht.
Theoretisch und auch praktisch machbar, obs Sinn macht muß jeder für sich entscheiden.
Vor den Erfolg haben die Götter den Schweiß gesetzt
Hmm, kann ich mir nicht so richtig vorstellen, aber probiert habe ich es bei AVR's auch noch nicht. Früher bei PIC's oder auch 80XX und 65XX mit ASM ging das aber ohne Probleme. Die haben aber auch eine von Neumann Struktur, (gemeinsamen Programm und Datenspeicher Bereich.
Möglich das man den Für einem Bootloader Bereich reservierten Platz für Tabellen nutzen kann wenn man gleich an dessen Anfang ein JMP auf die eigentliche Programm Start Adresse setzt Der den reservierten (Tabellenplatz) überspringt und das Programm startet.
Andererseits, liegen ja auch alle Anderen Variablen im Flasch und nicht im EEprom und können vom Programm gelesen und beschrieben werden...
Gruß Richard
Nein, die liegen im normalen zusätzlichen RAM, zb beim Atmega32 sind es 4kb.
Gruss
Ich habe jetzt auch nachgelesen, das es sich nicht lohnt, weil der Flash gegenüber den Eprom nur ca 10000 gelöscht (Eprom über 100000) und bespielt werden kann und danach Fehler auftreten können.
Variablen liegen entweder in den Registern, oder im SRAM oder im EEPROM oder sind Konstanten, die bei der Kompilierung vom Compiler vor dem flashen verarbeitet werden.
Im Flash liegen die beim AVR nicht.
SPM geht beim AVR nur im Bootloader. Im Programmflash geht das normalerweise nicht. Macht auch nur in Einzelfällen Sinn.
Wenn du in C Progmem verwendest werden die Daten im Flash abgelegt, sind aber Konstanten und dementsprechend unveränderlich.
Vor den Erfolg haben die Götter den Schweiß gesetzt
Lesezeichen