| PIC Bootloader | Bootloader für Enhanced Midrange PIC Microcontroller | |
BeschreibungProtokollPC-ToolDownloadKonfigurationApplikationKontakt |
Bootloader für Enhanced Midrange PIC Mikrocontroller(Hinweis: Dieser Bootloader ist nicht für das "klassische" PICALIC-Projekt geeignet, da dessen Controllertypen nicht zur Enhanced Midrange Familie gehören!) Funktion:Der Bootloader ermöglicht es, ohne Verwendung eines speziellen Programmiergerätes, ein Anwenderprogramm (die "Applikation") in den Speicher des Mikrocontrollers zu übertragen. Dazu ist lediglich eine Verbindung zum Host-Computer über die serielle Schnittstelle notwendig. Nur zur Initialprogrammierung des PICs mit dem Bootloader selbst ist natürlich nach wie vor einmal ein Programmiergerät notwendig. Zwischen dem "PICloader"-Tool auf
dem Host-PC und dem Bootloader auf dem PIC werden die Daten
über eine Signalleitung im Halbduplex-Verfahren
übertragen, so daß ein einzelner I/O-Pin am PIC
für die Kommunikation ausreicht. Der Bootloader ist für die Anwendung im Hobby-Bereich gedacht und hat daher keine Mechanismen zur Verschlüsselung oder zum Schutz gegen Auslesen des Codes eingebaut. Hier soll durch einen kompakten Bootloader-Code möglichst viel Flashspeicher für die Applikation frei bleiben. So belegt der Bootloader weniger als 256 Words im Programmspeicher. Eigenschaften des Bootloaders
SpeicheraufteilungDer Bootloader kann wahlweise am Anfang oder in einem hohen Adressbereich im Flash abgelegt werden. Im ersten Fall muss der Applikations-Code dann für eine Startadresse hinter dem Bootloader-Code erzeugt werden (üblicherweise 0x100). Der Interrupt-Vektor (0x004) wird per goto-Befehl direkt an die entsprechende Adresse (0x104) der Applikation weitergeleitet, wodurch sich die Laufzeit der Interrupt Service Routine um zwei Befehlszyklen verlängert. Wenn der Bootloader im oberen Bereich des Speichers angesiedelt ist, belegt die Applikation den gleichen Speicher, wie ohne Bootloader, d.h. der gleiche Applikationscode kann unverändert sowohl in einen PIC mit Bootloader, als auch (mit geeignetem Programmiergerät) in einen PIC ohne Bootloader geladen werden. Da die Interrupt Service Routine nicht gepatched werden muss, gibt es hier auch keine Laufzeitverlängerung. Das PC-Tool ("PICloader") modifiziert die ersten Befehle der Applikation, so daß der Resetvektor in den Bootloader zeigt und dieser dann in die Applikation startet. |
|