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