Přeskočení instrukce

Pár pripomienok:

Čas preprogramovania napríklad ATmegy1284P s 128kB Flash môže trvať 2-3sekundy. 4,5ms treba na zápis jednej stránky po 256B a je ich maximálne 512.

Ak sa data uložia do externej Flash, BIOS nemusí celú pamäť preprogramovávať pomalšie ako do 1-3sekúnd v závislosti od veľkosti celého programu. Nepoznám aplikáciu, v ktorej by nemohlo - obzvlášť v nejakom domčeku - nastať 3 sekundové “nič nerobenie”. Samozrejme periférie ako napríklad relé, si musia zachovať svoj stav.

Ak má jedna aplikácia začať bežať hneď po druhej a tieto nie sú totožné, potom v nich temer na 100% nebudú sedieť adresy do SRAM, takže nová aplikácia nemôže využívať posledné hodnoty spracované predchádzajúcou aplikáciou. Pred takýmto preprogramovaním je potrebné celý užitočný kontext z RAM vhodne uložiť a po reštarte novej aplikácie sa táto najprv musí oboznámiť s aktuálnym stavom.

Ako často je potrebné aplikácie preprogramovávať? Reálne v súčasnosti. 1x za hodinu? 5x za deň? Alebo ak sa má upgrade spraviť automaticky stačí ho fyzicky vykonať v nejakú dohodnutú hodinu, napríklad o tretej nad ránom? Aj potom je dostatočné, ak je aplikácia niekde vo Flash a zariadenie sa preprogramuje samo. Samozrejme, aplikácia môže odpočívať aj vo Flash procesora. Ale načo?

Ak chce užívateľ hneď vyskúšať nové fičúry ktoré si navymýšľal, nepočká tie cca 2 sekundy na preprogramovanie?

No možno nie, ale čas na vyrovnanie sa s kontextom v RAM nejaký predsa len potrebný bude.

Ako riešiš túto časť?

V každom prípade ďakujem za informáciu o tej fičúre prekladača, nevedel som.

Inak ak Ťa nebaví generovať nové obrazy, prácu si zautomatizuj nejakým skryptom. BIOS môže spúšťať vždy tú časť, ktorej naprogramovanie je ukončené a ktorá bude napríklad mať vyššie číslo verzie.