Gast
#4647888
Hallo! Ich versuche gerade den TWI Bootloader aus der Application Note AVR1622 von Atmel zum Laufen zu bringen. Mein Problem ist, dass ich den Bootloader auf einen anderen Mikrocontroller portieren muss, denn ich verwende den ATxmega32C4 statt dem ATxmega128A1 für den der Bootloader standardmäßig geschrieben ist. Es gibt aber eine zusätzliche Application Note, die die notwendigen Änderungen beschreibt. Diese habe ich auch gemacht und der Bootloader lässt sich auch ohne fehler kompilieren. Weiters hab ich mir die IAR IDE heruntergeladen istalliert und eingerichtet, was ein paar Tage gedauert hat, weil ich eigentlich immmer nur mit Atmelstudio gearbeitet habe und den IAR erst erlernen muss. Doch nun zum eigentlichen Problem. Das Hex File das vom IAR erstellt wird, platziert den Bootloader nicht in den Bootloader Bereich im Flash des ATxmega32C4 sondern direkt auf Adresse 0x0000. Das kann man sofort erkennen wenn man das Hex - File öffnet und die Adressinformationen auswertet. Wenn ich das Hex- File auf den µC flashe und das Flash wieder auslese, ist der Bootloader auch tatsächlich ab Adresse 0x0000 im Flash vorhanden, das restliche ungenutze Flash ist wie zu erwarten mit 0xFF aufgefüllt. Der Bootloader sollte aber beim ATxmega32C4 erst ab der Flash Adresse 0x8000 starten. Nun hab ich bereits einige Zeit nach Lösungen für mein Problem gegoogelt und auch einen vielversprechenden Lösungsansatz gefunden, der jedoch für mich nicht funktioniert hatte. http://www.avrfreaks.net/forum/how-set-bootloader-start-address Der Effekt war immer der Gleiche, der Bootloader wurde noch immer bei 0x0000 anfangend geschrieben. Was übersehe ich? Muss vermutlich was Grundlegendes sein :) Hoffe ihr könnt mir helfen! Lg Gregor