Bootloader für XMega

RichardT
Benutzer
Avatar
Geschlecht:
Alter: 57
Beiträge: 19
Dabei seit: 02 / 2013
Betreff:

Bootloader für XMega

 · 
Gepostet: 09.05.2015 - 23:21 Uhr  ·  #1
Hallo @ all

Hab ein Problem mit dem ich seit 3 Tagen festhänge.

Hab Bootloader App geschrieben nach dem Vorbild: XMega_FATBoot. Soweit alles OK
Hab nun versucht eine funktionierende App via *.DLD file und SD karte (2GB, FAT32) zu laden.
Alles funktioniert soweit, nur läuft die Mainapp nicht an. Im Flash ist ein Programm von $00000 bis $XX und die BootApp von $20000 bis $YY. Im EEprom[EEpromEnd] steht "00", d.h. Upload($1234) hat geklappt.
BootErr gibt auch keine Fehlermeldung. Die geladene Mainapp im Flash ab $00000 ist allerdings viel kürzer und scheint auch komplett anders zu sein. Bin ratlos.

Device ist XMega128A4U.
SD card und Hardware hab ich mit anderem Program getestet, nach dem Vorbild XMega_FAT32.

PS: die Bootapp lauft nach einem Hardware reset wieder an allerdings ist dann im EEprom[EEpromEnd] = 00, und somit gibts kein Upload.

Frage: Warum lauft die Mainapp nicht an?
Bin auch unsicher mit den BootRst Adressen. Word oder byte Adresse? Im Datenblatt sind Word Adressen ($10000). Hab { $BOOTRST $20000} und { $BOOTRST $10000} probiert.
miparo
Schreiberling
Avatar
Geschlecht:
Herkunft: Germany
Alter: 59
Beiträge: 988
Dabei seit: 09 / 2007
Betreff:

Re: Bootloader für XMega

 · 
Gepostet: 11.05.2015 - 00:27 Uhr  ·  #2
Hallo RichardT,
da müsstest du mir mal bitte dein DLD File + Tesprog mailen per PM.
Sonst dürfte Hilfe schwer werden.

Gruß
miparo
miparo
Schreiberling
Avatar
Geschlecht:
Herkunft: Germany
Alter: 59
Beiträge: 988
Dabei seit: 09 / 2007
Betreff:

Re: Bootloader für XMega

 · 
Gepostet: 16.05.2015 - 16:16 Uhr  ·  #3
Hallo Richard,
das war ein Bug in der uFAT_BootX.PCU.

Gruß
miparo
RichardT
Benutzer
Avatar
Geschlecht:
Alter: 57
Beiträge: 19
Dabei seit: 02 / 2013
Betreff:

Re: Bootloader für XMega

 · 
Gepostet: 18.05.2015 - 21:23 Uhr  ·  #4
Danke Miparo

Hab's ausprobiert. Jetzt klappt's.

PS noch einen Tip an andere User: ein mdelay nach dem "EEprom[eepromend] := $FF" ist wichtig.?!?
(in der Main App)
Code
  if Firmware_Update  then
   EEprom[EEpromend] := $FF;            //enable bootloader update
   mdelay(100);
   HardwareReset;
  endif;
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Bootloader für XMega

 · 
Gepostet: 19.05.2015 - 13:42 Uhr  ·  #5
Hallo Richard,

klar ist ein Delay hier wichtig.
Das Schreiben ins EEprom kostet ein paar msec. Da sollte kein RESET
dazwischen funken.

rolf
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   96   110 · Page-Gen-Time: 0.025223s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI