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 fazer com nosso programa rode no GPSIM, ele deve estar
previamente compilado, ou seja, deve existir um arquivo HEX.
$ gpsim -pp16f877 alomundo.hex
Observe que o "-pp16f877" é o modelo do PIC escrito em letras
minúsculas. É importante observar porque no compilador o modelo
está com o "F" maiúsculo. Não vá confundir como eu e perder horas
nesta bobagem! Logo em seguida a tela principal do GPSIM irá
aparecer, com menus não muito esclarecedores.
Tela principal do GPSIM
Clique em "Windows" e depois em "Ram". Irá aparecer a janela
"register viewer [RAM]". Nesta janela podemos observar em destaque
os registradores de propósito específico, ou seja, registradores do
tipo PORT, TRIS, TMR, dentre outros que servem para configurar ou
ativar alguma função do microcontrolador. Clique com o botão da direita na célula Linha 00 / Coluna 05, que corresponde a porta A.
Memória com a célula correspondente a PORTA selecionada
Depois clique em "Add watch". Irá aparecer a janela "Watch Viewer".
Nela podemos ver todos os bits da porta A. Clique em "run" na
janela principal para iniciar a simulação. Veja os bits da porta
A alternando os estados como programado. Há muito o que explorar
neste simulador. Ele suporta breakpoints e execução passo a passo,
tudo que um bom debugger deve ter.
Watch mostrando valores da porta A em decimal, hexadecimal, ascii e binário em tempo real
[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...