====== Firmware ====== ---- ===== Název souboru s firmware ===== |< 100% >| || @red: | Firmware Unicard je distribuován v souborech "unicard.app". Pokud je za "unicard" ještě další text, označuje tento text typ počítače, pro který je firmware určený. V současné době (07/2018) jsou rozpracované firmware Unicard pro 4 druhy počítačů SHARP: |< 50% 20% >| ^ typ počítače ^ název firmware ^ | MZ700 EU |@#D6EFC2:{{:unicard:firmware:unicard700_EU.zip}}| | MZ700 JP |@#D6EFC2:{{:unicard:firmware:unicard700_JP.zip}}| | MZ800 |@#D6EFC2:{{:unicard:firmware:unicard800.zip}}| | MZ1500 |@#D6EFC2:{{:unicard:firmware:unicard1500.zip}}| \\ Při update firmware je třeba pracovat s extrahovanými soubory **unicard*.app**. ---- ===== Update firmware ===== |< 100% >| || @red: | Update firmware provádí Unicard a nepotřebujeme pro něj JTAG programátor. Stačí mít v počítači SHARP Unicard s připravenou SD kartou a pokud se parametry stávajícího firmware Unicard liší od nového firmware na SD kartě, po zapnutí počítače provede bootloader Unicard update firmware automaticky. ==== Příprava SD karty ==== - naformátujeme SD kartu na souborový systém FAT32 - vybereme podle typu počítače správný firmware (//unicard700_EU.app, unicard700_JP.app, unicard800.app, unicard1500.app//) - nakopírujeme firmware do rootu SD karty - přejmenujeme firmware na ** unicard.app ** ==== Update ==== Vložíme SD kartu do počítače SHARP a zapneme ho. Pokud je vše v pořádku, objeví se na obrazovce monitoru informace o průběhu update. Po jeho ukončení proběhne standardní boot počítače. Soubor **unicard.app** můžeme ponechat v rootu SD karty. Pokud bootloader Unicard zjistí shodu parametrů stávajícího firmware s firmware na SD kartě, update neprovede. [{{unicard:firmware:unicardfw_update.jpg|//Průběh update firmware Unicard//}}] ==== Omezení při update firmware ==== Pro update firmware platí dvě omezení: * musí souhlasit kontrolní součet firmware * parametry nového firmware se musí lišit od parametrů aktuálního firmware Unicard \\ V případě potřeby lze tedy bez problémů provádět i update starší verze firmware přes novější. ---- ===== Struktura souborů s firmware ===== |< 100% >| || @red: | Každý soubor obsahující firmware Unicard se skládá z hlavičky délky 512 byte a vlastního zakódovaného firmware. [{{unicard:firmware:unicardfw_head_hex.jpg|//Hlavička ve firmware Unicard//}}] ==== Popis struktury hlavičky ==== ^ Offset ^ Význam ^ Obsah ^ Délka ^ | 0 byte | identifikační signatura | @#00a2e8:**UNICARD_** | 8 byte | | 9 byte | verze | @#00a2e8:**n** | 1 byte | | 10 byte | oddělovač verze a subverze | @#00a2e8:**.** | 1 byte | | 11 byte | subverze | @#00a2e8:**nn** | 2 byte | | 13 byte | velikost souboru včetně hlavičky (unsigned long) | @#00a2e8:** nn nn nn nn** | 4 byte | | 17 byte | kontrolní součet souboru firmware (unsigned long) | @#00a2e8:** nn nn nn nn** | 4 byte | | 21 byte | CR LF | @#00a2e8:**0D0A** | 2 byte | | 23 byte | identifikace počítače **MZ_ID** - v současné době: * // MZ700_EU// * // MZ700_JP// * // MZ800 // * // MZ1500 // | @#00a2e8:**MZ_ID** | podle délky MZ_ID | | 23 byte + délka MZ_ID | CR LF | @#00a2e8:**0D0A** | 2 byte | | 23 byte + délka MZ_ID + 2 byte | nepoužito | @#00a2e8:**volné** | zbytek do 512 byte | Případný čtenář může zaslat návrh na využití volných byte v hlavičce firmware. Zatím tu mám návrh od Bohouše - jakou modifikaci, kdo to překládal; co měl k obědu a jaké bylo počasí a výhled na týden dopředu. Já jsem navrhoval oslavnou báseň na Bohouše s vynecháním místa na drobný oslavný rým pro Mikeše a Martina :-D. ==== Popis struktury firmware ==== Od 513. byte (0x0200H) se nachází vlastní binární kód firmware Unicard. Tento kód je kryptovaný, firmware nelze tedy přímo prohlížet. Jak bylo v popisu hlavičky zmíněno, soubor obsahuje kontrolní součet, který zabraňuje možnosti update poškozeným firmwarem. Při update se kontrolní součet ověří a pokud nesouhlasí s kontrolním součtem uvedeným v hlavičce, update se neprovede.