Home
Accesso / Registrazione
 di 

Hack di AVR con Ubuntu 8.10

Hack di AVR con Ubuntu 8.10

Come scrivere un programma, compilare un programma e utilizzare AVR in UBUNTU. La procedura che vi illustreremo è stata verificata sulla distro UBUNTU Desktop Edition 8.10 e dovrebbe quindi essere compatibile anche con altre distribuzioni.
Gli appassionati di elettronica di tutto il mondo si stanno interessando rapidamente ai tool free utilizzabili su Linux e li stanno pian piano utilizzando per il loro lavoro quotidiano. Ma la maggior parte dei neofiti di Linux trova che sia difficile utilizzare solo ed esclusivamente una piattaforma Linux poiché mancano molti importanti tools che invece sono disponibili sotto Windows.
In questo articolo descriviamo un'idea, la possibilità di iniziare lo sviluppo AVR su una qualsiasi distribuzione Linux sul tuo computer. Al giorno d'oggi UBUNTU è una delle distribuzioni più note adatte a chi si avvicina al mondo Linux, perchè è veramente facile da usare e molti dei tool necessari per il lavoro quotidiano sono distribuiti assieme alla distro di questo sistema operativo.
Vediamo quindi come scrivere un programma, compilare un programma e utilizzare AVR in UBUNTU. La procedura che vi illustrerò è stata verificata sulla distro UBUNTU Desktop Edition 8.10 e dovrebbe quindi essere compatibile anche con altre distribuzioni, anche se non posso garantirvelo perchè non ho testato la procedura direttamente.
Per iniziare lo sviluppo AVR sulla vostra distribuzione Linux sono necessari i seguenti 4 packages:

    1.avr-gcc
    2.avr-binutils
    3.avr-libc, la libreria C AVR standard
    4.avr-dude

Vediamo in che cosa consistono i suddetti 4 packages.
Avr-gcc è il compilatore C per AVR
Avr-binutils il package binutils fornisce tutte le utilities di basso livello che sono necessarie per il building e la successiva manipolazione dei file oggetto. Una volta installato il package, il vostro ambiente avrà a disposizione un assembler AVR (avr-as), un linker (avr-ld), una libreria (avr-ar e avr-ranlib). Inoltre, saranno disponibili tools per l'estrazione dati dai file oggetto (avr-objcopy), disassemblare le informazioni nei file oggetto (avr-objdump).
Avr-libc. E' la funzione standard utilizzata per programmare in C su AVR. Consiste in file header per utilizzare le caratteristiche di AVR come ad esempio Interrupts, EEPROM, I2C, SPI, UART e così via. Maggiori info sono disponibili su http://www.nongnu.org/avr-libc/
avr-dude: è un'utility open source per utilizzare (download/upload) il contenuto di memorie ROM e EEPROM dei microcontrollori AVR, sfruttando la tecnica di programmazione ISP. Per maggiori informazioni consultare http://www.nongnu.org/avrdude/
Queste sopra citate sono tutti i tools necessari per lo sviluppo AVR su Linux, ma è inoltre necessario avere un semplice editor di testo in cui digitare il codice dei nostri programmi. Io utilizzo abitualmente gEdit come editor di testo. Ecco qui di seguito come utilizzare gEdit.
Installare l'editor di testo gEdit

installare gEdit

A questo punto il comando che vedete nella figura farà sì che il sistema inserisca la password di root. Una volta inserita la password il sistema inizia a costruire le dipendenze per il package.

Una volta terminata l'installazione, gEdit è pronto per l'uso. Per lanciare gEdit è sufficiente digitare gedit dalla linea di comando.
Ed ora, per finire, esiste anche un tool che può essere attivato con gEdit in modo che sia possibile direttamente all'interno dell'editor lanciare dei comandi e dei programmi. Si tratta di un terminale embedded che deve essere installato con il comando qui sotto

terminale embedded

