Xmega bootloader probléma.

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
Csuhas
Biztosítékgyilkos
Hozzászólások: 70
Csatlakozott: 2005. április 22. péntek, 6:00

Xmega bootloader probléma.

Hozzászólás Szerző: Csuhas »

Szervusztok.

Xmega 256a3u chipbe próbálok bootloadert belefaragni. A bootloader látszólag működik. A loaderbe beszúrt debug printek megjelennek. Az alkalmazást is betölti. Ha verifyvel ellenőrzöm másik programozóval akkor mind a loader mind az alkalmazás jó. A gond az hogy nem indul el az alkalmazás. Ha a fuse biteknél resetre az alkalmazást választom akkor az működik. Ha ugyanott a loadert választom akkor a loader lefut de nem tudja átadni a vezérlést a felhasználói programnak. A bootloader az a bascom 2.0.7.7 samplek között talált minta program: BootLoaderXmega256.bas. Mit ronthatok el?
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: Xmega bootloader probléma.

Hozzászólás Szerző: kapu48 »

Ebben a programban nincsen a _reset-nek érték adva!
Nem tudja hova ugorjon.

Kód: Egész kijelölése

Proces_reset:
  Rampz = 0
  Goto _reset                <    ???                           'start at address 0
Avatar
Csuhas
Biztosítékgyilkos
Hozzászólások: 70
Csatlakozott: 2005. április 22. péntek, 6:00

Re: Xmega bootloader probléma.

Hozzászólás Szerző: Csuhas »

A _reset az előre definiálva van. De akkor sem működik ha goto 0 vagy JMP 0 sort írok a helyére.
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: Xmega bootloader probléma.

Hozzászólás Szerző: kapu48 »

Nem biztos?
De ezek az értékek vannak az XM128-as loaderében is !

Szerintem a memória méret számítás maradt XM128-as beállításon.

Kód: Egész kijelölése

Const Maxwordbit = 7                                        ' Z7 is maximum bit                                   '
Const Maxword =(2 ^ Maxwordbit) * 2                         '128
Const Maxwordshift = Maxwordbit + 1

'A helyes érték:
Const Maxwordbit = 8      <  ???                                ' Z8 is maximum bit                                   '
Const Maxword =(2 ^ Maxwordbit) * 2                         '256
Const Maxwordshift = Maxwordbit + 1	
Avatar
Csuhas
Biztosítékgyilkos
Hozzászólások: 70
Csatlakozott: 2005. április 22. péntek, 6:00

Re: Xmega bootloader probléma.

Hozzászólás Szerző: Csuhas »

Nos ahogy írtam a reset címet zérusra állítva a fuse biteknél, jól működik a boot loader által betöltött program, illetve a loaderrel betöltött programot a verify avrisp programozóval helyesnek mutatja. A loader lefordított kódjában ( avr studióba betöltve a hexa kimenetet ) látható a jmp 000 utasítás. Tehát nem ezek miatt nem működik.
Avatar
Csuhas
Biztosítékgyilkos
Hozzászólások: 70
Csatlakozott: 2005. április 22. péntek, 6:00

Re: Xmega bootloader probléma.

Hozzászólás Szerző: Csuhas »

Megtaláltam a hiba okát!
Mind a programban mind a bootloader programjában a kód az órajel pll beállításával kezdődött. Ez külön külön rendben is volt, de a bootloder végén ha a főprogramba ugrott akkor újra lefutott volna a pll beállítás amit nem viselt el. Feltételes fordítással kiszedtem a loaderes verzióból ezt így működik a dolog. Mindjárt utána nézek hogy miért is nem viseli el a kétszeres óra konfigurálást.
Avatar
Csuhas
Biztosítékgyilkos
Hozzászólások: 70
Csatlakozott: 2005. április 22. péntek, 6:00

Re: Xmega bootloader probléma.

Hozzászólás Szerző: Csuhas »

Időközben kényelmesebb megoldást találtam a problémára:
A felhasználói programban az órajel beállítások után egy
!.org $200 direktívát szúrok be. Így a bootloader végén egy Goto $200
már jó helyre ugrik a fő programba.
Válasz küldése