SRecord un tool per la gestione dei file per EPROM

Un ottimo tool per manipolare i file utilizzati dai programmatori di EPROM. Ecco come installarlo, compilarlo e modificarlo per l’aggiunta di nuovi formati.

SRecord è un pacchetto  open source studiato per gestire i formati  dei “file  da epromizzare”. Con “file  da epromizzare” ci si vuole riferire a quei particolari formati utilizzati dai programmatori di eprom. È possibile modificare i codici sorgenti, inclusi nella distribuzione, in accordo alla licenza GNU General Public License messa a punto dalla Free Software Foundation. Questa caratteristica rende il tool veramente interessante infatti, in questo modo, è possibile farsi la propria distribuzione includendo formati proprietari o aggiungere proprie applicazioni.  Se vogliamo ricompilare la distribuzione in ambiente Windows dobbiamo procurarci  gli  ambienti  Cygwin  o  il  tool  DJGPP di Delorie (www.delorie.com).

DISTRIBUZIONE

Il pacchetto SRecord è distribuito con i file riportato nella tabella 1. SRecord comprende tre applicazioni:

srec_cat

È un programma utilizzato per concatenare file EPROM o porzioni di questi. È utilizzato anche per le conversioni da un formato all’altro. L’uso, dei filtri rende l’applicazione veramente flessibile: è possibile, per esempio, generare un checksum per dare una firma al file ottenuto.

srec_cmp

È utilizzato per fare l’operazione di difference o compare tra due file, o EPROM, o porzioni di file per verificarne il contenuto. Esistono diversi parametri d’ingresso: è possibile specificare il formato del file o un particolare filtro da applicare.

Il  comando  può  assumere  questo  formato:

filename [format][−ignore-checksums][filter...]

Il parametro filename può essere il nome di un file o può anche essere indicato  lo standard input.

srec_info

È utilizzata per visualizzare informazioni sul formato del file. Questo comando legge il file, specificato  nel parametro d’ingresso e presenta a video le informazioni. Queste possono includere l’indirizzo di partenza, l’occupazione di memoria e l’eventuale header.

Tabella 1. I file contenuti nel pacchetto SRecord

Tabella 1. I file contenuti nel pacchetto SRecord

COME COSTRUIRE SRECORD

A volte può essere necessario modificare la distribuzione per adattarla alle proprie esigenze, oppure può capitare di apportarvi delle modifiche al codice sorgente magari perché si scopre un baco. Non esistono particolari requisiti per compilare SRecord, basta avere almeno 4 Mbyte  di RAM per scompattare e ricompilare il pacchetto e procurarci una serie di tool GNU (reperibile al sito ftp.gnu.org):

GNU Groff

Questo tool è utilizzato per produrre la documentazione da includere alla distribuzione, la versione da utilizzare deve essere non meno della 1.14.

GCC

Questa è la suite della GNU e viene utilizzata per compilare il pacchetto SRecord. Occorre il compilatore (GNU C++) con tutte le librerie. Una volta reperiti i tool di sviluppo, con le relative utility, occorre fare un piccolo lavoro preliminare, per predisporre la configurazione. Per fare  questo  SRecord  utilizza  il  programma configure inclusa nella distribuzione stessa. Configure è uno script che permette di predisporre correttamente  il  processo  di  configurazione  e compilazione  e  per  fare questo  si  utilizzano le variabili d’ambiente. Configure produce, al termine del processo, il Makefile e il file lib/config.h. Un altro aspetto da tenere presente che è viene, anche, prodotto  lo script config.status: questo è utilizzato per ricreare l’ambiente di configurazione. Per lanciare il processo di configurazione, dalla shell è necessario utilizzare il comando:

./configure

Il processo di configurazione dura tipicamente un paio di minuti. Durante il comando di configurazione vengono visualizzate una serie di informazioni sul terminale d’uscita. È possibile disabilitare questo comportamento verboso semplicemente aggiungendo al comando lo switch –quiet. È possibile compilare Srecord in una cartella diversa da quella contenete il codice sorgente, in questo caso è necessario utilizzare una versione di make che supporta la variabile d’ambiente VPATH. Con la scelta —srcdir=DIR è possibile definire, poi, un’altra cartella per i file sorgenti. Per installare il pacchetto, al termine della compilazione, è necessario utilizzare il comando make install, in questo modo, al termine dell’operazione il tool è posto nelle cartelle:

