Timeline
Chat
Prospettiva

S-record

Da Wikipedia, l'enciclopedia libera

Remove ads

Il 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.

Remove ads

Formato

Riepilogo
Prospettiva

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:

  1. Codice d'inizio, un carattere, una S.
  2. Tipo Record, una cifra, da 0 a 9, definisce il tipo del campo dati.
  3. 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).
  4. 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.
  5. Dati, sequenza di coppie di n cifre esadecimali, per n byte di dati.
  6. 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:

Ulteriori informazioni Record, Descrizione ...

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.[5]

S7, S8, S9

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

Remove ads

Esempio

S00F000068656C6C6F202020202000003C
S11F00007C0802A6900100049421FFF07C6C1B787C8C23783C6000003863000026
S11F001C4BFFFFE5398000007D83637880010014382100107C0803A64E800020E9
S111003848656C6C6F20776F726C642E0A0042
S5030003F9
S9030000FC

     Codice d'inizio

     Tipo Record

     Contatore byte

     Indirizzo

     Dati

     Checksum

Remove ads

Riferimenti

Collegamenti esterni

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads