Introduzione
In questo post vedremo come programmare microcontrollori PIC in ambiente FreeBSD. In particolare come configurare l'IDE Piklab per aiutarci a scrivere i programmi e flashare il PIC. Non mi soffermerò sulla parte di programmazione, quindi se cercate un buon corso di programmazione per PIC vi consiglio quello di settorezero. Se invece siete alla ricerca di una guida per le distro di Linux vi rimando al blog di Salvatore Salzano punti di (s)vista.Premesse
Prima di incominciare mi preme ricordare che l'uso di PK2CMD su FreeBSD, come potete leggere nel file ReadmeMakefile.txt, è "very experimental"; questo significa che non è stabile e alcune operazioni, come l'aggiornamento del firmware del pickit2 e l'utilizzo di più programmatori contemporaneamente, non sono supportate e/o vanno effettuate su altri OS.Cosa ci serve
Per cominciare a programmare il nostro microcontrollore abbiamo bisogno di:- un microcontrollore (of course), io ho provato con un PIC16F877A
- Pickit2: il programmatore originale Microchip, reperibile facilmente in Rete dai siti specializzati. Il prezzo si aggira intorno ai 30/40 euro
- sdcc : un compilatore C per microcontrollori, che potete trovare nei ports
- pk2cmd: programma per flashare il pic, scaricabile qui.
- Piklab: un IDE per la programmazione dei microcontrollori, anch'esso presente nei ports
Installazione
Procediamo con l'installazione dei programmi necessari. Per quanto riguarda sdcc non ci dovrebbero essere problemi, basta installarlo dai ports, da root lanciamo:# cd /usr/ports/lang/sdcc && make install clean
Anche Piklab è presente nell'albero dei ports, per installarlo digitare:
# cd /usr/ports/devel/piklab && make install clean
Adesso installiamo pk2cmd, prima di tutto spostiamoci nella cartella dove lo abbiamo scaricato ed eseguiamo
tar xvf pk2cmdv1.20LinuxMacSource.tar.gz
Una volta scompattato il file compiliamolo con il comando:
cd pk2cmdv1.20LinuxMacSource/ && gmake freebsd
Se vogliamo installarlo dobbiamo ottenere i diritti di root e digitare
# gmake install
altrimenti possiamo utilizzare i binari dove si trovano. Ricordatevi che non essendo un port non può essere manipolato con gli strumenti messi a disposizione dal sistema operativo.
Configurazione dell'ambiente
Per poter utilizzare pk2cmd anche da utente non amministratore dobbiamo configurare devfs in modo opportuno. Prima di tutto aggiungiamo il nostro utente al gruppo operator# pw groupmod operator -m $USERNAME
dove al posto di $USERNAME mettiamo il nome del nostro utente. Aggiungiamo al file /etc/devfs.rules (bisogna crearlo se non esiste) le seguenti linee
[system=10]
add path 'usb/*' mode 0660 group operator
poi editiamo /etc/rc.conf e aggiungiamo questa linea
devfs_system_roleset = "system"
ora ricarichiamo devfs con la nuova configurazione eseguendo
# /etc/rc.d/devfs restart
Ora passiamo alla configurazione vera e propria di Piklab, così da permetterci di sviluppare, compilare e flashare il dispositivo senza (quasi) l'uso della riga di comando. Inoltre permette di configurare i registri del dispositivo senza scrivere tonnellate di codice a mano.
Qui di seguito vado a riassumere quanto già scritto sulla guida di punti di (s)vista a proposito di Piklab, dopo di che spiegherò come configurare il compilatore e il linker per compilare i sorgenti del progetto.
Avviamo Piklab e spostiamoci su Settings-> Configure Programmer, selezioniamo Custom Programmer e inseriamo i seguenti comandi:
read pk2cmd -PPIC%DEVICE -B/usr/share/pk2/ -GF %O
erase pk2cmd -PPIC%DEVICE -B/usr/share/pk2/ -E
program pk2cmd -PPIC%DEVICE -B/usr/share/pk2/ -F %O -M
verify pk2cmd -PPIC%DEVICE -B/usr/share/pk2/ -F %O -Y
blank check pk2cmd -PPIC%DEVICE -B/usr/share/pk2/ -C
run pk2cmd -PPIC%DEVICE -B/sr/share/pk2/ -T
stop pk2cmd -PPIC%DEVICE -B/usr/share/pk2/ -R
e salviamo premendo OK.
Adesso creiamo un nuovo progetto da Project->New Project riempiamo la form che ci viene proposta come in Fig 1
Fig 1 - configurazione nuovo progetto |
/usr/local/share/sdcc/non-free/include/
come riportato in Fig. 2
Fig. 2 - Aggiunta della nuova cartella di include |
-L/usr/local/share/sdcc/non-free/lib/pic14
se state utilizzando un pic diverso dal PIC16F877A, l'ultima cartella potrebbe cambiare, nel caso aggiungere la cartella esatta.
Fig. 3 - configurazione Linker |
Nessun commento:
Posta un commento