/usr/local/bin e /usr/local/man.

Se, poi, disponiamo del tool GNU Groff allora il processo di building si preoccuperà di creare il file etc/reference.ps. In questa cartella devono essere presente il file README: è utilizzato per la costruzione di SRecord e le pagine del manuale in linea. Il comando make può essere utilizzato anche per rimuovere i file binari e gli obj mediante lo switch clean, così make clean. Invece se volessimo rimuovere tutti i files, il Makefile, lib/config.h e config.status utilizzeremo il comando make distclean.

Windows

Il pacchetto Srecord può essere compilato anche sotto Windows grazie all’ambiente Cygwin o DJGPP. Con Cygwin si ha lo strato software necessario per mettere in esecuzione una shell Unix in ambiente Windows. In questo caso la descrizione sopra riportata si adatta pienamente anche per Windows. Al termine del processo di compilazione e linking è possibile, mediante l’uso dei test inclusi, verificare il lavoro svolto. Per mettere in esecuzione la test suite dobbiamo utilizzare il comando make sure e al termine dovrà essere visualizzato sullo schermo l’indicazione “Passed All Tests”.

Installare SRecord

Il pacchetto Srecord è installato, come è stato detto, sotto la cartella /usr/local per default, ma è possibile cambiarla modificando l’opzione –prefix=PATH nella fase di configurazione. Per avere maggiori informazioni è opportuno leggere la documentazione a corredo o utilizzare lo switch –help in configurazione. Per installare il tool, infine, quello che dobbiamo fare è utilizzare il comando make install.

AGGIUNGIAMO UN  NUOVO FORMATO

Qualsiasi  programmatore  può  aggiungere  un nuovo formato nella distribuzione, se esiste questa  necessità  occorre  generare  la  patch  delle modifiche apportate alla distribuzione stessa. La patch può essere generata utilizzando il comando:

diff –u –r

Per aggiungere un nuovo formato dobbiamo intervenire nelle cartelle output,  input  e creare una serie di nuovi file. Il primo è sicuramente un file  che  deve  contenere  una  descrizione  del nuovo formato. Questo deve essere posizionato nella cartella lib/srec/output/file  e referenziato come name.cc, con name deve essere indicato il nome del nuovo formato.  Chiaramente, questo file deve contenere una serie di metodi per manipolare in modo opportuno il formato; per avere delle indicazioni di massima su come scrivere queste funzioni, può essere utile leggere un file già scritto presente nella distribuzione. Utilizziamo anche lib/srec/output/file.h  e lib/srec/output.h  per conoscere i vari metodi richiesti. La dichiarazione delle classi dei file citati può essere realizzata in lib/srec/output/file/name.h, questa contiene le definizioni di interfaccia per lib/srec/output/file/name.cc. Dobbiamo poi implementare il file lib/srec/input/file/name.cc, questo deve contenere le indicazioni su come leggere il nuovo formato. Anche in questo caso può essere opportuno leggere, sempre nella stessa cartella, un file simile per facilitarne la sua realizzazione. Inoltre, è necessario controllare i file lib/srec/input/file.h  e lib/srec/input.h per i vari metodi da aggiungere. Il file name.h nella cartella lib/srec/input/file deve contenere la dichiarazione delle classi per i file sopra citati. Per finire occorre descrivere il formato nel manuale della distribuzione in man/man5, questo compito viene svolto aggiungendo la descrizione nel file  srec_name.5. Per completare il lavoro è necessario modificare gli altri file presenti in tabella 2.

Tabella 2. Ulteriori file da modificare per aggiungere nuovi formati

Tabella 2. Ulteriori file da modificare per aggiungere nuovi formati

CONCLUSIONE

La distribuzione ufficiale è disponibile su http://srecord.sourceforge.net/, e qui troviamo tutta la documentazione e le diverse distribuzioni per Linux e Windows. Nella documentazione a corredo ci sono poi informazioni approfondite su tutti i formati supportati. Senza dubbio SRecord è un ottimo strumento per consentirci di manipolare i file di questo tipo.

 

 

Scrivi un commento

EOS-Academy

Ricevi GRATIS le pillole di Elettronica

Ricevi via EMAIL 10 articoli tecnici di approfondimento sulle ultime tecnologie