Este artigo irá demonstrar como o GNU/Linux pode ser uma plataforma de desenvolvimento de programas para microcontroladores. O foco do artigo será como utilizar as ferramentas de compilação, simulação e gravação. Será explicado um pouco da teoria de programação para microcontroladores. Como exemplo, usaremos o microcontrolador PIC16F877.
Para iniciar o nosso desenvolvimento, precisamos de um compilador.
Existem vários compiladores livres de Assembly, porém esta
é uma linguagem não muito popular para quem está apenas se
aventurando (é o meu caso) na programação de microcontroladores.
Resolvi procurar por um compilador C. Achei o PICC, que existe uma
versão Lite que é freeware, ou seja, gratuita com código fechado. É
um excelente compilador, mas é uma pena não ser livre. Vale lembrar
que ele tem algumas limitações quanto ao tamanho dos programas
gerados (2 Kbytes). Este tamanho é mais que o suficiente para boa
parte das aplicações e para o uso acadêmico.
Instalando o PICC Lite
O primeiro passo é baixar o PICC Lite da empresa HI-TECH Software.
Basta ir ao site do fabricante e fazer o download:
É necessário um registro, mas acho que isso não é problema. Você
vai baixar o arquivo "picclite.tar.gz". Basta descompactá-lo que
será criado o diretório "picl_8.05PL2-full-linux-x86". No meu caso,
fiz o seguinte:
Coloquei dentro do diretório /usr/local/share com o nome de picl
para não ficar um diretório com um nome grande demais. Sinta-se
livre de colocar o programa onde você quiser, inclusive dentro do
home do seu usuário. Depois faça:
# cd /usr/local/bin
# ln -s /usr/local/share/picl/bin/picl picl
Faça isso para você chamar o compilador de qualquer lugar, sem ter
que digitar o caminho completo do seu executável. Falta configurar
agora uma variável de ambiente. Para isto, basta digitar:
# export HTL_PIC=/usr/local/share/picl/
Toda vez que for rodar o programa, deve-se "exportar" esta variável.
Para facilitar, pode-se colocar no profile do seu usuário ou então
no Makefile do programa que iremos criar. Teste se está tudo certo
digitando:
[2] Comentário enviado por jose_maria em 16/12/2004 - 08:28h
Parabéns pelo artigo.
Eu tenho alguns microcontroladores aqui e sempre tive curiosidade de como fazer isso no Linux. Eu já tinha pesquisado um pouco e tinha achado bastante coisa, mas não tinha colocado nada em prática.
Nessas férias eu vou práticar este artigo.
[4] Comentário enviado por Bentux em 16/12/2004 - 09:20h
Amigo, legal mesmo o seu artigo! Só tem a contribuir com o Open Hardware, quem sabe o pessoal se empolga e começamos a realizar projetos de placas ou dispositivos Open aqui no Brasil!? Valeu mesmo pela contribuição!!!
[5] Comentário enviado por cioban em 16/12/2004 - 13:34h
Muito bom o seu artigo,
Gostaria de saber se existe uma forma de programar em assembler para o microcontrolador 8051, eu tenho um kit para programar, e queria programar no LINUX.
[6] Comentário enviado por torque em 16/12/2004 - 14:34h
Este howto veio na hora certa, é uma área que há muito o que explorar, e na qual não se acha muita documentação a respeito em português, e muito menos para Linux.
[7] Comentário enviado por mandark_br em 16/12/2004 - 14:57h
Sérgio,
Não conheco muito Assembly, não pesquisei muito nesta área. Existe um compilador livre de C ANSI, chamado SDCC. Ele compila pra PIC e para 8051 dentre outros. Para PIC ele ainda não está legal, por isso não usei ele no artigo. Quando estiver maduro vou substituir o PICC por ele. Detalhe que ele compila pra Zilog Z80! Lembram do MSX?
[8] Comentário enviado por removido em 16/12/2004 - 15:37h
ok legal o artigo.. mas o que eh um microcontrolador??? Acho que faltou soh uma boa explicação sobre isso... se tiverem algum link para ler sobre eu agradeço!! Ninguem nasce sabendo neh! =)
[11] Comentário enviado por ercarnauba em 17/12/2004 - 09:44h
Parabéns pelo artigo!
É uma pena não ter muito material para programar a família 8051, no meu caso AT89C51 em linux :( , eu tenho todo material para o $ruindows$ para trabalhar com o bicho, só que eu confio muito mais no Linux :) .
Eu quero aproveitar esse espaço para pedir a ajuda de alguem q tb trabalho com uC 8051 em linux para me passar umas dicas...
[12] Comentário enviado por wagnerdequeiroz em 20/10/2006 - 20:25h
Pessoal estou comecando com 8051 tb e estou no mesmo barco. No entanto ja achei programador para 8051
falta achar simulador grafico
visitem o site www.asm51.eng.br para ver se aparecem novidades. Este é um forum de Microcontroladores onde podemos trocar informacoes sobre microcontroladores.
[16] Comentário enviado por mcleber em 19/02/2009 - 11:17h
Ficou muito legal seu artigo.. Todos os meus softwares de eletronica são para windows. A sorte é que para diagramas eletricos e algumas simulações já encontrei vários para linux. Agora preciso fazer minha ICD2 (gravadora de pic) rodar em linux. O problema será gravar dsPIC. No windows utilizo CCS com C30 + ICD2 gravando in-circuit...