AVR STUDIO 4

avratudio4

AVR Studio®  4 è una passata versione, ma ancora molto diffusa, dell’ ambiente di sviluppo integrato di Atmel dedicato alla stesura e al debug software di applicazioni per microcontrollori della serie Atmel AVR® nei sistemi operativi Windows® 98/XP/ME/2000. L’architettura modulare di AVR Studio®  4 permette di utilizzare la medesima interfaccia grafica sia per la Simulazione che per l’Emulazione, semplificando di molto il processo di sviluppo e, in definitiva, permettendo al progettista di contenere considerevolmente il time-to-market.

INTRODUZIONE

L’interfaccia utente è stata studiata al fine di semplificarne l’utilizzo e per fornire nel contempo una completa panoramica informativa. L’ambiente contiene una sezione per la gestione dei files di progetto,  un Editor per i files sorgenti e un Simulatore a livello di chip. Inoltre, con l’ausilio dei vari tools accessori disponibili, quali le schede di sviluppo STK50X e le interfacce ISP prodotte da Atmel fino alla recente JTAGICE mkII, è possibile effettuare la programmazione dei microcontrollori  e l’emulazione in-circuit via interfaccia JTAG. L’ambiente è comprensivo dell’Assembler AVR proprietario di Atmel e consente anche di integrare il software di terze parti, come il Compilatore C WINAVR, versione open-source GNU specificatamente indicata per Windows.

CARATTERISTICHE PRINCIPALI

Come già accennato, il vantaggio principale di AVR Studio®  4 è quello di essere un unico ambiente integrato  (IDE) dal quale poter  effettuare tutte  le operazioni del caso, come editare i sorgenti, effettuare la compilazione e il debug del software (Figura 1).

Figura 1. Una schermata di AVR Studio 4

Figura 1. Una schermata di AVR Studio 4

Tra le caratteristiche di rilievo, vi sono le seguenti:

  • Debugger simbolico a livello di sorgente
  • Visualizzazione di  aree  di   memoria   di   tipo
  • SRAM,EEPROM,FLASH, Registri interni e segnali di I/O
  • Inserimento di breakpoints in numero illimitato
  • Tracciabilità del software e inserimento di trigger su eventi
  • Help on-line in formato HTML
  • Finestre di visualizzazione e editing con funzioni di drag-and-drop
  • Opzioni estese per il controllo del flusso di programma
  • Possibilità di simulazione con inserimento di stimoli ai pin di ingresso
  • Supporto per l’analisi di files in formato esadecimale o in altri formati
  • Possibilità di integrare vari linguaggi (Assembly, C, Pascal, Basic).

TOOLS E DISPOSITIVI SUPPORTATI

AVR Studio®  4 supporta tutti  i più recenti dispositivi appartenenti alle diverse famiglie di microcontrollori  AVR  (Tyny, Classic e Mega)  oltre  naturalmente agli strumenti accessori e alle piattaforme di debug correlate ad essi. La tabella 1 riassume queste informazioni.

Tabella 1. Dispositivi AVR supportati e relativi tools

Tabella 1. Dispositivi AVR supportati e relativi tools

GUIDA ALL’INSTALLAZIONE

Prendiamo ora in considerazione i files necessari per l’installazione di AVR Studio® 4 e alcuni documenti utili per sviluppare un semplice progetto, iniziando a prendere dimestichezza con l’ambiente. La pagina Web del sito Atmel a cui fare riferimento (vedere figura 2) è situata al seguente indirizzo.

Figura 2. Pagina Web di Atmel contente i files di installazione per AVR Studio

Figura 2. Pagina Web di Atmel contente i files di installazione per AVR Studio

Da qui è possibile scaricare i seguenti files:

  • AVR Studio 4.12 Installazione (dimensioni 45 MB, versione aggiornata all’11/05)
  • AVR Studio 4.12 Service Pack 2 (18 MB, versione aggiornata al 03/06)

