Debug del codice macchina
Tra i vari progetti nel cassetto, dei quali non faccio mai nulla di concreto, c'è un firmware ormai sviluppato, che elabora un OP code di mia ideazione. Lo avevo studiato e scritto per una pazza idea chee è rimasta sepolta tra la moltitudine di altre idee. Ora è tornata alla ribalta... Se non ne farò nulla di pratico, almeno ne farò un altro articolo per il blog.
Per intanto il problema che ho, o meglio, l'idea che mi manca è come scrivere un debug. Mi spiego.
Il firmwarer scritto è per dei PIC ed implementa già una buona libreria di comunicazione che sarà l'interfaccia tra il PIC ed il resto del mondo. Tramite questa interfaccia, dialogo col codice ideato e posso leggere e modificare il programma: non il firmware del PIC, ma la parte compilata dalla mia utility. Ora vorrei fare il debug real time del mio codice, in modo che sul PC di programmazione possa mettere in animazione il risultato delle elaborazioni interne al PIC, (che per il vero potrebbe essere qualunque processore). Non mi viene in mente una idea brillante, semplice.
Le strade che ho in mente sono:
1) con un buffer ed una struttura dati predisposta, per ogni riga del mio OP code, memorizzo il risultato, oltre che nelle variabili di destinazione, anche nelle variabili del buffer di debug per la riga corrispondente e, successivamente, tutto il buffer viene inviato al PC per l'animazione.
2) dopo l'elaborazione di ogni riga, invio al PC il risultato dell'elaborazione.
La soluzione 1) prevede l'uso di parecchia memoria che può essere limitata facendo l'animazione per solo alcune righe di codice consecutive.
La soluzione 2) invece impiaga molte risorse di comunicazione, che tipicamente sono lente, e, quindi, rallenterebbero moltissimo l'elaborazione del programma. Non mi sembra affatto una bella idea.
Spero in qualche idea illuminante, semplificativa.
Per intanto il problema che ho, o meglio, l'idea che mi manca è come scrivere un debug. Mi spiego.
Il firmwarer scritto è per dei PIC ed implementa già una buona libreria di comunicazione che sarà l'interfaccia tra il PIC ed il resto del mondo. Tramite questa interfaccia, dialogo col codice ideato e posso leggere e modificare il programma: non il firmware del PIC, ma la parte compilata dalla mia utility. Ora vorrei fare il debug real time del mio codice, in modo che sul PC di programmazione possa mettere in animazione il risultato delle elaborazioni interne al PIC, (che per il vero potrebbe essere qualunque processore). Non mi viene in mente una idea brillante, semplice.
Le strade che ho in mente sono:
1) con un buffer ed una struttura dati predisposta, per ogni riga del mio OP code, memorizzo il risultato, oltre che nelle variabili di destinazione, anche nelle variabili del buffer di debug per la riga corrispondente e, successivamente, tutto il buffer viene inviato al PC per l'animazione.
2) dopo l'elaborazione di ogni riga, invio al PC il risultato dell'elaborazione.
La soluzione 1) prevede l'uso di parecchia memoria che può essere limitata facendo l'animazione per solo alcune righe di codice consecutive.
La soluzione 2) invece impiaga molte risorse di comunicazione, che tipicamente sono lente, e, quindi, rallenterebbero moltissimo l'elaborazione del programma. Non mi sembra affatto una bella idea.
Spero in qualche idea illuminante, semplificativa.