Remove ads
Da Wikipedia, l'enciclopedia libera
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.
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:
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 |
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.
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.
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]
Il campo indirizzo del record S7, S8, oppure S9 può contenere un indirizzo di partenza per il programma.[6]
S00F000068656C6C6F202020202000003C S11F00007C0802A6900100049421FFF07C6C1B787C8C23783C6000003863000026 S11F001C4BFFFFE5398000007D83637880010014382100107C0803A64E800020E9 S111003848656C6C6F20776F726C642E0A0042 S5030003F9 S9030000FC
Codice d'inizio
Tipo Record
Contatore byte
Indirizzo
Dati
Checksum
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.