Una volta trasferiti questi files, si procederà con l’installazione (gratuita)  sul proprio  PC di AVR Studio. Fatto questo, lo si potrà eseguire selezionando AVR Studio 4 nella sezione AVR  Tools del Menu Start di Windows. Se il target per l’esecuzione è un Emulatore In-Circuit, ci si deve ricordare preventivamente di collegarlo al PC e accenderlo prima di aprire un qualsiasi progetto. Il sito, all’indirizzo Web già menzionato, viene tenuto costantemente aggiornato da Atmel con le versioni di software più recenti. Dalla medesima pagina è possibile effettuare il download di alcuni documenti accessori, estremamente utili per chi progetta, quali:

  • AVR Instruction Set (150 pagine), manuale utente con set di istruzioni per i microcontrollori  AVR
  • Release Notes AVR Studio 4,  contenente gli aggiornamenti della versione attuale
  • Novice’s  Guide  to  AVR Development,  articolo guida per principianti

Requisiti di sistema

Per quanto riguarda il sistema operativo su cui installare l’IDE di Atmel, sono supportati:

  • Windows 2000/XP (o Windows NT 4.0 con Internet Explorer 5.0 or successive versioni).
  • Windows /95/98/Me (con Internet Explorer 5.0 o successivo).

Hardware minimo

Il supporto hardware minimo è senza dubbio alla portata di tutte le tasche e prevede:

  • Processore Intel Pentium 200MHz o equivalente;
  • Schermo con risoluzione 1024x768 (minimo 800x600);
  • Memoria 64MB;
  • Spazio libero su hard disk di almeno 50 MB.

Viene raccomandato, inoltre, di installare sempre le più recenti versioni di Service Pack, anche queste ritrovabili sul sito.

Altri files utili

Per iniziare a lavorare con AVR Studio® è consigliabile procurarsi, con una semplice ricerca sul sito www.atmel.com,  i datasheet di un microcontrollore da utilizzare come riferimento. A titolo di esempio consideriamo il dispositivo AT90S8515, di cui la figura 3 mostra il pinout e il diagramma a blocchi interno. Il file è denominato AT90S8515 data sheet (112 pagine).

micro_diagram

Figure 3:  Schema a blocchi e pinout del dispositivo AT90S8515

INIZIARE A PROGETTARE CON AVR STUDIO 4

FLUSSO DI PROGETTO

AVR Studio® 4 consente di gestire le fasi di progetto tipiche per circuiti a microcontrollore. I passi previsti, nel caso di  flusso aziendale, sono esposti nel seguito:

  • inizialmente, in base alle proprie conoscenze tecniche e alle richieste del mercato, si effettua la definizione del prodotto da realizzare.
  • Il passo successivo è costituito dalla stesura del documento di specifica formale del progetto.
  • A questo punto, il team di progetto, che può essere costituito da una o più persone, viene incaricato del compito di svilupparle il progetto in base alle specifiche assegnate.
  • Il project team procede con la classica sequenza di fasi progettuali: disegno, sviluppo, debug, verifica, pianificazione della produzione, produzione vera e propria, test e spedizione.

AVR Studio 4 è in grado di supportare le fasi di disegno, sviluppo, debug e verifica. Vedremo nel seguito in quale modo.

STRUMENTI A DISPOSIZIONE

AVR Studio 4 si compone di un certo numero di procedure, ognuna delle quali è dedicata a un particolare compito nel lavoro da svolgere e dispone di proprie messaggistiche. Nel prossimo paragrafo verranno trattate le modalità di visualizzazione delle varie procedure nell’ambito dell’ambiente di progetto. Se ci riferiamo all’impostazione del progetto  e alle fasi di assemblaggio o compilazione, la figura di riferimento è la 4.

PROJECT MANAGEMENT

La creazione e manutenzione di codice, anche se di modesta entità, viene sempre strutturata e trattata all’interno di AVR Studio come gestione di un Progetto. Infatti,  già all’ingresso nell’ambiente,  la prima cosa che viene richiesta è il nome del progetto che si desidera aprire o creare ex-novo.

LO STARTUP WIZARD

