Fui instruído a "gravar o gerenciador de inicialização" no meu Arduino para corrigir um erro que estava recebendo. Como posso fazer isso? (E o que exatamente é o carregador de inicialização?)
bootloader
O cara com o chapéu
fonte
fonte
Respostas:
O gerenciador de inicialização é um pequeno programa que está (quase) sempre em um Arduino. Ele gerencia o upload e o início dos esboços que você faz e pisca o LED 13 do pino sempre que a placa é redefinida.
Para gravar o gerenciador de inicialização:
Tools ► Board ►
IDE. Verifique isso mesmo se você puder fazer o upload de programas corretamente; o upload nem sempre exige a placa certa.Tools ► Programmer ►
.Tools ► Burn Bootloader
e aguarde. Não deve demorar mais de um minuto e geralmente leva apenas alguns segundos.Fontes:
fonte
{line 1} or other dedicated ISP programmer.
O que é um gerenciador de inicialização?
O carregador de inicialização é um pequeno pedaço de código que reside na parte "alta" da memória do programa. Normalmente, não é apagado quando você carrega novos esboços. Seu objetivo é ser ativado imediatamente após uma redefinição (os fusíveis são configurados para iniciar o código no endereço do carregador de inicialização em vez do endereço 0x0000). O carregador de inicialização aguardará um curto período de tempo (como um segundo) para ver se os dados de "programação" estão chegando na porta serial.
Nesse caso, ele lê esses dados e decodifica-os para reprogramar o restante da memória flash. Trabalhando em conjunto com o programa de upload (normalmente avrdude), o novo sketch é enviado via porta serial. O carregador de inicialização apaga as páginas da memória flash e as substitui pelo novo código. Uma vez feito, ele executa o novo código.
Se nenhuma instrução chegar, o carregador de inicialização pula para o endereço 0x0000 para executar o esboço existente no quadro.
Como substituir o carregador de inicialização
Um método alternativo para programar um gerenciador de inicialização é usar um esboço que escrevi há pouco tempo, executado em:
A placa de "programação" executa o esboço que possui gerenciadores de inicialização para várias placas codificadas nele. Você conecta a placa de programação à placa de destino (a placa que deseja o carregador de inicialização) com 6 fios de conexão, conforme mostrado.
Essa foto em particular ilustra um Uno programando outro.
Você executa o esboço (operando através do Serial Monitor para fornecer comandos). Primeiro, ele identifica o chip de destino:
Você pressiona G para programá-lo.
Para um Uno, leva um segundo. Para programar um Mega2560 leva 3 segundos.
Instruções detalhadas no programador do gerenciador de inicialização Atmega
É possível fazer o download do código no Github: nickgammon / arduino_sketches
fonte