Usando o AVRDUDE.

0
861

Olá amigos meu nome é Filipe e hoje irei apresentar um amigo antigo o AVRDUDE.

O AVRDUDE é um utilitário para realizar download/upload/manipular a memória FLASH e EEPROM de microcontroladores AVR ou seja será ele que usaremos para gravar nossos programas nos chips.

Usando o seguinte exemplo para gravar o ARDUINO UNO:

avrdude -p m328p -c arduino -P /dev/ttyACM0 -b 115200 -U flash:w:blink.hex

-p: Part number. Nessa flag iremos definir a especificação do microcontrolador a ser gravado que no caso do arduino será um atmega328p.

Uma lista detalhada de dispositivos suportados aqui.

-c programmer-id: Identificação do programador. O arduino usa um bootloader o que facilita a gravação de programas usando uma interface serial comum mas temos outros gravadores bem acessíveis ao publico BR como o USBASP e o pickit2.

No caso do USBASP o comando ficaria bem mais simples:

avrdude -p m328p -c usbasp -U flash:w:blink.hex

-P port: O arduino usa um adaptador usb-serial sendo então necessário especificar qual porta serial será utilizada, no nosso caso a ttyACM0. No windows teríamos como exemplo a COM3 ou COM4 por exemplo. No linux via terminal podemos usar o comando para descobrir que portas seriais temos ativas:

dmesg | grep tty

ttygrep

-b baudrate : especificaremos a velocidade de transmissão ou baudrate. No caso se o bootloader não tiver sido alterado essa opção pode ser esquecida pois já existe um arquivo de configuração para o gravador “arduino”.

-U memtype:op:filename[:format]: Bom aqui é aonde o procedimento fica interessante. O operando -U ira indicar qual operação na memoria o usuário fara no nosso caso iremos gravar o arquivo hexadecimal blink.hex na memoria FLASH então:

memtype = flash (Podemos operar ainda na eeprom, nos fuses e na signature).
op = w (leitura com r, v ira ler a memoria especificada e comparar com um arquivo fornecido pelo user)
filename= blink.hex.

Como dito acima nosso amigo avrdude pode tanto fazer o upload bem como o DOWNLOAD dos dados armazenados na memoria do chip.

Por exemplo um chip no qual gravamos nosso blink.hex usaremos o seguinte comando:

avrdude -p m328p -c arduino -P /dev/ttyACM0 -b 115200 -U flash:r:conteudoFlash.hex:i

Ira copiar uma imagem do conteúdo do chip podendo ser gravada em um novo.

Bom por aqui é só isso amigos. Leiam e complementem seus conhecimentos lendo o manual do avrdude que é bem detalhado e qualquer duvida ou discussão usem os comentários.

Fontes:

man avrdude
http://www.nongnu.org/avrdude/user-manual/avrdude_4.html

LEAVE A REPLY