Il formato S-record Motorola è una codifica di dati da binario a esadecimale ("hex") in testo ASCII. È noto anche come SRECSREC è un'abbreviazione di formato S-RECord o S19S19 deriva dai caratteri iniziali di ciascun record: S1, S2, S3, ... S9. S1-S9, abbreviato S19.. Ogni record contiene un checksum per rilevare errori durante la trasmissione. Il primo record (S0) può includere commenti arbitrari come il nome del programma o il numero di versione.. L'ultimo (terminazione) record (S7, S8, o S9) può comprendere un indirizzo di partenza.

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.

Formato Un 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: Codice d'inizio, un carattere, una S. Tipo Record, una cifra, da 0 a 9, definisce il tipo del campo dati. Contatore byte, due cifre esadecimali, indica il numero di byte (coppie di cifre esadecimali) che seguono nel resto del record (indirizzo, dati e campi di checksum). Indirizzo, quattro, sei, o otto cifre esadecimali, determinati dal tipo di record per la locazione di memoria del primo byte di dati. I byte degli indirizzi sono espressi nel formato big endian. Dati, sequenza di coppie di n cifre esadecimali, per n byte di dati. Checksum, due cifre esadecimali: il byte meno significativo del complemento a uno della somma dei valori rappresentati dalle due coppie di cifre esadecimali per il numero di byte, l'indirizzo e campi dati. Ad esempio:

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: Record Descrizione Bytes di indirizzo Sequenza dati S0 Blocco di intestazione 2 Si S1 Sequenza dati 2 Si S2 Sequenza dati 3 Si S3 Sequenza dati 4 Si S5 Contatore record 2 No S7 Fine blocco 4 No S8 Fine blocco 3 No S9 Fine blocco 2 No

S0 La 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, S3 Sequenza 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.

S5 Conteggio 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.

S7, S8, S9 Il campo indirizzo del record S7, S8, oppure S9 può contenere un indirizzo di partenza per il programma..

Esempio

S00F000068656C6C6F202020202000003C S11F00007C0802A6900100049421FFF07C6C1B787C8C23783C6000003863000026 S11F001C4BFFFFE5398000007D83637880010014382100107C0803A64E800020E9 S111003848656C6C6F20776F726C642E0A0042 S5030003F9 S9030000FC

Note

Bibliografia

Collegamenti esterni SRecord è un insieme di strumenti per la manipolazione di file in formato SREC. Intel HEX file format GNU Binutils objdump e objcopy sono programmi per generare e visualizzare S-records.

Categoria:Repertori di caratteri Categoria:Formati di file