Vous êtes sur la page 1sur 8

Microcontroladores

Criao de ambientes de desenvolvimento para microcontroladores em sistemas operacionais Linux

Freiheit Automao Fernando Ferreira Abreu abreu.fernando.f@gmail.com

Agradecimentos: Aos professores Wlamir Passos, detentor de todos os direitos de venda e distribuio da placa Lab_Uno e scio da empresa Proxsys, que acreditou no projeto. Marcos Andrade, professor de redes industriais, por mostrar que possvel e vivel desenvolver programas com software livre sem o auxlio de IDE's. Joo Nelson, desenvolvedor e diretor da Nobre de la Torre Informtica LTDA de programao, que me deu a oportunidade inicial de estudar programao todos os dias.

Freiheit (Frei.heit) Sf, -en 1 liberdade. 2 privilgio, licena, dispensa, iseno. 3 independncia, autonomia. sich die Freiheit nehmen tomar a liberdade de. Freiheit a alcunha utilizada por mim quando desenvolvo qualquer material relacionado a software livre e automao insdustrial. No visa lucro, no vende produtos e no pessoa jurdica. Apenas representa o intuito da disseminao de contedo.

Freiheit Automao Fernando Ferreira Abreu abreu.fernando.f@gmail.com

1. Objetivo
O Objetivo desse documento demonstrar como se configura um ambiente de desenvolvimento para microcontroladores em sistemas operacionais Linux.

2. Introduo
Apesar da diversidade de sistemas operacionais existentes hoje, temos um grande abismo quando falamos de softwares para rea de automao. Resolvi ento, atravs desse artigo, demonstrar como configurar e descarregar programas utilizando somente softwares livres e gratuitos, de forma que o usurio dependa apenas de s mesmo para compilar e executar seus programas.

3. Viso geral do Hardware


3.1. A placa Lab-Uno
A placa de desenvolvimento Lab-Uno foi desenvolvida pelo professor Wlamir Passos da Universidade Salesiana de So Paulo (UNISAL) para fins didticos. Ela contm um chip principal ATmega32U4 e interface para programao RS-232 e USB. Alm disso, o kit de desenvolvimento ainda consta com chaves tcteis e display LCD de 16x2 linhas.

Ilustrao 1: A placa Lab_Uno

Freiheit Automao Fernando Ferreira Abreu abreu.fernando.f@gmail.com

4. Viso geral do Software


4.1. Sistema Operacional
Foi utilizado o sistema operacional FEDORA 17 (Beefy Miracle) com todas as atualizaes padro;

Ilustrao 2: Logotipo do Fedora


4.2. Compilador
Foi utilizado o compilador AVR-GCC comum ao repositrio do Fedora com os pacotes adicionais: avr-binutils: Que utilizado como complemento na hora de montas os pacotes para a plataforma avr; avr-gcc: Que o pacote do compilador propriamente dito; avr-gcc-c++: Para extender as funcionalidades do compilador para ea outra linguagem (no a utilizei no entanto, mas fiz prevendo upgrades no ambiente de desenvolvimento); avr-gdb: Um debuggador remoto para ver o que est se passando com o microcontrolador; avr-libc: Biblioteca de c para o compilador avr-gcc.

4.3. Descarregador
Para descarregar os programas no microcontrolador utilizei o programa DFUPROGRAMMER; que voltado exclusivamente a microcontroladores com atualizao de firmware;

Freiheit Automao Fernando Ferreira Abreu abreu.fernando.f@gmail.com

5. Tutorial
5.1. Instalao dos pacotes
O primeiro passo para configurao do ambiente a instalao dos pacotes compilador. Atualmente todas as distribuies linux possuem um software gerenciador pacotes padro, que instala no s o pacote desejado mas supre todas as dependncias mesmo. Nesse caso, como quis fazer da maneira mais abrangente possvel, fis atravs prprio terminal. do de do do

Ilustrao 3: O Terminal Linux (Script Run_Houdini rodando)

$sudoyuminstallavrgccavrbinutilsavrgccc++avrgdbavrlibc $sudoyuminstalldfuprogrammer Depois de instalar os pacotes reinicie o computador.

