S-recordIl formato S-record Motorola è una codifica di dati da binario a esadecimale ("hex") in testo ASCII . È noto anche come SREC[1] o S19[2]. Ogni record contiene un checksum per rilevare errori durante la trasmissione.[3] Il primo record (S0) può includere commenti arbitrari come il nome del programma o il numero di versione.[4] L'ultimo (terminazione) record (S7, S8, o S9) può comprendere un indirizzo di partenza.[4] Il formato S-record è stato creato nel 1970 per il processore Motorola 6800 quale tool di sviluppo software per questo e altri processori embedded, per convertire codice eseguibile e dati in formato S-record. I programmatori di PROM sono in grado leggere il formato S-record e "bruciare" i dati nelle PROM o EPROM utilizzate nei sistemi embedded. Esistono altre codifiche ASCII con uno scopo simile. BPNF, BHLF e B10F sono vecchie codifiche di formati binari, ma non sono né compatti né flessibili. I formati esadecimali sono più compatti perché rappresentano 4 bit per carattere, anziché uno solo. Altri, al pari di S-record, sono più flessibili, poiché includono informazioni di indirizzo, in modo da poter specificare solo una parte di una PROM. Il formato HEX di Intel è stato spesso utilizzato con processori Intel. Hex Tek è un altro formato esadecimale che può includere una tabella dei simboli per il debug. FormatoUn file in formato SREC consiste in una serie di record ASCII. Tutti i numeri esadecimali (hex) sono espressi in Big Endian. I record hanno la seguente struttura:
S1137AF0 0A0A0D0000000000000000000000000061 13+7A+F0 +0A+0A+0D+00+00+00+00+00+00+00+00+00+00+00+00+00 = 19E, poi prendere il byte meno significativo e quindi prendere il complemento a uno di tale byte (9E) che è uguale a 0x61 Ci sono otto tipi di record, elencati di seguito:
S0La sequenza dati del record S0 contiene i dati specifici del fornitore piuttosto che i dati di programma. Una stringa con il nome del file ed eventualmente informazioni sulla versione. S1, S2, S3Sequenza dati, dipendente dalla dimensione dell'indirizzo. Un sistema a 16-bit/64K utilizza S1, a 24-bit di indirizzo utilizza S2 e a 32-bit utilizza S3. S5Conteggio dei record S1, S2 e S3 che in precedenza compaiono nel file o nella trasmissione. Il conteggio dei record è memorizzato nel campo a 2 byte di indirizzo. Non ci sono dati associati a questo tipo di record.[5] S7, S8, S9Il campo indirizzo del record S7, S8, oppure S9 può contenere un indirizzo di partenza per il programma.[6] EsempioS00F000068656C6C6F202020202000003C S11F00007C0802A6900100049421FFF07C6C1B787C8C23783C6000003863000026 S11F001C4BFFFFE5398000007D83637880010014382100107C0803A64E800020E9 S111003848656C6C6F20776F726C642E0A0042 S5030003F9 S9030000FC Codice d'inizio Tipo Record Contatore byte Indirizzo Dati Checksum Riferimenti
Collegamenti esterni
|