Pular para o conteúdo

Desenvolvendo para microcontroladores em GNU/Linux

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.
Thiago Marcos P. Santos mandark_br
Hits: 107.374 Categoria: C/C++ Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Compilador

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:

# mv picl_8.05PL2-full-linux-x86 /usr/local/share/picl

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:

# picl -help

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Compilador
   2. Simulador
   3. Gravador
   4. Programando
   5. Compilando
   6. Simulando
   7. Gravando
   8. Dicas
   9. Bibliografia
   10. Outros
Nenhum artigo encontrado.

Criando aplicativos para o iPhone no Linux (sem Xcode e MacOS X)

Sinais em Linux

Bug afeta todas as distros

Compilando o Mono 2.2 no Ubuntu 8.10

GNA: um Coprocessador para Aceleração Neural

#1 Comentário enviado por kakaroto em 16/12/2004 - 01:42h
Cara, fico muito bom o seu howto, e numa área que nao temos muitos docs meus parabéns :)
#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.

Valeu,
Sérgio Cioban Filho
#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?

http://sdcc.sourceforge.net/
#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! =)
#9 Comentário enviado por willy_herman em 17/12/2004 - 01:30h
Cara, muito legal seu Artigo.
Gostaria de saber se voce possui algum livro/apostila/tutorial para me indicar pra programacao em C para PIC
#10 Comentário enviado por mandark_br em 17/12/2004 - 07:28h
Na parte Bibliografia do artigo estão indicados todos os documentos que usei para fazer o artigo. É o que recomendo.

Note que praticamente não há documentação em pt_BR sobre o assunto. Eu pelo menos não achei nada...
#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...

Mais uma vez, parabéns pelo artigo.

Ederson.
#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.

No momento:
http://www.geocities.com/dinceraydin/8051/ programador dos at892051

http://www.colargol.tihlde.hist.no/~jonah/el/avrp.html


simulador
http://sourceforge.net/projects/emu51/

e tem o SDCC e o UCSIM do sdcc que tb diz simular 8051 no linux.

http://wiki.eagle-usb.org/wakka.php?wiki=Asm8051
O link acima tem varios programas e informacoes interessantes para 8051


Wagner de Queiroz
#13 Comentário enviado por redebr2818 em 28/02/2007 - 11:30h
hehehe a exsto fica em frente a minha casa haha vo la comentar sobre gravaçao em linux hehe
#14 Comentário enviado por rafael### em 26/05/2007 - 21:09h
galera alguém conhece um simulador pra pic16f628?? grato :)
#15 Comentário enviado por GilsonDeElt em 22/06/2008 - 18:41h
mandark_bh, congratulations pelo artigo! =D

ficou d+ mesmo, bem completo e detalhado

os eletrônicos-under-linux (como eu) agradeçem =D
#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...

Abraço,

mcleber

Contribuir com comentário

Entre na sua conta para comentar.