da
Paolino » 5 giu 2014, 10:13
posta10100 ha scritto: come funziona?
Controlla il clk del PIC facendolo avanzare step by step e andando a leggere i valori dei registri?
Conosci qualche documento che lo descrive?
Purtroppo non ho documentazione a riguardo, dovrei cercare in rete. So di certo che una parte delle risorse FLASH e RAM, nonché una serie di pin, vengono assegnati al debugger non appena questo viene selezionato. Se si è a corto di RAM difficilmente si fa debug.
Comunque quello che dici è corretto: mediante l'IDE si piazzano i break-point qua e là sul codice sorgente. Il flusso del programma si interrompe quando viene incontrato un break-point e mediante finestre di watch è possibile valutare e modificare i valori di registri e variabili.
Con taluni debugger evoluti (non emulatori, ma proprio debugger) è possibile piazzare breakpoint "su condizione", ossia qualcosa del tipo: "ferma il flusso del programma se la variabile ANALOG_01 supera il valore 140".
L'esecuzione passo-passo permette inoltre di entrare nel corpo delle funzioni e vedere cosa accade.
Unico avvertimento: quando si impiegano compilatori con attivate le ottimizzazioni di codice, non è facile fare debug, in quanto sembra che il program counter salti a destra e a manca senza un preciso percorso. Questo è dovuto al fatto che il codice assembly eseguito è spesso differente da come ce lo immaginiamo, se è passato sotto le forche caudine dell'ottimizzatore.
Ciao.
Paolo.