Jste zde

Výkonné free ANSI C překladače pro PIC18, PIC24 a dsPIC

Podrobný pohled na ?freewarové? kompilátory jazyka ANSI C určené pro rodiny mikrokontrolérů PIC18, PIC24 a dsPIC od Microchipu.

Úvod

Mikrokontroléry PIC od Microchipu jsou na trhu MCU poměrně krátkou dobu vzhledem k zaběhnutým jádrům jako x51, která se pyšní několika desítkami let na daném trhu a tak SW i HW prostředky pro vývoj jsou téměř dokonalé a mnohé volně dostupné. To také spatříte při pohledu na dostupnost, cenu a kvalitu překladačů ANSI C a obecně vyšších jazyků právě pro výrobky Microchipu. Výrobci kvalitních překladačů nabízejí své produkty tak draze, že pro mnohého studenta, učitele ale i domácího „bastlíře“ či mnohdy i firmu je takové řešení nedostupné a nebo jsou nabízeny pouze ořezané verze pro některé typy MCU s zásadním omezením velikosti výsledného programu.

Změnu konečně na tomto poli prolomil sám Microchip, který již delší dobu nabízel ANSI C překladač C18 a později pak C30. Nově jsou tyto programy dostupné i ve studentské verzi, kdy prvních 60 dní jsou vlastnosti překladače shodné s placenou verzí. Po této době přestane fungovat pouze optimalizace programu. Troufám si tvrdit, že pro 99% aplikací toto omezení není problém. Vždy lze použít verzi MCU s vyšší dostupnou pamětí programu nebo dat. Druhé omezení je již nepříjemnější a týká se tzv. „extended“ sady instrukcí nových typů MCU, která má vliv na výkonnost výsledného programu, ale ani zde to není překážka nepřekonatelná, protože na každém typu mikrokontroléru existuje základní sada instrukcí, která dokáže vykonat ty samé úkony. Nyní tedy k vlastnostem překladačů C18 a C30.

Vlastnosti překladačů C18 a C30.

Zde je nutné rozlišit, který překladač je vhodný právě pro naši vybranou rodinu MCU a také se zmínit o původu jádra překladače:

  • Překladač C18 je dítkem Microchipu a podporuje celou rodinu PIC18.
  • Naopak C30 vychází ze známého a léty ověřeného jádra překladače GCC a podporuje rodinu dsPIC, kam patří dsPIC30 a dsPIC33, dále pak rodinu PIC24, kam patří PIC24F a PIC24H.

C18 a C30 jsou však samostatné překladače a pro vlastní vývoj aplikace je účelné je integrovat do prostředí MPLABu, které je plnohodnotným IDE pro vývoj aplikací a poskytuje základnu pro simulace vyvíjeného programu stejně jako možnost spustit vyvíjený program přímo na čipu s pomocí ICD a tamtéž i ladit vlastní běh. Postup celé instalace a spuštění prvního jednoduchého programu pro oba překladače bude obsahem přiloženého návodu v pdf. Nejdříve se však ale podívejme na rozšiřující knihovny překladačů mimo standardní knihovny definované dle ANSI C, které považuji za zásadní. Je to právě ovládání periferií mikrokontrolérů, které se ukazuje být obtížným úkolem, jak pro začínající programátory MCU, jež tím tráví mnohdy celé hodiny, tak i pro zběhlé programátory, kteří jsou nuceni přecházet mezi různými verzemi MCU a přinejmenším tento fakt snižuje jejich produktivitu.

Microchip nám tak nabízí sadu knihoven, která skýtá obsluhu následujících periferií:

C18 – rodina PIC18

  • řízení periferií na čipu
    • A/D převodník
    • Input Capture Functions – funkce CCP modulu
    • I2C sběrnice
    • I/O Port Functions – přerušení od pinů na PORTB, RBxINT
    • Microwire sběrnice
    • PWM – funkce CCP modulu
    • SPI sběrnice
    • Timer  - konfigurace TMRx
    • USART
  • SW řízení periferii nebo emulace periferií
    • LCD – řízení externího čipu standardu HD44780, LCD displeje
    • CAN2510 – řízení externího CAN čipu
    • SW I2C sběrnice
    • SW SPI sběrnice
    • SW UART sběrnice
  • Základní SW knihovna
    • Podpora části standardních ANSI C knihovních funkcí
      • Práce se znakem
      • Matematické operace
      • atd.
    • Delay funkce
    • Reset funkce – informace o zdroji posledního resetu

