Hallo allerseits, ich programmiere momentan eine Bootloaderanwendung für einen AT32UC3C0512C (auf der Arbeit als Werkstudent, daher darf ich keinen Code teilen). Der Bootloader erhält an sich ein Hex-File und schreibt dieses in den Flash. Das funktioniert soweit auch ohne Probleme. Das Hex-File entnehme ich direkt aus Atmel Studio 7. Innerhalb des Hex-Files ist mir aber ein Addresssprung aufgefallen: :085B400091260E9CCC7ED822B8 :105C0000C0080000C0080000C0080000C008000074 Wenn ich das Programm also über den Bootloader (mit dem Hex-File) in den Flash schreibe fehlen an dieser Stelle Zeilen und im Flash stehen dann nur 0xF's (Grundzustand des Flashs). Programmiere ich den Flash aber mittels JTAG (also komplett ohne Bootloader) wird in den Zeilen Code eingefügt. Programmiere ich den Flash nun wieder über den Bootloader und füge die Zeilen manuell ein, funktioniert das Programm ohne Probleme (ansonsten natürlich nicht). Ich Frage mich jetzt woher der Code kommt. Ich finde in keinem Output-File Informationen über diese Zeilen, nur das die darauf folgenden Zeilen (ab Adresse 0x5C00) die Exceptions enthalten. (Linker benutze ich keine in meinem Programm) Daher meine Fragen: 1) Woher könnte der Code kommen? 2) Darf ich zur Programmierung mit dem Bootloader evtl. nicht das Hex-File verwenden? 3) Wie kann ich meinen Bootloader so anpassen, dass der Code miteingefügt wird? (Dafür müsste ich natürlich wissen woher er kommt) Ich hoffe ihr könnt mir helfen, ich komme dabei nicht weiter. Mit freundlichen Grüßen Boot_Prog
Boot_Prog schrieb: >... Innerhalb des Hex-Files > ist mir aber ein Addresssprung aufgefallen: > > :085B400091260E9CCC7ED822B8 > :105C0000C0080000C0080000C0080000C008000074 > > Wenn ich das Programm also über den Bootloader (mit dem Hex-File) in den > Flash schreibe fehlen an dieser Stelle Zeilen und im Flash stehen dann > nur 0xF's (Grundzustand des Flashs). Programmiere ich den Flash aber > mittels JTAG (also komplett ohne Bootloader) wird in den Zeilen Code > eingefügt. Wo sollen den diese Daten, die Du nach dem Flashen via JTAG siehst herkommen? Wenn Du das selbe hex file nimmst, zum flashen via JTAG, dann müsste da nach den flashen auch eine Lücke sein, es seiden, die Daten in der Lücke stehen an einer anderen Stelle in der Datei. > Ich Frage mich jetzt woher der Code kommt. Ich finde in keinem > Output-File Informationen über diese Zeilen, nur das die darauf > folgenden Zeilen (ab Adresse 0x5C00) die Exceptions enthalten. Hast Du mal die Checksummen der Datei überprüft? Womit guckst Du Dir das Hex-File an? Hast Du mal das Hex-File in ein Bin-File konvertiert und Dir das angeguckt? > (Linker benutze ich keine in meinem Programm) > Daher meine Fragen: > 1) Woher könnte der Code kommen? Der könnte ggf. schon vorher da gestanden haben. Ist das evtl. irgend ein spezieller Konfigurationsbereich? Schon mal im Datenblatt nachgeguckt? > 2) Darf ich zur Programmierung mit dem Bootloader evtl. nicht das > Hex-File verwenden? Doch, dazu ist es da. > 3) Wie kann ich meinen Bootloader so anpassen, dass der Code > miteingefügt wird? (Dafür müsste ich natürlich wissen woher er kommt) Heraus bekommen, woher diese Zauberdaten kommen. mfg Torsten
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.