O AVRDUDE roda em um PC (sob Windows, Linux ou MacOS) e se comunica com um programador externo, através de uma porta serial ou paralela do PC. O programador está conectado ao microcontrolador e utiliza a programação paralela ou SPI do AVR. Uma das vantagens do AVRDUDE é suportar uma quantidade muito grande de programadores e de modelos de microcontrolador.
A execução do AVRDUDE é controlada por parâmetros de linha de comando e um arquivo de configuração. Vamos examinar aqui apenas os parâmetros de linha de comando essenciais. O AVRDUDE e sua documentação completa podem ser encontrados em alguns locais:
- A documentação e os fontes mais recentes podem ser baixados do site oficial.
- O executável para Windows faz parte do pacote WinAVR, hospedado no sourceforge.
- Se você instalou a IDE do Arduino, o avrdude faz parte dos arquivos sob hardware\tools\avr
Você precisa sempre especificar três parâmetros:
- -p
informa qual o modelo do microcontrolador a programar. Alguns exemplos são atmega328p, atmega168 e attiny2313. - -c
informa o modelo do programador que será utilizado. Alguns exemplos (que veremos no futuro) são dapa, bsd, stk200, ponyser, avrisp e usbtiny. - -P
informa a porta do PC (com1, lpt1, usb, etc) onde o programador está conectado.
- -e apaga o dispositivo. Normalmente não é necessário, pois o AVRDUDE apaga automaticamente antes de gravar.
- -U
:r: efetua a leitura da área(flash, eeprom, lock, efuse, hfuse ou lfuse) e grava o resultado em um arquivo. - -U
:v: compara o conteúdo da área(flash, eeprom, lock, efuse, hfuse ou lfuse) com o conteúdo de um arquivo. - -U
:w: efetua a gravação da área(flash, eeprom, lock, efuse, hfuse ou lfuse) com conteúdo de um arquivo. Após a gravação é feita uma verificação. -U é o mesmo que -U flash:w: .
Um recurso útil ao gravar ou verificar os fusíveis (lock, efuse, hfuse ou lfuse) é colocar o valor a gravar diretamente na linha de comando ao invés de usar um arquivo. Um exemplo seria -U lock:v:0xFF:m que verifica se o fusível lock possui o valor 0xFF.
A gravação dos fusíveis (lock, efuse, hfuse ou lfuse) requer um parâmetro adicional -u. Como diria Iago, a programação incorreta dos fusíveis não irá matar um microcontrolador mas coisas terríveis podem acontecer (inclusive impedir a gravação com um programador SPI).
Lembrando mais uma vez, estou listando aqui apenas o básico. A lista completa de comandos e opções está bem explicada no manual do AVRDUDE.
Nenhum comentário:
Postar um comentário