Forum: Projekte & Code KAVRX (KAVR für ATxmega)


von Jörg M. (brunobo)


Angehängte Dateien:

Lesenswert?

Hallo,

da ich seit ein paar Tagen mit den µC der ATxmega-Serie 
herumexperimentiere, vermisste ich sehr schnell den KAVR-Bootloader, 
damit man einfach per Terminal-Programm, was ich eh' ständig zum 
Debuggen geöffnet habe, die Firmware aktualisieren kann. Der in meinem 
Test-Board (ALVIDI AL-XSLED EXT) vorinstallierte chip45-Bootloader 
benötigt nämlich eine Client-App (BootFeedX), die unter OS X ständig 
abstürzt.
Also habe ich kurzerhand den vorhandenen KAVR-Bootloader (vielen Dank an 
dieser Stelle an den Autor Frank Edelhaeuser) für die ATxmega-Serie 
umgeschrieben (siehe Anhang). Die Konfiguration geht, wie gehabt, über 
das Makefile. Das Flashen des Bootloaders mittels Dragon (wie im 
Makefile angegeben) unter OS X hat zwar nicht funktioniert (scheint ein 
Bug im avrdude 5.11.1 zu sein), aber das ging dann prima mit meinem 
virtuellen Windows und Atmel-Studio.
Den originalen Assembler-Quellcode "sp_driver.S" aus der Atmel App-Note 
AVR1316 habe ich auf meine Bedürfnisse eingekürzt. Jetzt sind nur noch 
die Funktionen SP_LoadFlashWord und SP_EraseWriteApplicationPage 
enthalten, da der KAVR ja sowieso nur das Programm updaten kann, also 
den Flash-Speicher beschreibt. Den originalen Eingangs-FIFO, der immer 
den gesamten FIFO-Inhalt bei jedem Zeichen durchgeschoben hat, habe ich 
durch einen FIFO mit Ein- und Ausgangs-Pointer ersetzt. Das Umkopieren 
in einen Zwischenpuffer entfällt, da dies ja bereits mit der 
SP_LoadFlashWord-Prozedur erledigt wird.
Die Doku habe ich übrigens nicht angepasst. Sollte man vielleicht noch 
mal machen, aber jetzt muss ich erst mit meinem Board herumprobieren :-)

Vielleicht kann ja noch jemand diesen Bootloader gebrauchen.

: Verschoben durch User
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
Noch kein Account? Hier anmelden.