Lo Startup Wizard si presenta ogni volta che si lancia AVR Studio. Con questa interfaccia si può agevolmente aprire i progetti recenti, impostare la piattaforma di debug e il dispositivo target, oppure creare un nuovo progetto. A questo fine, semplicemente si effettua un doppio-click sul progetto desiderato ed esso automaticamente si apre, riprendendo gli ultimi settaggi. Il Wizard di startup e progetto  si può invocare anche dal menù Project.

VISTA DI PROGETTO (Project View)

La Project View mostra  l’elenco  dei  files che appartengono al progetto, se il codice sorgente è stato creato. Diverso è il caso invece in cui si desidera aprire un file di tipo oggetto a solo scopo di debug. In questo caso, la Project View mette in evidenza il nome del file oggetto che è stato in quel momento caricato, insieme ai files sorgenti a cui esso si riferisce. Le informazioni relative al progetto  (configurazioni, settaggi dell’Assembler o del Compilatore,  files inclusi nella cartella, customizzazioni particolari, ecc..) vengono tutte memorizzate in un file opportuno, il Project File. Esso assicura che, ogni volta che si riapre il progetto, tutte le informazioni e i parametri che erano stati precedentemente inseriti, vengono ripresentati,  e  tutto   è  pronto  per  essere riassemblato o compilato. La cartella contenente i files che fanno capo al progetto è mostrata nell’area “a”  di figura 4.

Figura 4. Aree di display per l’ambiente di progetto

Figura 4. Aree di display per l’ambiente di progetto

L’EDITOR

La sezione dedicata all’Editor (indicata con “b” nella figura 4) è quella in cui si immette  o si modifica il codice sorgente. AVR Studio utilizza un editor specifico, lo Stingray Editor di Bsquare Corporation, indicato in particolare per chi scrive in un linguaggio di programmazione software. Include, infatti, alcune caratteristiche che facilitano la stesura di codice, come l’evidenziare a colori le parole-chiave della sintassi del linguaggio utilizzato (ovviamente i colori sono customizzabili dall’utente). La finestra di editing  viene impiegata anche in fase di debug del codice, potendosi aggiungere sul lato sinistro i riferimenti ai breakpoints e ai tracepoints. L’utilizzo è particolarmente intuitivo.

INFORMAZIONI DI USCITA

Le informazioni  di  uscita sono le varie tipologie  di informazioni  che  possono essere visualizzate nella finestra rappresentata dal frame “c” di figura 4. Le tabs sul frame principale selezionano la “vista” che si desidera avere. Si possono selezionare tra le seguenti:

La visualizzazione “Build”

Questa modalità di visualizzazione riporta  i risultati delle elaborazioni dell’Assemblatore o Compilatore.

La visualizzazione dei messaggi (Messages View)

AVR Studio è costituito da un certo numero di processi sottostanti all’ambiente grafico. Da questo livello vengono invocati grazie alla tecnologia Microsoft DCOM. La maggior parte di questi processi non ha una propria interfaccia grafica, e nemmeno ne avrebbe bisogno; in genere, infatti, il tipico output è semplicemente dato da stringhe di testo, come si è sempre  usato fare nei classici programmi  in  modalità DOS. Questo non è un fattore limitante  perchè, in ogni caso, ci pensa l’ambiente grafico sovrastante a tradurre le messaggistiche dei vari processi in una forma grafica user-friendly. I messaggi possono  essere codificati a colori per maggiore chiarezza. La maggior parte di essi non ha una particolare priorità; come tali, infatti, non sono a colori. Le segnalazioni di attenzione (warnings) sono invece in giallo e meritano di essere considerate, in quanto  possono manifestare potenziali problematiche. I messaggi di  errore sono in  colore rosso. È disponibile una funzione di filtraggio per i messaggi, in modo  da eventualmente disabilitarne una certa parte. Quando si sviluppa software, può essere infatti inutile rivedere ogni volta che si lancia una compilazione certi messagi di relativo scarso interesse, di cui già si conosce il significato, mentre è molto utile mettere in risalto solo alcuni tipi di messaggi.

Modalità “Find in files”

AVR Studio possiede una avanzata funzione “find  in files”, che consiste nel fatto di poter ricercare un particolare pattern  o stringa alfanumerica entro tutti  i files presenti nella cartella di progetto.

