Hi, sind die AVR (Atmega) Bootloader eigentlich nur dazu da, um den Flash "von außen" neu zu beschreiben oder kann man die auch nutzen, um aus dem laufenden Programm heraus im Flash Veränderungen vorzunehmen? Die Releasenotes von Atmel schweigen dazu... Freak
Je nach AVR-Typ kann nur code aus der Bootloader-Section ausgeführt werden, während das FLASH beschrieben wird. Und der Bootloader lässt sich auch aus dem normalen Code ausführen, z.B. mit einem beherztem JMP an den Anfang der Bootloader-Section. /Ernst
Ja klar. Aber damit starte ich doch den gesamten Bootloader. Ich will nur die Flash-Schreibroutinen nutzen, um irgendwie erzeugte Daten ins Flash zu schreiben. Nicht mißverstehen: EEPROM und RAM sind mir bekannt, auch externe. Auf der anderen Seite will ich den Booloader nicht ersetzen. Also eigentlich bin ich auf der Suche nach einer Bootloader-API... Freak
hier in der Codesammlung sind einige Bootloader Beispiele incl. Quellcode. Wenn du den AVR-GCC benutzt: da gibt es Macros in boot.h die man nutzen kann. In den AVR Datenblättern ist das aber auch beschrieben (unter Bootloader Support). Es hängt von den Lockbits ab in welche Bereiche der Code schreiben darf.
Das ist möglich und wird sogar gemacht, wenn man z.B. mehr Daten zwischenspeichern will, als der EEPROM faßt. Allerdings muß man solche Routinen in Assembler schreiben, damit sie keine Variablen im SRAM benutzen bzw. diese ausschließlich auf dem Stack ablegen. Ansonsten wird Deine Anwendung korrumpiert, da beides eigenständige Programme sind, die von der Speicherbelegung des anderen nichts wissen. Peter
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.