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.

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.