Zde je dlužno zmínit, že C18 lze považovat za plně ANSI C překladač pouze na úrovni překladu zdrojového kódu jako takového, ale již ne na úrovni podpory sady standardních knihovních funkcí. Ty jsou omezeny dle hardwarových a softwarových možností rodiny PIC18.

Překladač C30 tímto neduhem, odchylkami od ANSI C, netrpí. Je to důsledek postupné snahy Microchipu vyvíjet mikrokontroléry, pro něž lze jednodušeji postavit překladač vyššího jazyka. U PIC18 tento trend započal přístupem na zásobník návratových adres programu a u dsPIC a PIC24 pak již lze hovořit o zásobníku v programově přístupné paměti RAM, jedná o plně softwarově řiditelný zásobník. Své pozitivní důsledky má taktéž použití jádra GCC překladače při vývoji C30. V případě užití C30 již tedy lze počítat s možností využití heapu, standardizovaných funkcí pro vstup a výstup a podobně. Zkrátka se nám již ve „freewarové“ verzi dostává do rukou překladač, který splňuje normu ANSI C.

C30 – rodina dsPIC a PIC24

  • DSP knihovna
    • Vektorové funkce
      • Základní
      • Konvoluce
      • Korelace
    • Okénkové funkce
      • Bartlett
      • Blackman
      • Hamming
      • Hanning
      • Kaiser
      • atd.
    • Maticové funkce
    • Filtrační funkce
      • FIR
      • IIR
    • Transformace
      • Kosinová transformace
      • Fourierova transformace
    • Regulační funkce
      • PID
  • Periferní knihovna
    • LCD – řadič PCOG1602B
    • CAN
    • A/D převodník 10 bitů
    • A/D převodník 12 bitů
    • Timer – TMRx funkce
    • Reset/WatchDog – zdroj resetu a řízení HW watchdogu
    • I/O Port Funkce – přerušení od INTx
    • Input Capture Functions – funkce capture CCP modulů
    • Output Capture Functions – funkce compare CCP modulů
    • UART sběrnice
    • DCI
    • SPI sběrnice
    • QEI
    • PWM
    • I2C sběrnice
  • Standardní ANSI C knihovna

Microchip též pro C18 nebo C30 nabízí mnoho ukázkových aplikací nebo SW knihoven:

  • TCP/IP – stack
  • UDP/IP – stack
  • ZigBee – stack
  • USB u speciálních typů PIC18
  • Atd.

Celkový přehled dostupných knihoven a ukázkových aplikací je nad rámec tohoto článku.

Získání nezbytného SW

Kde nalezneme SW? Samozřejmě na stránkách Microchipu.

Vždy instalujte nejprve MPLAB a poté teprve překladače C18 nebo C30, tyto  provádějí modifikace MPLABu, aby podporoval všechny jejich vlastnosti!

Na uvedených místech lze též získat značné množství dokumentace.

Instalace a první projekt

Závěr

         Cílem tohoto článku bylo seznámit čtenáře se základními schopnostmi C18 a C30. Jedná se o kvalitní SW, s který se nám dostává do rukou dvojice výkonných překladačů s podporou mnoha knihoven, které šetří vývojový čas nebo dovolují i začátečníkům poměrně rychlé zvládnutí problematiky řízení periferií a následně tak umožňují soustředit se plně na vlastní výkonné jádro konkrétní aplikace. Díky politice prodeje Microchipu lze i s freeware verzí, studentskou verzí, vyvíjet značně rozsáhle aplikace. Toto je ideální pro malé firmy, které tak mají možnost zdarma otestovat tyto překladače a případně se rozhodnout ke koupi. Stejně tak důležitá je free verze pro školy nebo „bastlíře“, kde cena SW pro vlastní vývoj je rozhodujícím faktorem pro orientaci na konkrétního výrobce MCU.

Marek Pavlů
pavlu@ HWg.cz

Download & Odkazy

Hodnocení článku: