Microchip pro PIC32 používá gcc. Pro windows je možné stáhnout
zdarma
MPLAB IDE v8.50, který kompilátor obsahuje.
Pro Linux je to složitější. Vzhledem k tomu, že
GCC je free software pod GNU licencí,
musí microchip dávat k dispozici i zdrojové kódy. Není snadné je
na stránkách microchipu najít, ale jsou tam.
Tady je odkaz.
Zkompilování vlastního překladače není až takový problém, problém je s kompilací
knihoven. Pro jejich kompilaci jsou potřeba hlavičkové soubory k procesorům
PIC32, které ovšem součástí zdrojových kódů nejsou. Je možné je získat
z výše zmíněné verze překladače pro Windows. Ještě jednodušší je vzít
nejen hlavičkové soubory, ale i zkompilované knihovny.
Phillip Burgess vytvořil skript který celou kompilaci a instalaci provede
automaticky. Je k dispozici
tady.
Jeho skript je pro verzi 1.05, v současné době je aktuální verze 1.11.
aby skript fungoval s touto verzí je potřeba v souboru build.sh
změnit řádku:
srcdir=microchip-release-1.05-20090302
na
srcdir=microchip-release-1.11-20100413-RC2
Verze 1.11 podporuje proti 1.05 více procesorů, ale má omezené optimalizace,
funguje jen -O0 a -O1.
Nevím jak to je s licencemi, ale ve zdrojáku gcc jsem našel část která
zakáže optimalizace a vypíše warnning "Compiler option ignored due to lite-mode
limitations". Když jsem v souboru gcc/config/mips/mips.c na řádku 6787 změnil
if (pic32_license_valid != 1) na if (0), optimalizace začaly
fungovat.
Stáhneme z výše uvedené adresy zdrojové kódy gcc a rozbalíme je v adresáři
c32-build (vytvořil se nám rozbalením kompilačního skriptu).
Upravíme řádku srcdir viz výše.
Spustíme skript build.sh
Stáhneme MPLAB IDE viz výše.
Pomocí wine MPLAB IDE nainstalujeme
Spustíme skript install.sh, případně mu jako parametr dáme cestu k nainstalovanému
MPLAB IDE. instal.sh musíme spouštět jako root, případně přes sudo.
Pokud se Vám podařilo instalaci provést, můžete překladač otestovat na
příkladu který je součástí balíčku s kompilačním skriptem.
Programování procesoru
Nahrát program do procesoru je možné několika způsoby. Nejjednodušší je
použít můj program pprg, který se stejným kabelem funguje pro PIC18 i PIC32.
Jediný drobný problém jsou napěťové úrovně. Pin MCLR je 5V tolerant, piny
PGEC a PGED je potřeba přizpůsobit. V podstatě stačí do série zapojit odpor cca
1kOhm.
Tento způsob programování je dost pomalý a pro nahrávání větších programů téměř
nepoužitelný. Proto jsem si napsal zavaděč.
Zavaděč
Funguje stejně jako můj
zavaděč pro PIC18. Ovšem nahrávání přes sériový port
také není úplně nejrychlejší, proto jsem zavaděč doplnil o možnost nahrávat
přes USB. Abych nemusel řešit USB v PC, udělal jsem boot tak, že emuluje
převodník USB na sériový port. Konkrétně čip FT232 od ftdi. Ovladač pro
tento čip je součástí Linuxu. V PC se tedy nic nemění používá se stejný
program pprg-ser, jen se mu na příkazové řádce nastaví port /dev/ttyUSB0.
I když se zavaděč tváří jako sériový port, tak nastavení rychlosti samozřejmě
ignoruje a přenáší data maximální možnou rychlostí. Změřil jsem dobu
nahrání cca 200kB kódu do PIC32MX460F512L a je to jen 8sec.
(C) Petr Porazil 2010-11,
poslední úprava 06.05.2010