[elektro] AVR (re)boot

vfx info at vfx.hu
Wed Oct 17 23:58:41 CEST 2012


Hali!

> Az AVR boot része (amire a bootloaderek épülnek) képes a kovetkezõkre?
> 
>   - "Gyári" SPI felprogramozáskor megkapja a default Firmware-t + egy boot részt
> 
>   - Reset vektor a boot-ra mutat, a boot pedig átadja a vezérlést a FW-nek
> 
>   - Ha a FW frissebb FW-t talál az "éterben" (hogy hol, az mellékes), akkor egy byte-ot átüt az EEPROM-ban és reboot-ol
> 
>   - Induláskor a boot megállapítja (az átütött byte alapján), hogy neki most dolga van és letölti+beírja az új FW-t


Igen ezt mind tudja. Én úgy használom, ha a user prog update-et észlel,
akkor elugrik a BOOTrészre és megcsinálja a frissítést. Nem kell csak
ezért reboot. Hogy ne változzon a frissítõ rutin címe én az ISR tábla
mögé szoktam berakni a jmp amolyan SYStem hívásként.

 
> Most kezdtem el foglalkozni az AVR boot részével, de egyelõre ott akadtam
> el, hogy hiába ütöm be 0-ba a BOOTRST-t (FUSEH), ugyanúgy a 0x0000 címen
> kezdi (Mega644).
> 
> BOOTSZ0=1, BOOTSZ0=1 (Boot loader: 0x7E00 - 0x7FFF)
> 
> Mi egyéb furmányra kell még ügyelni?
> 

Ha a bootrst és a bootsize megvan, és a boot kódot le is töltötted,
akkor és mégis a 0000-n kezd, akkor néz meg a boot kodot, hogy nem-e
egybõl 0000-ra ugrik, vagy nem állitja át az IT és reset vektorokat a
0000-ra (az IT tábla állítható SW-bõl is nem csak fuse bittel).

ÜDV. VFX.
http://www.vfx.hu



More information about the Elektro mailing list