STM32F1xx vlastn bootloader

Jan Kral kral na fortech.cz
Sobota Květen 17 19:04:03 CEST 2014


Ja to delam po vzoru nekterych profi zarizeni tak, ze mam SPI flash pamet, ktera ma kapacitu na dvojnasobek potrebne pameti v procesoru. Samotny bootloader je trivialni zalezitost, ktera si precte z pameti kterou banku s firmwarem ma pouzit, zkontroluje jestli uz nahodou neni v pameti procesoru, aby jej neprepisoval tim samym dokola, kdyz neni stejne, tak nacte potrebny firmware a ulozi do procesor, pak skoci na zacatek aplikace, ktera si samozrejme posune vektory a vse jak je potreba, aby mohla fungovat.
Aktualizaci firmware se resi primo v aplikaci, ktera pres TCP nacte soubor od PC a ulozi do flash pameti do prostoru FW ze ktereho neni aktualne spustena. Dalsimi prikazy se provede restart s prepnutim na novy FW a po spravnem nabootovani se tento FW potvrdi ze se ma pouzivat trvale. V pripade, ze by aplikace nebyla spravna a nedosla do mista prijmu obsluhy prikazu, tak nepujde zadat povel pro trvale prepnuti FW a nasledny restart at rucni nebo od watchdogu zajisti navrat k funkcnimu FW.
Vyhoda je ze mohu mit v zarizeni soubezne dve verze aplikace a jen kratkym povelem provedu restart s prepnutim do druhe verze.
Tohle reseni neni nachylne na zadny problem s napajenim, ktery by jej mohl dostat do nefunkcniho stavu. Verim, ze i kdyz budete mit hazarni okno jakkoliv kratke, tak pri castem upgradovani nebo vicero zarizeni jednou k problemu dojde.

S pozdravem JK

> 
> Teď jsem koukal, že může být aplikace totálně nefunkční a lze se z toho
> vyhrabat i bez zásahu obsluhy. V bootloaderu použít watchdog s tím, že
> po výstupu z něj občerstvování převezme aplikace. A pokud v ní bude
> zásadní chyba, watchdog provede reset. Po resetu může bootloader
> zjistit z registru RCC_CSR, že reset provedl právě watchdog, takže
> podruhé již aplikaci nespustí a požádá o nový firmware.
> Pokud ho po určitou dobu nedostane, zkusí aplikaci znovu spustit,
> protože chyba nemusí být tak úplně kritická. Nic lepšího mě prozatím
> nenapadá, ale tohle by mohlo chodit.
> 
> Mrazík
> 
> On 05/17/2014 11:36 AM, Jaroslav Buchta wrote:
> > Jj, to je asi nejrozumnejsi reseni ktere jsem taky zvazoval (data
> bych
> > mel spis mimo procesor v nejake SPI flash ale to je jedno)
> > Krome toho, ze nesmi vypadnout napajeni se taky nesmi stat, ze bude
> > nova aplikace nejak zasadne nefunkcni, ale co uz se da delat...


Další informace o konferenci Hw-list