Breakpoints

È possibile visualizzare l’elenco dei breakpoints attivi per tutti i moduli presenti. I breakpoints possono essere abilitati, disabilitati o rimossi dalla finestra.

FINESTRE PER IL DEBUG

Nel caso di debug, le aree dello schermo assumono differenti significati rispetto al caso dell’impostazione del progetto  e dell’  assemblaggio o  compilazione. Facciamo ora riferimento alla figura 4a, che riporta un esempio di programma  in linguaggio  C. L’area “a” dello schermo assume il significato di “workspace”, cioè spazio di lavoro. Come tale, questa area può accogliere differenti visualizzazioni, intese come ausilio al progettista nel debug del codice in modo sistematico. Le visualizzazioni sono le seguenti:

Vista di di I/O (I/O View)

La visualizzazione per l’ I/O si divide in:

  • Sezione del “Register File”: tutti i controllori AVR hanno un set di 32 registri di tipo “general purpose” che possono essere utilizzati liberamente. Ogni volta che una simulazione o emulazione si arresta su un break, la visualizzazione viene aggiornata con i contenuti correnti dei registri. Se il valore è cambiato dall’ultimo break, il registro assume una colorazione diversa.
  • Sezione “Processor Core Registers”. Come per la sezione precedente, questa finestra viene aggiornata ogni volta che i registri del microcontrollore vengono ricaricati in corrispondenza di un break. Sono presenti il Program Counter, lo Stack Pointer, ecc..
  • Sezione di “I/O”.  Ogni dispositivo AVR è definito attraverso le periferiche che supporta. Un ATmega128, ad esempio, possiede un insieme di periferiche completamente diverso da un AT90S8515, anche se il core e il set di istruzioni dei due chip è lo stesso. Le periferiche sono controllate per mezzo di registri a 8 o 16 bit che possono essere letti  o scritti. La finestra di visualizzazione per l’ I/O si differenzia a seconda del componente selezionato e mostra tutti  i registri e i bit raggruppati dal punto di vista logico. I bit e i registri possono essere leggibili o modificabili quando l’emulazione è in break mode. Questa modalità di visualizzazione dà il pieno controllo sul dispositivo sottoposto a debug. La principale differerenza rispetto ad altri ambienti di sviluppo integrati, come Microsoft Visual Studio, risiede nel sistema operativo sottostante e non tanto nel microcontrollore in sè. La visualizzazione  stessa si basa su una script XML; per ogni nuovo dispositivo rilasciato da Atmel, viene creata una script ad hoc. Gli aggiornamenti sono resi disponibili attraverso la pagina web di Atmel.

La “Memory View”

Per microcontrollore come gli AVR il codice eseguibile risiede nella Memoria di Programma, le variabili sono allocate principalmente  nella Ram Statica, i Registri di ingresso/uscita vengono mappati nell’area di Memoria di I/O, e la EEPROM è ancora un’altra area di memoria. La “Memory  View”  è quella che può mostrare tutti  i differenti tipi di memoria associati ai dispositivi AVR. Inoltre,  al pari della Watch View e della I/O View, l’area nel display sullo schermo viene automaticamente aggiornata ogni volta che l’esecuzione si interrompe incontrando un break.

“Info View”. La info view è una visualizzazione di tipo informativo, ed è suddivisa nelle seguenti parti:

  • Sezione interrupt vector. Questa  modalità  di visualizzazione elenca tutte le sorgenti di interrupt e gli indirizzi dei rispettivi vettori. I vettori di interrupt per un microcontrollore si riferiscono alle sue periferiche, cosicchè la lista degli  interrupt  può  essere diversa a seconda del dispositivo AVR impiegato.
  • Sezione dei packages disponibili. Elenca i packages in cui il dispositivo selezionato viene prodotto,  con i corrispondenti pinout e le informazioni sul significato dei pin. Avere sottomano questi dati è particolarmente utile quando si sta effettuando il debug, dal punto di vista sia hardware che software.
  • Sezione Registri (Register View). È di complemento alla visualizzazione di I/O; mentre quest’ultima mostra tutti  i registri raggruppati logicamente alla stregua di periferiche, la Register View li presenta ordinati  per indirizzo, a partire al più  alto verso il più basso.

