Compileren onder Linux met de Microchip C compiler

PIC code gecompileerd krijgen onder Linux kon vroeger nogal omslachtig zijn, maar sinds de release van MPLAB-X maakt Microchip nu ook een volledige versie van hun C compiler voor Linux beschikbaar. In deze blog post zal ik tonen hoe je deze installeert, zodat je nu eenvoudig Dwengo programma's kan compileren op de Linux command line. (Mocht je op zoek zijn naar een grafische interface voor Linux, kijk dan eens naar onze MPLAB-X post).

Begin met de Microchip C compiler te downloaden. Je kan deze vinden op de MPLAB X download pagina External link: selecteer het "Linux (32/64 bit)" platform, markeer het vinkje naast "MPLAB C18 Lite Compiler for PIC18 MCUs" en klik "Download Now". Als je je al in een terminal-venster bevind, kan je ook het volgende commando proberen:

wget http://www.microchip.com/mplabc18-linux-installer

Nu zou je een bestand genaamd mplabc18-v3.40-linux-full-installer.run moeten hebben. Vooraleerst dien je dit uitvoerbaar te maken:

chmod +x mplabc18-v3.40-linux-full-installer.run

Deze compiler is een 32-bit executable, als je een 64-bit Linux systeem hebt zal je de 32-bit libraries nodig hebben. Op Debian/Ubuntu kan je deze installeren door deze opdracht uit te voeren:

sudo apt-get install ia32-libs

Nu kan je de installatie starten (als root):

sudo ./mplabc18-v3.40-linux-full-installer.run

Als je de standaard instellingen accepteert, zullen de C compiler en alle headers en bibliotheekbestanden nu geinstalleerd staan in /opt/microchip/mplabc18/v3.40

De compiler zou nu moeten werken, maar eerst maken we het onszelf wat gemakkelijker. Maak een bestand aan met als naam /etc/profile.d/mcc.sh en deze inhoud:

export MCC_HOME=/opt/microchip/mplabc18/v3.40
export MCC_BIN=${MCC_HOME}/bin
export MCC_INCLUDE=${MCC_HOME}/h
export MCC_LIB=${MCC_HOME}/lib
 
export PATH=$PATH:${MCC_BIN}

De volgende keer dat je inlogt, zullen een aantal omgevingsvariabelen gedefinieerd zijn die het makkelijk maken om de C compiler te vinden. Het Makefile bestand voor de Dwengo bibliotheek External link bijvoorbeeld gebruikt deze MCC_* variabelen om te weten waar de compiler geinstalleerd staat. De laatste versie van de Dwengo bibliotheek downloaden en compileren is nu heel eenvoudig:

git clone https://github.com/dwengovzw/Dwengo-library.git External link
cd Dwengo-library/lib/
make

Voor je eigen MCC project kan je een gelijkaardige Makefile maken, die eveneens de MCC_* omgevingsvariabelen gebruiken om de MCC compiler, headers en bibliotheken te vinden:

  1. all: $(TARGET)
  2.  
  3. SOURCES=$(wildcard *.c)
  4. OBJECTS=$(patsubst %.c,%.o,$(SOURCES))
  5. TARGET=project.hex
  6.  
  7. DWENGOLIB=~/Dwengo-library/lib
  8.  
  9. MCC_C=$(MCC_BIN)/mcc18
  10. MCC_L=$(MCC_BIN)/mplink
  11.  
  12. CFLAGS=-Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa- -p=18F4550 -i$(DWENGOLIB)
  13. LFLAGS=-q -u_CRUNTIME -p18F4550 -l$(MCC_LIB) -w
  14.  
  15. %.o: %.c
  16. $(MCC_C) $(CFLAGS) $< -fo=$@
  17.  
  18. $(TARGET): $(OBJECTS)
  19. $(MCC_L) $(LFLAGS) $< $(DWENGOLIB)/dwengo.lib -o$@

De volgende stap is het programmeren van je Dwengo bord op de Linux command line. Ook voor de PICkit2 programmer heeft Microchip een command-line programma, dat we beschrijven op deze pagina.