STM32F1xx vlastn bootloader

Petr Labaj labaj na volny.cz
Sobota Květen 17 15:46:55 CEST 2014


No a potřebuje bootloader vůbec přerušení?
Řekl bych, že bootloader nad sériovým portem by se určitě dal
snadno napsat bez přerušeni, nakonec DMA je v STM32 hodne
mocný nástroj.
Nebo pro náročnější komunikační kanály než je serial udělat bez
přerušení aspoň počáteční detekci "bude běžet aplikace" / "bude
běžet bootloader", a při požadavku na bootloader ho přesypat
do RAM a tam spustit, už včetně přerušení.
Pokud se naflashovaní nepovede (kontrola CRC), tak by to přesunutí
a spuštění bootloaderu v RAM po startu proběhlo automaticky.

Jediné slabé místo by mohlo nastat, kdyby došlo k výpadku napájení
zrovna v okamžiku, kdy by se zapisoval počáteční blok flash s adresu
startu po resetu (která musí směřovat na bootloader). Ale to je opravdu
asi hodně nepravděpodobné. A to, že tam ta adresa je správně
nasměrovaná, to už si před zápisem toho bloku bootloader zkontroluje.
Dokonce by tu adresu mohl i sám modifikovat, takže flashovaný program
by ani nemusel vědět, že nějaký bootloader existuje.

PL

*******************************

From: "Jaroslav Buchta" <jaroslav.buchta na hascomp.cz>
To: "HW-news" <hw-list na list.hw.cz>
Sent: Saturday, May 17, 2014 11:36 AM
Subject: Re: STM32F1xx vlastn bootloader


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...
Dalsi moznost me napadla napevno umisteny bootloader od 0, vektory 
presmerovany do aplikace umistene za bootloaderem, dalo by se prehravat 
bez ulozeni do mezipameti primo, v pripade selhani nebo nefunkcnosti 
aplikace se nic nestane, bootloader bude fungovat po resetu dal... To 
presmerovani vektoru je ovsem jedna nebo par instrukci navic (u tech, co 
by vyuzival i bootloader, hlavne USB)
Spis se zatim klonim k te druhe variante.
Skoda, ze vektory nejdou presmerovat primo, jako treba u AVR


Dne 17. 5. 2014 11:10, Tomáš Halabala napsal(a):
> Zdravím,
>
> já mám následující vlastní řešení, které používám u svých produktů. 
> Jedná se o skupinu zařízení, které vždy komunikují s okolím IP 
> protokolem ať už je fyzickým rozhraním LAN / WiFi / USB nebo jiné IP 
> kompatibilní medium. Hlavní výhody to má v tom, že aplikaci na PC je 
> jedno jak je zařízení připojené a nepotřebuji žádné vlastní ovladače, 
> protože třeba i přes USB se zařízení tváří jako USB síťový adaptér, 
> takže se automaticky použijí ovladače, které jsou součástí OS.
>
> Flash je rozdělená na 4 nezávislé bloky:
>
> 1) Blok od adresy 0 je pro hlavní program a všechny jeho podsekce, 
> které vytvoří linker, který je omezen pouze na tento blok.
> 2) Blok srovnatelné velikosti nebo větší jako 1 slouží jako úložiště 
> pro data
> 3) Blok s konfigurací, kde jsou uloženy údaje o konkrétním kusu 
> produktu jako je např. sériové číslo, MAC adresy, VID, PID atd.
> 4) Bootloader
>
> Linker má k dispozici blok 1 a přeložený program funguje se 
> standardním umístěním vektorů. Vše co je potřebné pro zajištění 
> komunikace s okolím je součástí hlavního programu, který volá podle 
> potřeby funkce "bootloaderu", které mají pevné a neměnné adresy. Jedná 
> se vlastně jen o jakousi sadu funkcí pro manipulaci s flash pamětí a s 
> programovatelnými pojistkami. Upgrade firmware probíhá tak, že jej 
> hlavní program přijme, zkontroluje a uloží do bloku 2 a pak jen zavolá 
> funkci z bloku 4, která si zakáže přerušení (takže žádnou vlastní 
> tabulku vektorů nepotřebuje) a následně provede samotné přepsání 
> firmwaru v bloku 1 daty, uloženými v bloku 2. Jediné co se nesmí stát 
> je přerušení napájení zrovna v okamžiku, kdy probíhá tato závěrečná 
> fáze, ale ta trvá opravdu jen několik ms, takže je riziko znefunkčnění 
> naprosto minimální.
>
> Výsledkem je, že je možno firmware v takovém zařízení naprosto 
> pohodlně přepsat třeba i přes internet.
>
> Tomáš
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list