Hallo zusammen,
ich programmiere zum ersten Mal einen Bootloader auf einen Chip und habe
bezüglich der Programmierung eine Frage.
Ich nutze einen XMega256A3U und steuere ihn über ein Terminal via USB.
Aus diesem Terminal springe ich per Software in den DFU USB Bootloader
(Version 1.04 von Atmel).
1 | void(* jump_to_bootloader)(void) = (void (*)(void))(BOOT_SECTION_START/2 + 0x1FC/2);
|
2 | udc_detach();
|
3 | udc_stop();
|
4 | EIND = BOOT_SECTION_START>>17;
|
5 | jump_to_bootloader();
|
Das funktioniert soweit, aber nur, wenn ich den Bootloader per JTAG
aufspiele, meine eigentliche Applikation dann über den Bootloader selbst
(via FLIP).
Meine Frage: Ist es möglich, sowohl den Bootloader, als auch mein
Programm über JTAG aufzuspielen?
Zur Erklärung: Wenn ich es auf diese Weise mache, habe ich entweder
keinen Bootloader (bzw. wird nicht erkannt), oder ich habe keine
Applikation drauf - je nach Reihenfolge der Programmierung.
Ich hatte irgendwo gelesen, dass Atmel Studio erkennt, wohin das
hex-File geschrieben werden muss, d.h. in den Bootloader-Sektor oder in
den Programm-Bereich. Ich weiß aber nicht, ob ich hierfür noch etwas
einstellen muss.
Wäre jemand so freundlich, mich aufzuklären?
Danke und viele Grüße
P.S.: Setting: Atmel Studio 7.0, Atmel ICE 3