Mini curso sobre AVR Parte 9 Usando o AVR-GCC no Linux

Nessa parte vou discutir a questão do AVR no linux, que é muito bem suportado, tendo diversas ferramentas que comentei em outros posts sendo originalmente compiladas no linux e portadas para o windows, por exemplo.

Uma dessas ferramentas é o GCC, o compilador onde o linux todo ou quase todo é compilado, nessa coleção de compiladores há não só C e C++, como também Java e outras linguagens.

O AVR felizmente é suportado não só por esse compilador mas por outros 30 compiladores, e não só ele como diversas outras arquiteturas como 68HC11 e muitos ARM têm código gerado pelo GCC, veja todas em:
http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/Submodel-Options.html#Submodel-Options

E o mais interessante é que o GCC é usado como compilador padrão para C e C++ em diversas faculdades, já que segue as normas mais comuns que são ANSI e C99, além de outras, escolhidas nas opções.

Antes de começar a usar instale o cross-avr-gcc, nele estão além do cross compiler para avr as bibliotecas já usadas nos posts anteriores.

Para o Linux uso o OpenSuse, tudo isso já está no gerenciador de pacotes Yast, e não é preciso compilar nada.

Compilando para PC costumo usar o GCC na linha de comando, ele gera o binário com um único comando, mas no caso do AVR é necessário mais comandos, como por exemplo para se transformar o binário em formato intel-hex, daí é necessário digitar vários comandos, o que levaria a fazer um shell script pra isso, mas isso não é necessário.

Nessas situações se usa o arquivo MAKEFILE, que contêm as opções de como se fazer a compilação.

No caso do windows, o AVRStudio gera o MAKEFILE ,mas no caso de se ter apenas o compilador no linux sem IDE, é necessário fazê-lo usando editor de texto ou então digitar vários comandos, utilizo um MAKEFILE modificado de outro site, no final do post ele é mostrado, salve-o num arquivo com o nome MAKEFILE e faça para testar:

make allh

Para deletar os arquivos é o não menos diferente do usual make clean.

Nesse MAKEFILE fiz a modificação no make all para que fizezesse a geração do hex, outra modificação foi feita para se mostrar no console o list, usando o comando cat.

Mude o nome dos arquivos e nome de projeto afim de que o avr-gcc compile os arquivos certos, nesse caso está feito para a parte 4, que foi salva no parte4.c.

Além dessas opções, make install programa o AVR dessa placa que está sendo usada nos exemplos com o avrisp por intermédio do avrdude, essa foi uma modificação feita nesse MAKEFILE, que usava o hardware usbasp na programação, você poderá usar qualquer outro hardware suportado pelo avrdude, como por exemplo stk200.

O MAKEFILE vai a seguir, ele veio originalmente de http://www.psychogenic.com , leia atentamente os comentários, para fazer as modificações necessárias, observe que é extremamente simples e rápido mudar os parâmetros, é o melhor makefile para se usar em vários projetos!

http://www.4shared.com/file/w68OD4Yc/Makefile.html

Por outro lado se você é um begginer em linux ou quer ver algo gráfico na frente (eu não gosto), tem o Eclipse, que pelo menos em ARM é parada obrigatória, e nele há um plugin pro AVR, que deixa tudo gráfico..leia mais em:
http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin

PS: Se você é daqueles que gosta de gastar dinheiro com compilador logo virá um post sobre o EW-AVR da IAR, uma IDE que também não tem funçõezinhas prontas como certas outras e deixam seu trabalho com cara de amador (diga-se mikro* e outros lixos).

É isso, comentem, não custa nada!! Não gostou? Comente também!

1 comentários:

Unknown disse...

Olá, gostaria de parabenizar pelo mini curso, gostaria de sua autorização para cópia de todo o mini-curso e geração de um PDF , para ser distribuído aos interessados do grupo PICLISTbr , claro, com os devidos e merecidos créditos de sua autoria. Sem mais, obrigado. lopeston2007@gmail.com

Postar um comentário