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.
Parte 6: Simulando
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.
$ 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.
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
