STM32F1xx vlastn bootloader

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Sobota Květen 17 11:36:32 CEST 2014


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



Další informace o konferenci Hw-list