mar 14

Crear un binari de gcc capaç de compilar codi per als PIC de la família 16

Tag: Electròncia, Gentoo, Programació, Robòtica, c/c++, linuxmad93 @ 12:06 am

Aquests dies en Cesc m'ha obligat a treballar, bé, a començar, a posar-me les piles en el tema de la robòtica. Primer vam compilar un programa en c i el vàrem compilar amb el sdcc. Per desgràcia primer vaig fer el codi en cpp i llavors al veure que no ho suportava el vaig pasar a c.

Tot i així no l'he pogut provar ja que la PIC de proves semblava estar tarada.

El cas és que demanant informació a ARDE sobre el tema dels compiladors existents, sobretot un capaç de suportar codi cpp, em van recomanar fer una ullada a Port de GCC a PIC16 i això vaig fer.Aquí l'autor ha escrit el codi necessari per a que puguem compilar els nostres programes en c per a PICs de la família 16 amb gcc. A la espera de provar algun experiment amb cpp, direm que només suporta c, doncs l'autor m'ha dit que manquen llibreries encara per a que això sigui possible.

Aquí explico el procés que he seguit per a compilar el gcc sense trepitjar-ne la versió que ja en tenia.

Primerament ens descarregarem i instalarem el gputils disponible a la nostra distribució. En gentoo:

emerge gputils

Un cop instal·lat gputils crearem una nova carpeta (suposaré que la carpeta està a Documents). A dintre hi descarregarem la versió de gcc 4.0.2 i la 1.0.0 de csl-pic-gcc i els descomprimirem:

mkdir gccpic
cd gccpic
wget  ftp://ftp.gnu.org/gnu/gcc/gcc-4.0.2/gcc-4.0.2.tar.bz2
wget  https://forja.rediris.es/frs/download.php/324/csl-pic-gcc-16f877-1.0.0.tar.gz
tar xfvj gcc-4.0.2.tar.bz2
tar xfvz csl-pic-gcc-16f877-1.0.0.tar.gz

Ara haurem de configurar el fitxer pic.h per a indicar-li correctament l'ubicació de les eines de gputils (si compilem el paquet 'oficial' en comptes del de la nostra distribució, aquest pas no fa falta).

vim gcc-4.0.2/gcc/config/pic/pic.h

On canviarem les línies

#define DEFAULT_ASSEMBLER "/usr/local/bin/gpasm"
#define DEFAULT_LINKER "/usr/local/bin/gplink"

per

#define DEFAULT_ASSEMBLER "/usr/bin/gpasm"
#define DEFAULT_LINKER "/usr/bin/gplink"

Ara crearem la carpeta on anirà la nostra versió de gcc:

mkdir pic-gcc
cd pic-gcc

I executarem el configure i en compilarem el codi:

../gcc-4.0.2/configure -target=pic -enable-languages=c,c++
make

Ja tenim els binaris creats a la carpeta gcc, però ara volem que sigui més fàcil emprar-los, per això farem un parell d'enllaços simbòlics, com a root s'ha de fer (poso el meu directori de home com a exemple, s'ha de canviar a la ruta correcte al vostre sistema):

su
(introduim la clau)
cd /usr/bin
ln -s  /home/mad93/Documents/gccpic/pic-gcc/gcc/g++ picg++
ln -s /home/mad93/Documents/gccpic/pic-gcc/gcc/xgcc picgcc

I ja podrem compilar els nostres programes amb picgcc i picg++. Vull recordar que cpp encara no es pot emprar per certa mancança de llibreries, però ho deixo aquí així esperant que en un futur pròxim ja sigui possible.

Comparteix i gaudeix:
  • La Tafanera
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks

Leave a Reply