Ein Boot-Loader ist eine spezielle Software, die gewöhnlich im Rom bzw. Flash sitzt oder vom Betriebsystem geladen und anschließend ausgeführt wird. Der Boot-Loader lädt dann weitere Teile des Betriebssystems (gewöhnlich einen Kernel) oder ein Hauptprogramm.
Die Atmel Controller (AVR Mega8, Mega32 usw.) besitzen einen reservierten Speicherbereich in welchen ein eigener Bootloader geladen werden kann. Dieser Bootloader kann automatisch bei einem RESET des Controllers ausgeführt werden, dies kann über die Fusebits eingestellt werden.
Mit den zwei Fusebits BOOTSZ (für Bootsize) kann die grösse des Bootsektors eingestellt werden, gemessen wird immer vom oberen Speicherende nach unten. Je nach grösse ändert sich auch der Startpunkt nach einem RESET falls das Fusebit BOOTRST ausgewählt wurde. Um den Bootsektor sowie auch den Programmspeicher vor ungewolltem überschreiben zu schützen, sind vier Boot Loader Lock Bits (BLB) vorgesehen, diese können die jeweiligen Bereiche mit einem Schreib-/Leseschutz versehen. Diese Lock Bits verhindern aber nicht das auslesen oder neu beschreiben über ISP. Die LockBits können entweder über ISP oder aber auch per Software direkt vom Programm aus gesetzt werden, zurücksetzen kann man sie aber nur durch einen sogenannten Chip Erase, bei dem auch der ganze Speicher des AVR gelöscht wird. |
Oft wird dies genutzt, um einen Controller auch per RS232, Infrarot oder Funk programmieren zu können.
Für das AVR Board RN-Control findet man im Roboternetz-Downloadbereich einen geeigneten Bootloader.
http://www.microsyl.com/megaload/megalo1.jpg
Leider funktionierte oben genannter Bootloader im Test nicht mit den üblichen Funkmodulen. Es gibt nun aber einen neuen Bootloader der offenbar recht gut auch die Programmierung per Funk erlaubt, siehe Weblinks