Home
Accesso / Registrazione
 di 

Corso di programmazione per microcontrollori Zilog Z8. Terza puntata 6

microcontrollori Zilog Z8

CLEAR ALL

Questo comando consente di cancellare contemporaneamente tutti i break point attivi nel programma. JUMP Consente di spostare la videata su una desiderata locazione di memoria. Allo scopo, è sufficiente scrivere l’indirizzo esadecimale relativo all’inizio della sezione da visualizzare e “cliccare” su Jump. Questo comando risulta utile quando si vuole far eseguire all’emulatore solo una parte di un programma oppure, più semplicemente, quando, dopo aver eseguito un programma, si desidera tornare all’istruzione iniziale. STEP Serve per eseguire il programma in modalità “passopasso”, ovvero una singola istruzione per volta. Questo comando consente anche di processare solo un blocco di un certo numero di istruzioni per volta. In quest’ultimo caso, dovremo digitare un numero di passi diverso da uno; successivamente “cliccando” su Step verranno eseguite tutte le istruzioni previste.

STEP OVER

La funzione è simile a Step, però l’incremento è sempre unitario e le istruzioni vengono eseguite esattamente l’una di seguito all’altra così come sono riportate nel listato del programma.

z8_code_memory

RESET

Serve per resettare il micro: il programma si predispone per ricominciare dall’inizio, ovvero dalla prima istruzione disponibile nella memoria programma. GO Serve per far eseguire il programma fino al prossimo break point.

HALT

Serve per fermare l’esecuzione del programma: la sequenza di processo delle istruzioni si interrompe; per riavviarla occorre inviare un altro comando di GO. Le finestre di stato visualizzano la condizione assunta dai registri nell’istante in cui viene arrestato il micro.

TRACE

Permette di tracciare, cioè di elencare, o il codice eseguito (modalità Trace Code) o le chiamate di subroutine (Trace Call) oppure nessuna delle due (modalità No Trace). Per definire l’una o l’altra modalità è sufficiente richiamare il menu RUN (attivo quando si apre la finestra di Debug) e selezionare appunto Trace Code oppure Trace Call. Supponiamo, ad esempio, che in una certa parte del programma vi sia una istruzione di salto che, quando processata, fa eseguire alla CPU una parte di programma per un determinato numero di volte. Utilizzando l’opzione Trace Code sarà possibile visualizzare la sequenza di istruzioni che la CPU esegue ad ogni ciclo e quindi valutarne la correttezza o meno. Sempre nel menu RUN sono presenti altri due comandi molto importanti per eseguire un programma e per verificarne la correttezza, questi due comandi sono denominati Clear Trace e Animate.

CLEAR TRACE

Serve per cancellare l’intero contenuto della finestra Trace. A seguito di questo comando è possibile attivare un nuovo comando di Trace.

ANIMATE

Consente di processare le istruzioni in modo estremamente lento per poterne seguire visivamente l’esecuzione, oppure permette di processare le istruzioni a velocità “reale”, quella ciò che effettivamente verrà utilizzata dal micro. Quando il comando Animate è attivo, indicato dalla presenza del segno di spunta, l’esecuzione viene effettuata lentamente ed è così possibile testare tutte quelle parti di programma che non interagiscono con eventi esterni (interruzioni, contatori, ecc.) ma che devono eseguire soltanto delle elaborazioni. Eseguendo lentamente il programma, risulta possibile controllare se effettivamente accade quello che ci si aspettava o no. Disattivando la modalità Animate si ha l’esecuzione a velocità di clock. Bisogna notare, che la possibilità di tracciare il codice o le chiamate a subroutine (call) è attiva solo in modalità animate. Abbiamo quindi visto come eseguire un programma in emulazione. Addentriamoci adesso nelle varie possibilità offerte dall’emulatore.

VISUALIZZARE E MODIFICARE IL CONTENUTO DEI REGISTRI

Nel menu Icebox, è possibile, attivando il comando Register, aprire una finestra in cui vengono visualizzati i registri del microcontrollore. In questa finestra vengono riportati i registri che vanno da 00 a 7F, ovvero i registri di uso generale più i registri delle porte. Per comodità, la finestra è suddivisa in due sezioni, quella di sinistra esprime il contenuto dei registri in formato esadecimale, mentre la parte alla destra riporta il carattere ASCII corrispondente al valore contenuto nel registro. Il banco di registri di lavoro (cioè quelli individuati dal register pointer) viene visualizzato in modo differente rispetto agli altri banchi di registri.

zilog_z8_debug

VISUALIZZARE E MODIFICARE LA MEMORIA DI PROGRAMMA

Attivando il comando Code memory del menu Icebox è possibile visualizzare e modificare il contenuto della memoria di programma. I byte della memoria sono visualizzati sia in formato esadecimale che come caratteri ASCII.

zilog_z8_status

VISUALIZZARE I REGISTRI DI CONTROLLO PRICIPALI

Abbiamo già visto che con il comando Register è possibile controllare il contenuto dei registri di uso generale, utilizzando il comando Status dello stesso menu è invece possibile visualizzare il contenuto dei seguenti registri: RP (Register pointer), SP (Stack pointer), PC (contatore di programma, rappresenta l’indirizzo della locazione di memoria contenente l’istruzione da eseguire), FLAG (registro dei Flag), IPR W0 (Interrupt priority register, consente di stabilire i livelli di priorità delle interruzioni), IMR (Interrupt mask register), IRQ (Interrupt request register, registro delle richieste di interruzione), PRE0 registro del prescaler del contatore T0, PRE1 registro del prescaler del contatore T1, TMR (Timer mode) modalità di funzionamento dei timer. Utilizzando il comando Counter/Timers del menu File, è possibile visualizzare il contenuto del registri T0 relativo alla gestione del timer T0 e del registro T1 relativo al timer T1. Infine, mediante il comando Ports, è possibile visualizzare il valore dei registri relativi alle porte, ovvero lo stato assunto in quel momento da ogni linea di ingresso/uscita e il valore dei registri di controllo delle porte, ovvero i registri P01M (Port 0 and 1 mode), P2M (Port 2 Mode) e P3M (Port 3 mode).

Il kit è disponibile da Futura Elettronica

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 5 utenti e 37 visitatori collegati.

Ultimi Commenti