L’area “b” di figura 4 a contiene il sorgente del progetto con l’indicazione dei breakpoints e del puntatore di debug alla istruzione corrente. Infine, nell’area “c”,  sempre di figura 4 a, è presente la finestra di “Watch Window”. Per il debug di linguaggi ad alto livello, come C o C++, si ha bisogno di avere sotto controllo le variabili del programma. Con tools come AVR Studio 4 questo si realizza facilmente, basta cliccare sulla variabile che si desidera visualizzare (nella finestra del file sorgente) e “trascinarla” (operazione di drag-and-drop) nella finestra Watch Window. Nella figura 4 a abbiamo “trascinato”  la variabile “a”.  Con il tasto F11 abbiamo fatto  “girare”  il programma  step-by-step. Ogni volta che l’esecuzione si arresta, la variabile viene aggiornata automaticamente. Trattandosi di un loop di incremento infinito,  ci siamo arrestati fino a far raggiungere alla variabile il valore “37”. Se la variabile selezionata fosse di tipo  strutturato, come ad esempio un array, si presenterebbe il simbolo “[+]” davanti ad essa, a indicare che può essere espansa nelle sue componenti.

LINGUAGGI DI PROGRAMMAZIONE SUPPORTATI

AVR Studio 4 supporta di base l’AVR Assembler, creato da Atmel. Nei mesi a venire, la tendenza è quella di rendere AVR Studio un front-end in grado di integrare sempre più numerosi software di terze parti,  come altri assemblatori o compilatori.  Ad esempio, come già è stato detto in precedenza, recentemente è stata introdotta la possibilità di utilizzare anche il compilatore C AVRWIN. La  versione  non-Windows  è  AVR   GCC Compiler, scaricabile gratuitamente da differenti siti, tra cui www.avrfreaks.com. Per quanto riguarda il file di installazione di AVRWIN C, lo si può scaricare gratuitamente dal sito http://sourceforge.net/projects/winavr/ (vedere figura 5).

Figura 5. Sito per il download di AVRWIN C

Figura 5. Sito per il download di AVRWIN C

UTILIZZO

Per iniziare, quando  si manda  in  esecuzione AVR Studio, per creare un nuovo progetto  occorre nella “dialog  box”  iniziale (figura 6) selezionare “Atmel AVR Assembler” o “AVR GCC” a seconda  se si lavora in linguaggio Assembly o C, poi immettere un nome per la cartella di progetto.

Figura 6. Dialog box al lancio di AVR Studio 4

Figura 6. Dialog box al lancio di AVR Studio 4

Se il progetto  esiste già, questo step viene saltato. Riguardo l’Assembler, per specificare il dispositivo AVR da utilizzare, occorre impiegare la direttiva DEVICE nel codice sorgente. Da un dispositivo all’altro, vi possono essere differenze nel set di istruzioni, nel senso che alcune istruzioni possono non essere supportate. Ogni volta che si crea un nuovo progetto,  viene generato automaticamente un  Project File  e, nella finestra  di  editing, si presenta un file  sorgente “vuoto” con estensione .asm (.c nel caso duale), nel quale si può iniziare a scrivere le prime istruzioni.

AVR ASSEMBLER

Le successive considerazioni che faremo valgono per l’Assembler, che è il linguaggio privilegiato in quanto creato in origine da Atmel per le prime versioni di AVR Studio. Per qualsiasi chiarimento, AVR Studio 4 contiene un Help on-line con tutte le informazioni riguardanti le istruzioni e le direttive utilizzabili. Inoltre vi è una funzione di Help di tipo context sensitive, che si adopera nel seguente modo: si scrive un’istruzione, si posiziona il cursore sul testo e si preme il tasto F1, ottenendo così l’ apertura dell’ Help sulla sintassi dell’istruzione in questione. Se si sta sviluppando codice per un determinato componente, occorre includere il file di specificazione per quel componente, con estensione “.def.inc”. Esiste poi, per ciascun dispositivo, un file con estensione “.inc” il quale ne definisce i registri interni, i bit e altre informazioni utili per semplificare la stesura del codice. Questo include-file setta anche le direttive Assembler per quel dispositivo. I files di  questa categoria si trovano  nella cartella \ProgramFiles\Atmel\AVR Tools\AVRAssembler\Appnotes. Ad esempio, per l’Atmega8 il file da includere ha nome “m8def.inc”. Non occorre specificarne il path completo,  in  quanto  la cartella di  residenza è già quella di default. Per dare inizio alla compilazione, si preme il tasto di funzione F7. Il risultato della compilazione viene reso come “Build View” nella finestra di uscita. Il sistema è tale che un progetto può essere impostato in pochi minuti.

