2,043 bytes added,
13:12, 29 October 2011 This page here is for those who'd like to use Microchip PIC µCs. As usual, linux support is bad, and there are quite a few quirks.
== IDE ==
=== MPlabX ===
Microchip recently (~2010-10) released a linux version of their new IDE. It can be found at [A]
There seems to be problems with some versions of ICD2 not being supported by MPlabX, so I will not go further in the details.
=== Piklab ===
[http://piklab.sf.net Piklab] is an open-source IDE for PIC µCs. It works fairly well, although you MUST create a new project before trying to configure the toolchains (else Piklab will crash).
Debian-likes have a packages called '''piklab'''
== Toolchains ==
These basically include compiler, linker, and so on. Which toolchain you chose will basically depend of the µC you chose.
=== dsPIC ===
Use MPlab's C30 compiler. It can also be found at [A].
==== Piklab ====
Provided you installed the toolchain in /opt, you must configure as follow:
Executable directory: /opt/microchip/mplabc30/v3.30c/bin/bin/
Header directory: /opt/microchip/mplabc30/v3.30c/support/dsPIC33F/h/
Linker script directory: /opt/microchip/mplabc30/v3.30c/support/dsPIC33F/gld/
Library directory: /opt/microchip/mplabc30/v3.30c/lib/
Be careful, as device-dependant includes have mixed-case filenames. So:
#include <p33fj128mc804.h>
must be replaced with
#include <p33FJ128MC804.h>
If (when) you get an error about missing __reset definition, some additional command line arguments must be specified [http://www.microchip.com/forums/m238536.aspx]. Since I was not able to configure piklab accordingly, I created a bash script to circumvent the problem:
#!/bin/bash
exec /opt/microchip/mplabc30/v3.30c/bin/bin/pic30-coff-ld.bin --start-group -lpic30 -lc -lm --end-group $@
of course, you need to
mv pic30-coff-ld{,.bin}
you might want to do this with pic30-elf-ld as well, and make the scripts executables. With this, I was able to compile a very simple program.
== External links ==
* [A] http://ww1.microchip.com/downloads/mplab/X_Beta/installer.html