pso
Petr Porazil
Návrh hardware
adr
bvh

PIC32MX


Petr Porazil Home
peda
Linux a PIC
PIC32MX
Zavaděč (boot)
Programátor pprg
RS232 příklad
RS232 knihovna
TTL RS232
Solární systém
Ukázky aplikací PIC
Download

Překladač C

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.

Postup získání překladače je tedy následující:
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