DEBUG DI PROGETTI SCRITTI IN CODICE IMPORTATO DA ALTRI AMBIENTI

Oltre all’AVR GCC Compiler, che solo di recente è stato integrato in AVR Studio, esiste un discreto numero di validi compilatori C per la famiglia di microcontrollori AVR, a cominciare da quelli di IAR e Imagecraft, che si possono acquistare. Con questi compilatori si è costretti ad utilizzare l’ambiente di sviluppo proprietario  della software house. AVR Studio permette comunque il debug anche di files oggetti compilati in altri ambienti. Quello che si fa tipicamente  è  configurare  il  compilatore  utilizzato  in modo da produrre un codice oggetto in modalità debug, nel senso di aggiungere al codice compilato anche i riferimenti al codice sorgente. Così facendo, quando si effettua la compilazione e il link, si crea un file oggetto che può poi essere caricato nell’ambiente AVR Studio 4 e da qui sottoposto a debug.

Formato dei files oggetto

Compilatori diversi utilizzano diversi formati per i files oggetti che producono. In ambiente industriale sono comunemente supportati un certo numero di formati, alcuni proprietari delle compagnie vendor (come UBROF di IAR) e altri liberi e documentati per chiunque (come il formato ELF, utilizzato dal compilatore C AVR GCC).  Dato un certo file oggetto, per risalire alla sua codifica AVR  Studio utilizza un File Parser,  programma analizzatore per files oggetti. Attualmente, i formati supportati da AVR Studio 4 sono:   UBROF  (della    IAR),   Nordic    (dell’AVR Assembler),  COFF (di Imagecraft, Codevision, ELAB, eccetera) e infine  il  formato  esadecimale (Hex) di Intel. In futuro è prevista l’aggiunta di un Parser per i formati ELF e DWARF.

Debug

Per poter utilizzare un file oggetto  creato in un ambiente diverso da AVR Studio, bisogna attivare l’opzione “Open Object File”, nel menù “File”. Se appunto  il file è stato creato in debug mode, AVR Studio è in grado di: aprirlo, rilevare quale formato è stato usato e presentare il codice sorgente nella finestra di editing (non è ovviamente editabile, ma solo visualizzabile). A questo punto,  se si possiede una piattaforma esterna di Emulazione (o se si è selezionato il Simulatore interno denominato AVR Simulator nelle “Platform Options”), si può così procedere: premendo il tasto F5 si dà inizio al debug. Tra le operazioni che si possono effettuare, si possono settare dei breakpoints nella finestra del codice sorgente, si possono “trasportare”   delle  variabili  nella sottostante “Watch View”, si può monitorare il microcontrollore attraverso la I/O View.

USARE I TOOLS AVR

Atmel produce diverse attrezzature, o tools hardware, di ausilio allo sviluppo di un progetto. L’attuale versione AVR Studio 4 supporta i seguenti tools (figure 7 a÷d):

Figura 7a. ICE50

Figura 7a. ICE50

Figura 7b. JTAGICE mkII

Figura 7b. JTAGICE mkII

Figura 7c. Lo starter kit STK50X

Figura 7c. Lo starter kit STK50X

Figura 7d. Interfaccia AVRISP

Figura 7d. Interfaccia AVRISP

