quinta-feira, 17 de novembro de 2011

Compilador C Gratuito para PIC integrado ao MPLAB


Existem poucas soluções free de compiladores C para microcontroladores PIC da Microchip. O SDCC, já disponibilizado aqui mesmo no Mecatrônica na Net, é uma alternativa open-source muito utilizada, principalmente para a linha 8051. O site do projeto do SDCC, menciona que ainda está em andamento o suporte aos  microcontroladores PIC16 e PIC18. No entanto, existem relatos de pessoas que já o utilizaram para o PIC com sucesso: Flávio Melo (post no NETCON), Sérgio Prado. Será ensinado aqui como integrar o SDCC com o MPLAB.

Softwares utilizados:

  1. MPLAB: vr 8.92, (versão mais antiga vr 8.50). Use a versão mais antiga, caso não funcione com 8.80.
  2. SDCC: link 1.
  3. GPUtils: link 1.
  4. Plugin SDCC-MPLAB: link 1 (arq .rar - renomear extensão para .exe) ou link 2.
Procedimentos (no ambiente Windows)

Instale o MPLAB, o SDCC, o GPUtils e o plugin. Anote os locais onde foram instalados, pois alguns arquivos precisarão ser alterados.


No caminho C:\Arquivos de Programas\Microchip\MPLAB IDE\Core\MTC Suites\ abra o arquivo gplink.mtc e copie todo o seu conteúdo. Em seguida, abra o arquivo sdcclink.mtc, apague o conteúdo e cole o conteúdo que você copiou do gplink.mtc e salve a alteração.



Agora abra o arquivo pic16devices.txt dentro do diretório onde o SDCC foi instalado (padrão: C:\Arquivos de Programas\SDCC\include\pic16). Use o wordpad, pois o notepad não lida muito bem com as quebras de linha. Existe um problema que deve ser corrigido: o nome do processador é passado via linha de comando. O MPLAB usa os nomes dos microprocessadores com as letras em maiúsculo (18F4550) e o sdcc reconhece apenas em minúsculo (18f4550). Assim, será necessário trocar todas as letras do arquivo pic16devices.txt para maiúsculo. Para facilitar, use Editar->Substituir no wordpad e trocar "18f" por "18F". Após isso salve o arquivo.



Em último, temos que configurar as ferramentas dentro do MPLAB. Abra o MPLAB e vá ao menu "Project->Set Language Tool Locations". A tela abaixo aparecerá:


Utilize o SDCC16 para a família PIC18.
O arquivo gpasm e o gplink estão no subdiretório \bin dentro do GPUtils (padrão: C:\Arquivo de Programas\gputils\bin).

Na opção sdcc16, será utilizado o arquivo sdcc.exe que está no subdiretório \bin dentro do SDCC (padrão: C:\Arquivos de Programas\SDCC\bin).



Pronto! É só escrever o código e mandar compilar dentro do próprio MPLAB.

3 comentários:

  1. Funcionando no MPlab 8.85 + gputils 0.14.1 + SDCC 3.1.0 + Plugin MPlab-SDCC.

    Com o MPlabX também funciona, só achei estranho funcionar com o 16f628/16f648 e não com 16f628A/16f648A.

    Na internet tem muito pouco exemplo voltado ao SDCC, deveria ter mais já que o SDCC é um projeto sério e merece respeito e atenção.

    ResponderExcluir
  2. To mudando tambem para o SDCC. o C18 tem horas que alopra.

    ResponderExcluir
    Respostas
    1. Também existe esta opção: http://wiki.codeblocks.org/index.php?title=Using_the_Code::Blocks_IDE_with_SDCC_on_PIC_MCUs

      Excluir