Changes

PIC

2,043 bytes added, 13:12, 29 October 2011
how to use Microchip PIC UCs
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
77
edits