ICE50: È un Emulatore di tipo in-circuit. Per utilizzarlo, bisogna rimuovere il controllore AVR dalla scheda target e rimpiazzarlo con l’opportuno  probe adapter corredato  con  l’Emulatore. ICE50 si collega al PC mediante un link seriale (le versioni recenti utilizzano l’interfaccia USB). Quando, da AVR Studio, si seleziona il comando RUN, verso l’Emulatore viene scaricato il codice eseguibile insieme alle informazioni relative ai breakpoints, ai tracepoints, ecc.. Completato il trasferimento, ICE50 inizia a far “girare”  il software fino al   verificarsi di un evento di break. L’Emulatore si comporta esattamente come il chip che sostituisce. Se si raggiunge una condizione di break, l’Emulatore ne informa AVR Studio il quale, a questo punto, richiede e visualizza sullo schermo tutte le informazioni dettagliate sullo stato del chip: i registri interni, il valore dello Stack Pointer, il contenuto della memoria, eccetera. Il dispositivo ICE50 contiene al suo interno una FPGA più una circuiteria hardware aggiuntiva che emula le parti analogiche del dispositivo reale. Questo giustifica il suo costo non trascurabile. Tra le funzioni svolte vi è quella di Trace, che in sostanza significa che ogni istruzione, compresi gli argomenti,  viene conservata in  memoria;  quando l’utente  effettua un break, le istruzioni fino a quel punto vengono visualizzate in modo da “tracciare” il codice che è stato eseguito. Naturalmente, lo scopo di tutto  ciò è di individuare eventuali errori nel flusso di esecuzione e correggere di conseguenza il sorgente. Questo è un tool indispensabile per progetti di medie-grandi dimensioni.

JTAGICE  mkII: Questo dispositivo è la più recente versione Atmel di Emulatore in-circuit. Ha un costo più contenuto e prestazioni migliorative, rispetto ai precedenti modelli. Gestisce i dispositivi più “capienti” della famiglia ATmega (quelli con memoria Flash pari o superiore a 16KByte). Permette l’interfacciamento con il PC via USB e una superiore velocità di comunicazione con il dispositivo target. Supporta sia la tradizionale interfaccia JTAG che la nuova interfaccia DebugWIRE di Atmel.

STK500 / 501: È lo Starter-Kit per chi desidera utilizzare i microcontrollori  AVR. In grado di supportare tutti i dispositivi delle varie famiglie, contiene una serie di indicazioni a LED e un certo numero di dip-switches per impostare livelli logici sugli ingressi. Si può usare come target di test per gli Emulatori ICE50 o JTAGICE.

AVRISP:   È il recente Programmatore In-System per controllori AVR. Permette di trasferire il codice di programmazione sul dispositivo target.

I tools che abbiamo finora descritto, AVR Studio 4, ICE50, JTAGICE, STK500/501 e AVRISP, costituiscono un sistema completo per la creazione di codice, simulazione, emulazione, programmazione e un ambiente di test autosufficiente per i nuovi controllori AVR di Atmel.

GESTIONE DI UN PROGETTO IN ASSEMBLER

DESCRIZIONE

Quando un nuovo progetto viene creato o un vecchio progetto viene caricato, la Project View nella regione in alto a sinistra del display mostra l’elenco dei files che lo compongono (figura 8).

Figura 8. Struttura dell’albero di progetto Assembler e finestra di editing

Figura 8. Struttura dell’albero di progetto Assembler e finestra di editing

Source files

Tutti i files sorgenti sono compresi in questa sezione. Per aprire in edit un file sorgente è sufficiente un doppio click sull’icona che lo identifica.

Included Files

Sono i files da includere nei sorgenti. Anche questi si possono editare con il medesimo sistema.

Labels

In questa cartella sono elencate le etichette del programma assembler. Un doppio click su queste istanze mostra la loro posizione nell’ambito del sorgente per mezzo di un marker blu.

Output

Questa cartella contiene i files di uscita del progetto (.hex e .map).

Object file

Contiene il file oggetto prodotto  (.obj).

BUILD MENU

Il  menu  “Build”   comprende  due  comandi  per l’Assembler:

  • Assemble (F7), per assemblare il file sorgente
  • Assemble and run (CTRL+F7) Effeffua la medesima operazione precedente e, se questa è andata a buon  fine, dà inizio al debug automaticamente.

