dsPIC bootloader

Jiri Bezstarosti jiri@bezstarosti.cz
Úterý Srpen 14 11:23:45 CEST 2007


At uz jde o MCU jakykoli, je to s bootloaderem vzdy stejne (nebo dost 
podobne).

Jde o to, ze bootloader je aplikace, ktera co dostane ze seriaku (ale 
nemusi to byt jen seriak) ulozi do pameti programu MCU a uz je jedno, v 
jakem stavu to dostava, zkratka ve stavu, kteremu ten bootloader rozumi 
(protokol komunikace s tim bootloaderem a obsah dat). Bootloader je ale 
pouzitelny pouze pro MCU, ktere umi svou pamet programu samy prepsat (ta 
aplikace prepisuje obsah flash pameti a nejlepe kdyz neprepise 
bootloader sam) a to nejsou vsechny.

Bootloader se muze vyvolavat vice zpusoby. Muze po startu MCU cekat na 
nejakou komunikaci a kdyz prijde co ceka do nejake doby, zacne tahat a 
ukladat data a nebo kdyz neprijde, spusti aplikaci. Jiny zpusob je, ze 
se da na nejaky vstup jumper a podle jeho stavu se vola bud aplikace a 
nebo bootloader. U nekterych aplikaci se muze menit firmware (spoustet 
bootloader po pripojeni napajeni) treba specialni kombinaci tlacitek 
drzenych pri pripojeni napajeni atp.

Bootloader je v pameti umisten tak, ze je to prvni, co bezi. Tedy na 
pocatku programu je bootloader a ten rozhodne, zda udela skok do 
aplikace a nebo zacne tahat a ukladat data jako program.

Bootloader se z vysledne aplikace nejjednoduseji dostane tak, ze se 
misto jeho prvni instrukce udela skok primo do aplikace - pak se nic 
nemeni, az na tu jednu instrukci, ktera patrila bootloaderu. Jde ale 
take vyhodit bootloader uplne a kod posunout. Pokud se pouzije treba 
jumper k vyvolani tahani programu do pameti, pak tam klidne bootloader 
muze zustat, nema jak nastat jeho vyvolani (pokud to neni udelano spatne 
a nemuze pak treba vypadnout jumper vibracemi, cimz se vyvola po dalsim 
pripojeni k napajeni bootloader atp.).

Nektere MCU maji bootloader primo v sobe a to ruzne implementovany. 
Prikladem AT91SAM7Sxxx ma bootloader, ktery je umisten v ROM a 
pripojenim vysvodu TST k napajecimu napeti (a dalsimi tremi piny) se 
prenese obsah te ROM do FLASH (do 10ti sekund). Po dalsim pripojeni 
napajeni se spusti bootloader, ktery se sam prepise natahovanou 
aplikaci, takze pokud jej chcete pouzit priste, zase musite prekopirovat 
ROM do FLASH za pomoci toho vyvodu TST.

Jak vidite, bootloadery mohou byt ruzne a to od implementace od vyrobce 
az po spoustu ruznych variant vkladanych za pomoci programatoru do FLASH 
pred prvnim pouzitim a nebo zapajenim do desky. Mnoho lidi si napsalo 
vlastni, at uz k tomu meli duvod jakykoli ;).

Vzal jsem to mozna prilis ze siroka, asi je Vam spousta veci z toho 
jasna, ale treba to nekdo nevi a boji/stydi se jen zeptat.

--
Jiri Bezstarosti

Šerých Jakub napsal(a):

>DD *,
>ma tu nekdo prakticke zkusenosti s dsPICovym bootloaderem? Nahlizel jsem
>(jeste jsem je podrobne nestudoval) do nejakych AN a jestli to dobre chapu,
>narve se do dsPICa programatorem nejaky maly kus kodu, ktery po restartu
>nejakou chvilku cucha k UARTu, jestli naproti sedi patricna aplikace a pokud
>ano, zacne s ni komunikovat. Pokud ne, skoci na nejakou predem danou adresu
>zacatku aplikacniho kodu. Vlastni aplikacni soft se pak do PICa narve uz bez
>programovatka primo po seriovem portu tou (windowsovskou) aplikaci. Chapu to
>tak dobre? Ma to nejake zasadni zadrhele? Jak slozite je na zaver debugovany
>software predelat tak, aby sel narvat do dsPICa bez bootloaderu pomoci
>programovatka? Nebo se v aplikacich nechava bootloader i v ostrem provozu? 
>
>(jde mi o vyvoj nejakeho udelatka s dsPICem pro hratky nasich studentu -
>dsPIC, par LEDek, tlacitek, audio vstup/vystup)  
>
>Diky za informace
>
>Jakub Serych
>   
>_______________________________________________
>HW-list mailing list  -  sponsored by www.HW.cz
>Hw-list@list.hw.cz
>http://list.hw.cz/mailman/listinfo/hw-list
>
>
>  
>




Další informace o konferenci Hw-list