Freiheit Automao Fernando Ferreira Abreu abreu.fernando.f@gmail.com

5.2. Criao do programa


A criao do programa obedece as regras do gcc. Como os diretrios do Linux no obedecem mesma organizao de outros sistemas operacionais fique atento aos locais onde as bibliotecas esto instaladas. Normalmente, todas as bibliotecas que precisamos esto dentro do prprio compilador, mas em alguns casos necessrio trabalhar com bibliotecas externas. Disponibilizo o programa anexo que um exemplo onde podemos testar os leds, o lcd e o conversor analgico digital.

5.3. Compilao do programa


A compilao do programa envolve duas linhas de comando que devem ser aplicadas na sequencia, abaixo, as utilizadas por mim para compilao do programa de exemplo: $avrgccmmcu=atmega32u4oexp.objlmfuncoes.clmlcd_usb.cexp.c avr-gcc: Invocao do compilador -mmcu: Indica o controlador alvo -o: India o nome do objeto de sada -lm: indica bibliotecas que sero integradas ao programa principal exp.obj: arquivo de sada funcoes.c, lcd_usb.c, exp.c: arquivos de entrada

$avrobjcopyOihexexp.objexp.hex avr-objcopy: invocao do compilador -o: Indica o arquivo de sada ihex: indica que o arquivo de sada deve ser hexadecimal (.hex) exp.obj: arquivo de entrada exp.hex: arquivo de sada

Como resultado das linhas a seguir, temos o arquivo exp.hex.

Freiheit Automao Fernando Ferreira Abreu abreu.fernando.f@gmail.com

5.4. Gravao do programa


Para gravar o programa, conect a placa Lab_Uno no computador e coloque-a em modo de gravao. Navegue at a pasta onde esto os cdigos e ento, com o programa compilado, digite: $sudodfuprogrammeratmega32u4erase $sudodfuprogrammeratmega32u4flashexp.hex $sudodfuprogrammeratmega32u4start sudo: realiza o comando com privilgios de administrador dfu-programmer: invocao do gravador atmega32u4: definio do microcontrolador alvo erase: apaga tudo o que estiver no microcontrolador flash: indica que deve ser feita uma gravao na memoria flash exp.hex: arquivo a ser gravado start: reseta o microcontrolador e o coloca em modo de execuo.

Com isso, o programa deve ser gravado com sucesso.

Ilustrao 4: Placa Lab_Uno j com o programa exp.c rodando

Freiheit Automao Fernando Ferreira Abreu abreu.fernando.f@gmail.com

6. Concluso e Notas finais


Com esse tutorial possvel compilar e gravar programas rapidamente em microcontroladores DFU da Atmel utilizando sistemas operacionais Linux. No se esquea de que na hora de gravar os programas voc deve ter privilgios de super usurio e seu usurio deve estar no grupo de permisses para acesso as portas USB (procure saber mais sobre grupos e permisses em sua distribuio). Para executar o Script Run_Houdini que est no pacote, execute seguinte linha de comando: $bashRun_Houdini Dvidas e sugestes: Fernando Ferreira Abreu abreu.fernando.f@gmail.com.

7. Anexos
1. Arquivo UserXp.rar contendo: exp.c: Cdigo fonte escrito em c com gedit; exp.obj: Objeto gerado pelo compilador; exp.hex: Arquivo hexadecimal pronto para ser gravado; funcoes.c: Arquivo de funes da placa Lab_Uno; funcoes.h: Arquivo de cabealho do arquivo funcoes.c; lcd_usb.c: Biblioteca de acesso ao lcd de Peter Fleury lcd_usb.h: Arquivo de cabealho do arquivo lcd_usb.c; placa32u4.c: Arquivo de funes da placa Lab_Uno; placa32u4.h: Arquivo de cabealho do arquivo placa32u4.c; Run_Houdini: Script que criei para automatizar a rotina de compilar e gravar o programa exp.c

Freiheit Automao Fernando Ferreira Abreu abreu.fernando.f@gmail.com

Vous aimerez peut-être aussi