OPZIONI PER L’ASSEMBLER

Per utilizzare l’Assembler occorre aprire la finestra delle opzioni nel menù
Project ->Assembler Options. Questo item è disponibile solo quando viene aperto un progetto in questo linguaggio. La figura 9 riporta la form di dialogo per l’immissione dei settaggi. Descrizione dei vari settaggi:

Hex Output format

Permette di selezionare il formato di uscita esadecimale tra uno dei seguenti:

  1. Intel
  2. Generico
  3. Motorola (S-record)

Create Map file

Questa opzione è sempre abilitata. Serve per creare un file di Mapping per l’ uscita, il quale si aggiunge ai files presenti nella Project View quando viene eseguito il comando Build.

Create List file

Consente di generare il file di Listing in uscita, sempre a seguito del comando Build. Per default, questa opzione è disabilitata.

Wrap relative jumps

A questo proposito,  occorre fare una premessa: le istruzioni RJMP e RCALL permettono un “salto” relativo  con  offset  a  12-bit, corrispondente a +/-2 KWords. Per dispositivi con 4 KWords (8K Bytes) o meno di memoria di programma FLASH, l’opzione Wrap provoca il fatto che l’offset, calcolato dall’Assembler, va oltre il range massimo indirizzabile della memoria; questo permette di indirizzare, con tali istruzioni, l’intera Program Memory. Per dispositivi con più di 4 KWords di memoria di programma, l’utilizzo di questa opzione può provocare risultati impredicibili. Dev’essere quindi disabilitata.

AVR Assembler

Questa opzione consente di selezionare la versione Assembler V2 (già attivata per default) oppure la precedente V1. Se, con la nuova versione di Assembler, si avessero problemi  di  compatibilità,  si può  eccezionalmente utilizzare la precedente versione, nel qual caso le seguenti  opzioni  (Additional  Parameters e Unsupported Instructions) non sono disponibili.

Unsupported Instructions

Questa opzione è settata per default per dare un messaggio di errore nel caso in cui l’Assembler trovi istruzioni non supportate per il dispositivo target selezionato.

Additional Include Path

Opzione da attivare per aggiungere un percorso di ricerca aggiuntivo per i files da includere. Per default, il percorso è \Atmel\AVR Tools\AvrAssembler\Appnotes. La versione di Assembler V2 prevede invece il percorso \Atmel\AVR Tools\AvrAssembler2\Appnotes.

Additional Parameters

È l’opzione per settare i parametri addizionali, valida solo per la versione V2. Per una descrizione particolareggiata di questi parametri, conviene fare riferimento all’Help on line.

DESCRIZIONE DEI TASTI

OK

La form di dialogo viene chiusa e i settaggi divengono effettivi. I settaggi del progetto  vengono salvati nel Project File quando il progetto viene chiuso o salvato manualmente.

Cancel

La form viene chiusa e i settaggi inseriti non hanno effetto.

Set Default

Trasforma i settaggi correnti come valori di defaults d’ora in poi sempre validi quando si crea un nuovo progetto.

Reset settings

Riscrive i  settaggi  correnti  riprendendo  quelli  di default originali.

Advanced

Apre una form di dialogo contenente i settaggi di pre- e post- processing per l’Assembler.

Help

Apre la pagina di Help on-line.

FILES OGGETTO

I files oggetto  possono essere caricati utilizzando il comando di menù Open File. Se il progetto viene spostato rispetto alla cartella originale in cui era stato creato, viene richiesto di selezionare la cartella dei files sorgenti originali. A questo punto,  i sorgenti vengono ri-mappati  e salvati nel nuovo Project File, pronti per la prossima volta in cui si riaprirà il progetto.

One Response

  1. Maurizio Maurizio 12 marzo 2016

Leave a Reply

Raspberry Pi 3 GRATIS! (Win10 compatibile)

Fai un abbonamento Platinum (EOS-Book + Firmware), ricevi in OMAGGIO la RASPBERRY 3, inviaci il tuo progetto e OTTIENI IL RIMBORSO