Programmazione e debug con Keil µVision3

µVision3 è un ambiente di sviluppo offerto da Keil Software. Rappresenta la piattaforma per lo sviluppo di firmware per un elevato numero di microcontrollori, tra cui ARM e 8051-based.

µVision3, il famoso ambiente di sviluppo di Keil Software, integra un Project Manager, un editor di testi, un debug ed un Flash Programmer in un unico e potente prodotto. Tra i chip che possono essere programmati si ricordano Atmel, Analog Device, Cypress  Semiconductor, Dallas Semiconductor ed STMicroelectronics.

Figura 1. Il logo del software mVision3

Figura 1. Il logo del software mVision3

Nell’articolo si esamineranno i passi fondamentali per realizzare le prime prove di scrittura  e debug del codice. La Figura 2 riporta una tipica schermata di Keil µVision3, in cui sono evidenziati i vari tool di supporto alla programmazione ed al debug.

Figura 2. mVision3 è l’ambiente integrato sviluppato da Keil che permette di programmare ed effettuare il debug di oltre 700 dispositivi compresi quelli basati su ARM-powered, XC16x, C16x, ST10, 251 e 8051

Figura 2. µVision3 è l’ambiente integrato sviluppato da Keil che permette di programmare ed effettuare il debug di oltre 700 dispositivi compresi quelli basati su ARM-powered, XC16x, C16x, ST10, 251 e 8051

In particolare, si forniranno le necessarie informazioni per le caratteristiche principali, come:

  • Project Management, impostazioni del dispositivo e tool di configurazione.
  • Editor  facilities  per  la creazione, modifica  e corretta programmazione
  • Simulazione delle periferiche e della CPU.
  • Debug e programmazione del micro.

PROJECT MANAGEMENT

Facendo click su ProjectxNew Project il software permette di scegliere quale tipo di microcontrollore utilizzare per il proprio progetto. La Figura 3 riporta tale schermata di selezione.

Figura 5. La schermata mostrata consente la selezione di oltre 700 dispositivi programmabili

Figura 3. La schermata mostrata consente la selezione di oltre 700 dispositivi programmabili

Insieme al software, Keil fornisce anche un serie di esempi che posso essere un buon punto di partenza per lo sviluppo di programmi più complessi. Nel seguito si farà riferimento all’esempio Measure, presente nella cartella Example. Per aprire  il  progetto  fare  click  su  projectxOpen Project.  Nella  sezione  indicata  con  nome  di Project Workspace sarà presente quanto riportato nella Figura 4.

Figura 6. La sezione Project Workspace riassume tutte le informazioni relative al progetto. Facendo click con il tasto destro del mouse è possibile accedere al menu contestuale

Figura 4. La sezione Project Workspace riassume tutte le informazioni relative al progetto. Facendo click con il tasto destro del mouse è possibile accedere al menu contestuale

Facendo click con il testo destro del mouse si aprirà il menu contestuale; in tal modo è possibile accedere ad opzioni quali la compilazione del progetto o la sua gestione. Inoltre, il tab Books nel Project Workspace elenca tutti i manuali on-line per l’ambiente ed il microcontrollore selezionato.

CONFIGURAZIONE E COMPILAZIONE

Sezionando ProjectxOptions for Target è possibile accedere alle impostazioni di configurazione del microcontrollore scelto per il progetto. mVision3 permette di selezionare le opzioni per il target, il gruppo e il file sorgente (Figura 5).

Figura 7. La finestra Options for Target consente di impostare il tipo di micro controller e tutte le relative impostazioni

Figura 5. La finestra Options for Target consente di impostare il tipo di micro controller e tutte le relative impostazioni

In particolare, le possibili opzioni selezionabili tramite i tab mostrati in Figura 5 sono:

  • Device. Consente di visualizzare e/o cambiare il tipo di CPU utilizzata.
  • Target. Contiene le opzioni di configurazione della CPU e della sua memoria.
  • Generalmente queste sono le uniche opzioni da selezionare per avviare un nuovo progetto.
  • Output e Listing. Serve per la configurazione dei file oggetto e di listing.
  • Compiler/Assembler/Linker. Visualizza e modifica opzioni relative a tali strumenti.
  • Debug.  Configura  il  simulatore  e il debug integrati in mVision3.

Per la compilazione del codice è possibile utilizzare i comandi riportati  nella Build Toolbar, mostrata in Figura 6. Facendo click su Build Target, vengono generate automaticamente tutte le dipendenze tra i file del progetto.

Figura 8. La Build Toolbar contiente tutti i comandi per la generazione e download del file oggetto

Figura 6. La Build Toolbar contiente tutti i comandi per la generazione e download del file oggetto

Nel caso in cui si utilizzino i programmatori EPM900 LPC o il ULINK USB JTAG-Adapter è possibile anche disporre nella Build Toolbar anche della funzionalità Flash Download. In questo modo µVision3 diventa uno strumento davvero completo, che assiste il progettista dalla creazione fino al debug del codice sul micro, passando attraverso la fase intermedia di simulazione.

DEBUG DEL  CODICE

Uno dei punti di forza di questo IDE è quello di fornire un singolo ambiente per la programmazione, simulazione e test del target. Molte delle funzioni di debug e di editor possono essere facilmente raggiunte tramite la Debug Toolbar (Figura 7).