Ora, per attivare il terminale comando su gEdit si deve:
1.lanciare gEdit digitando gedit a linea di comando
2.nel menu di gEdit andare su Edit->>Preferences. Selezionare il tab Plugins e selezionare Embedded Terminal come nella seguente figura.

attivare il terminale comando su gedit

Ora premere il pulsante “Close” e il terminale linea di comando è automaticamente disponibile all'interno di gEdit, in questo modo si può editare, compilare e lanciare il proprio codice da una sola finestra sullo schermo.

lanciare codice da una finestra

Passiamo ora ad installare le utility specifiche AVR

Installare il compilatore AVR-GCC

    1. Lanciare il comando così come mostrato nella figura successiva:
    lanciare il comando AVR-GCC

    2.Digitare la password di sudo
    3.Ora Avr-gcc è installato sulla tua distribuzione di Ubuntu

Installare AVR-libc
1.Lanciare il seguente comando così come mostrato nello screenshot seguente:

installare avr-libc

Installare AVR dude
Ed ecco che abbiamo tutti i tool necessari installati. Vediamo ora come compilare, debuggare e lanciare il codice sorgente.

installare AVR dude

Ancora pochi passi.
1.Scrivi il tuo codice all'interno dell'editor
2.Dopo aver scritto il tuo codice utilizzare il terminale embedded nell'editor di testo e cambia il path con la directory in cui i file sorgenti e il file MAKE si trovano. Nel mio caso /home/deveshsamaiaya/Documents/LCD/

cambiare path con la directory in cui i file si trovano

3.Nel terminale embedded all'editor di testo digitare “make clean”. Con questo comando eliminerete tutti i progetti precedentemente compilati, inclusi i file oggetto.

eliminare i progetti compilati precedentemente

4.E' ora tempo di compilare il tuo codice e trovare eventuali bugs. Lancia quindi il comando “make all” nel terminale. Questo comando troverà qualsiasi errore sintattico/formale nel sorgente e nel caso in cui non vi siano errori crea un file iHex e gli altri file necessari per l'interfaccia.

compilare il codice e trovare dei bugs

5.Supponiamo quindi che il sorgente venga compilato con successo senza errori. Ora dobbiamo trasferire il file iHex nell'AVR. Ecco che diventa necessario AVRDude, che si trova già installato nel computer. Per prima cosa dobbiamo specificare il tipo di hardware che utilizzeremo per trasferire il codice. Io ho usato una porta seriale quindi ho scritto un programma come “ponyser”, analogamente voi potreste utilizzare nomi diversi come ad esempio USBasp etc.
6.Infine, con il comando “make program” trasferiremo i dati sulla memoria flash

make program

7.Se il trasferimento avviene con successo, il vostro AVR è pronto per eseguire quanto indicato nel programma.
Qui di seguito troverete alcune impostazioni utili per il comando MAKE (ad esempio programmer e porta), ad esempio ho usato come programmer “ponyser” e come porta /dev/ttyS0 = porta com1.

impostazioni utili per il comando make

 

 

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
ritratto di Anonimo

Make

Puoi aggiungere i dettagli su come creare il file Makefile?

ritratto di Anonimo

Come creare il file Makefile

Un buon articolo su come creare il file Makefile

Ionela

ritratto di Emanuele

Grazie anonimo per la

Grazie anonimo per la segnalazione.
Volevo indicare inoltre l'articolo originale scritto sul nostro blog inglese.
http://dev.emcelettronica.com/makefile

Questo è un ottimo articolo sul Makefile

ritratto di Anonimo

Un debugger?

Il problema non è scrivere e compilare codice per avr in linux.. il problema è avere un buon debugger..
Per farlo consiglio eclipse che si interfaccia bene con gdb. Peccato solo che non sia così semplice impostare per bene il tutto..

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 33 utenti e 100 visitatori collegati.

Ultimi Commenti