Arduino Bootloader


9

Eu sou muito novo no mundo incorporado. Até agora, eu trabalhava apenas em S / W

Alguém pode me explicar o uso do Arduino Bootloader? Quero que o Arduino execute algumas matemáticas simples usando alguns componentes adicionais que precisam ser colocados no chip.

Preciso necessariamente de um gerenciador de inicialização?

Respostas:


10

O Arduino é basicamente apenas um microcontrolador Atmel AVR, com componentes eletrônicos de suporte suficientes para permitir sua operação. O AVR possui flash embutido para permitir que os programas sejam desligados, mas para programar um chip AVR diretamente, você precisa de uma ferramenta como o STK-500 para fazer o trabalho. O Arduino supera isso, tendo também uma pequena interface USB na placa e o código do carregador de inicialização do Arduino já no chip. Isso permite que o aplicativo do lado do PC transfira seus programas para o dispositivo e, em essência, faça com que ele pisque sozinho.

Portanto, se você adquirir um Arduino, o gerenciador de inicialização já estará lá e fará seu trabalho automaticamente. Você codifica seu programa no PC, pressiona o botão 'upload' no IDE e, em alguns instantes, seu programa está sendo executado no Arduino. O carregador de inicialização faz seu trabalho de forma totalmente transparente.

Pessoalmente, eu tenho um Arduino 2009 e um STK-500 e posso fazer programação on-the-metal em AVRs, mas não achei necessário ignorar o gerenciador de inicialização do Arduino.


Gostaria de ver mais informações sobre o uso de um Arduino para programar um AVR.
Greg


@ Greg, na verdade, existe um esboço suportado pelo arduino para que o duemilanove atualize o gerenciador de inicialização em um atmega328. Obviamente, essa funcionalidade pode ser estendida para exibir qualquer programa em um atmega328. Você não precisa de um conector ISP. Basicamente, você transforma seu arduino micro em um ISP.
NickHalden

5

O Arduino precisa de um gerenciador de inicialização para programar seus esboços em serial / USB. Sem ele, você precisa de um ISR (Programador no Sistema) AVR para programar a memória flash diretamente no chip AVR.

Se você comprar um Arduino, ele virá com o gerenciador de inicialização já gravado no chip AVR. Você só precisa se preocupar se estiver montando seu próprio quadro.

Isso deve ajudar: eu não entendo o conceito do Arduino


4

Vou dar uma resposta um pouco mais teórica; as outras respostas são muito boas do ponto de vista prático. Um carregador de inicialização é um código que reside em um segmento especial da memória flash. É permitido ao código que reside nesse segmento executar Instruções de Auto-Programação, possibilitando modificar a memória flash (ou seja, onde o código do usuário reside) sem um programador convencional (ou seja, ISP de Programação no Sistema ou HVP de Programação de Alta Voltagem) como o STK500 ou AVRISP mkII.

Em princípio, o ISR (UART Recieve Data Interrupt Service Routine) faz uma chamada de função no código do carregador de inicialização que copia a imagem do programa sendo enviada serialmente no espaço do programa do usuário na memória flash. Na inicialização, qualquer programa que esteja no chip começa a funcionar, mas se dados seriais adequadamente formados são recebidos no início, o AVR entra em uma espécie de modo de auto-programação. Há alguma lógica no UART ISR que adia apenas o código do carregador de inicialização por um curto período de tempo durante a inicialização. Os detalhes são um pouco mais complicados do que isso, mas essa é a ideia básica.

A vantagem disso é que você pode comprar um Arduino, e nada mais, baixar o IDE (Ambiente de Desenvolvimento Integrado) gratuito e começar a escrever Rascunhos (programas) do Arduino, e baixá-los no AVR dessa maneira, através do USB, não menos obrigado ao pequeno e sofisticado chip FTDI IC integrado à placa Arduino.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.