Figura 9. La Debug Toolbar consente di raggiungere utili funzioni per il debug del codice

Figura 7. La Debug Toolbar consente di raggiungere utili funzioni per il debug del codice

Per agevolare il programmatore in fase di debug, mVision3 segna ogni linea di codice con un colonna attributi, fornendo una rapida visione degli attuali breakpoint e dello stato di esecuzione del programma (Figura 8).

Figura 10. La colonna Attributi consente di visualizzare in modo chiaro ed efficiente lo stato attuale dell’esecuzione e i breakpoint impostati

Figura 8. La colonna Attributi consente di visualizzare in modo chiaro ed efficiente lo stato attuale dell’esecuzione e i breakpoint impostati

In aggiunta ai breakpoint semplici, µVision3 ne supporta anche altri definiti Complex. Si tratta, in sostanza, di interruzione del flusso del programma in corrispondenza di espressioni logiche o condizionali. La finestra Memory Window visualizza varie aree di memoria. È possibile selezionare il formato di uscita o modificarne il valore mediate menu contestuale. La finestra Watch Window mostra, invece, il valore di una variabile. Anche in questo caso è possibile modificarne il valore (Figura 9).

Figura 11. La finestra Watch e Memory mostrano il valore di variabili e di aree di memoria. Tramite il menu contestuale è anche possibile modificarne il valore

Figura 9. La finestra Watch e Memory mostrano il valore di variabili e di aree di memoria. Tramite il menu contestuale è anche possibile modificarne il valore

SIMULAZIONE DI CPU E PERIFERICHE

L’ambiente di sviluppo Keil dispone di potenti capacità di simulazione che assicurano uno sviluppo software affidabile e rapido. La possibilità di testare il microcontrollore prima ancora di disporre fisicamente del chip è sicuramente un valido aiuto. Per aprire le finestre riportate in Figura 10, selezionare Peripherals e spuntare il tool che si desidera visualizzare. Molto utile per i test di comunicazione del micro con componenti esterni, risulta la possibilità di simulare le interfacce di I/O come CAN, I2C e UART.

Figura 12. Durante la simulazione del codice è possibile aprire finestre relative allo stato di ciascuna periferica simulata

Figura 10. Durante la simulazione del codice è possibile aprire finestre relative allo stato di ciascuna periferica simulata

Strumenti avanzati di simulazione

L’analizzatore  di  segnali  rappresenta una comoda interfaccia per evidenziare l’andamento  dei segnali digitali ed analogici  in  ingresso  ed  in  uscita  al micro. In Figura 11 si riporta una tipica schermata. L’ausilio dei cursori (proprio come in un normale oscilloscopio) consente di effettuare misure di temporali tra due differenti punti. L’analizzatore di stati dispone di tre diversi formati di visualizzazione (come riportato in Figura 11):

  • Bit. Mostra l’uscita come livelli logici (“0” o “1”).
  • State. Mostra le variazioni del valore.
  • Analog. Mostra un segnale analogico.
Figura 13. Uno strumento di simulazione avanzato è l’analizzatore di segnali. Con l’ausilio di questo strumento si possono monitorare (simulandoli) i segnali logici in ingresso ed in uscita al micro

Figura 11. Uno strumento di simulazione avanzato è l’analizzatore di segnali. Con l’ausilio di questo strumento si possono monitorare (simulandoli) i segnali logici in ingresso ed in uscita al micro

Tale  analizzatore consente anche di simulare  un  segnale  (sia  analogico che digitale) in ingresso al micro, definendolo   tramite   un  linguaggio   di script (di tipo C). Questo consente di evitare l’uso di costosi strumenti per la generazione del segnale. Il Listato 1 riporta un esempio per definire un segnale analogico. Le righe da 1 a 3 definisco una generica funzione sinusoidale, mentre la riga 4 crea effettivamente il segnale, definito come la sovrapposizione di due sinusoidi a frequenza differente.

1.FUNC float sine_wave (float f) {
2.return __sin (f * (STATES/CLOCK) * 2 * PI);
3.}
4.AN0 = sine_wave (2200) + sine_wave (4500);
Listato 1

PROGRAMMAZIONE DEL  MICRO

Il passo finale, quando il codice risulta perfettamente funzionante, è quello di effettuarne il download sul micro. La scelta del dispositivo di programmazione è fatta tramite il tab Debug nella finestra Options for Target (riportata in Figura 3). Esistono differenti tool forniti da terze parti. Inoltre, Keil ha previsto un proprio   programmatore,   ULINK  USB-JTAG Adapter, che collega il PC su cui è installato il software con i pin JTAG dell’interfaccia embedded. La Figura 12 mostra  un’immagine  del tool appena descritto. Attualmente, ULINK supporta i  chip  ST  mPSD  basati  su 8051, Infineon xC16x e alcuni modelli di ARM.

Figura 14. ULINK connette il PC all’interfaccia JTAG del microcontrollore e permette la programmazione della Flash ed il relativo debug

Figura 12. ULINK connette il PC all’interfaccia JTAG del microcontrollore e permette la programmazione della Flash ed il relativo debug

 

 

Scarica subito una copia gratis

Una risposta

  1. Riccardo Ventrella 3 Novembre 2017

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend