Ist es möglich während der Laufzeit den internen Flash zu beschreiben? Ich habe eine Lookup table, die von Zeit zu Zeit mal geändert wird und berechnet werden muss. Das dauert aufgrund von Floating Point Operationen alleridngs zu lange um es während des eigentliches Messvorgangs zu machen.
Carsten S. schrieb: > Ist es möglich während der Laufzeit den internen Flash zu beschreiben? Ist es. Oliver
Alternativ kannst du das EEPROM verwenden, das verträgt mehr Änderungen.
Oliver S. schrieb: > Ist es. Ich finde da in der AVR-libc nichts zu. Ich meine nicht das beschreiben aus dem bootloader sondern aus dem "normalen" Programm heraus.
Carsten S. schrieb: > Ist es möglich während der Laufzeit den internen Flash zu beschreiben? Teils, teils. Es gibt Bereiche im Flash, die tatsächlich "zur Laufzeit" beschrieben werden können. Damit ist konkret gemeint: währenddessen kann anderer Code tatsächlich u.U. noch laufen. Es gibt aber auch Bereiche im Flash, wo das nicht möglich ist. Du findest den Unterschied im Datenblatt unter den Stichworten "NRWW" respektive "RWW".
Carsten S. schrieb: > Ich meine nicht das beschreiben > aus dem bootloader sondern aus dem "normalen" Programm heraus. Du musst dafür in den Bootloaderbereich springen. Also deine Schreibefunktion per Linkerscript in den Bootloaderbereich lokatieren. Bootbereichfuse aktivieren. Wenn du keinen wirklichen Bootloader hast, dann aus dem Boot-Resetvector in den normalen Resetvector springen.
Carsten S. schrieb: > Ich finde da in der AVR-libc nichts zu. Ich meine nicht das beschreiben > aus dem bootloader sondern aus dem "normalen" Programm heraus. Ein "normales" Programm (außerhalb des Bootloader-Bereichs) kann generell nicht in den Flash schreiben. Es muß mindestens ein kleines Stück Code im Bootloader-Bereich aufrufen. Sprich: theoretisch muß mindestens der Kern der Sache, nämlich die "spm"-Instruktion im Bootloader-Bereich liegen. Praktisch muß noch etwas mehr dort liegen, insbesondere dann, wenn es sich beim Aufrufer um ein C-Programm handelt...
Carsten S. schrieb: > Ich finde da in der AVR-libc nichts zu. Das ist richtig, diese Bibliothek hat dafür keine Funktion. Das musst du dir "zu Fuß" programmieren. Für das EEprom gibt es aber C Funktionen.
Carsten S. schrieb: > Ich finde da in der AVR-libc nichts zu. Da spickt man in einem Sourcecode für einen Bootloader, der muss das ja können .....
SPI/TWI FRAM wäre vielleicht eine interessante Alternative und verträgt praktisch unbegrenzte Lese- und Schreibzugriffe. Ausserdem sind keine komplizierte FLASH Programmierungsmethoden notwendig.
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.