Arduino Bootloader


9

Sono molto nuovo nel mondo embedded. Fino ad ora avevo lavorato solo su S / W

Qualcuno può spiegarmi l'uso di Arduino Bootloader? Voglio che Arduino esegua alcuni semplici calcoli usando alcuni componenti aggiuntivi che devono essere inseriti nel chip.

Ho necessariamente bisogno di un bootloader?

Risposte:


10

Arduino è fondamentalmente solo un microcontrollore Atmel AVR, con elettronica di supporto sufficiente per consentirne il funzionamento. L'AVR ha il flash incorporato per consentirgli di mantenere i programmi spenti, ma per programmare direttamente un chip AVR è necessario uno strumento come STK-500 per fare il lavoro. Arduino lo supera avendo anche una piccola interfaccia USB sulla scheda e il codice del caricatore di avvio Arduino già sul chip. Ciò consente all'applicazione lato PC di trasferire i programmi sul dispositivo e, in sostanza, di farla lampeggiare da sola.

Quindi, in sostanza, se ottieni un Arduino, il boot loader è già lì e fa automaticamente il suo lavoro. Codifichi il tuo programma sul PC, premi il pulsante 'upload' sull'IDE e in pochi istanti il tuo programma è in esecuzione su Arduino. Il bootloader svolge il suo lavoro in modo completamente trasparente.

A prima vista, ho personalmente un Arduino 2009 e un STK-500 e posso fare programmazione on-the-metal su AVR, ma non ho trovato alcuna necessità di bypassare il bootloader di Arduino.


Mi piacerebbe vedere maggiori informazioni sull'uso di un Arduino per programmare un AVR.
Greg


@Greg c'è in realtà uno sketch supportato da arduino per il duemilanove per far lampeggiare il bootloader su un atmega328 nudo. Ovviamente, questa funzionalità potrebbe essere estesa per eseguire il flashing di qualsiasi programma su un atmega328 nudo. Non è necessario un connettore ISP. In sostanza trasformi il tuo micro arduino in un ISP.
NickHalden,

5

Arduino ha bisogno di un bootloader per programmare i tuoi schizzi su seriale / USB. Senza di esso è necessario un AVR In-System-Programmer (ISP) per programmare direttamente la memoria flash nel chip AVR.

Se acquisti un Arduino, verrà fornito con il bootloader già bruciato nel chip AVR. Devi preoccuparti solo se stai costruendo la tua scheda.

Questo dovrebbe aiutare: non capisco il concetto di Arduino


4

Darò una risposta leggermente più teorica; le altre risposte sono abbastanza buone dal punto di vista pratico. Un bootloader è un codice che risiede in un segmento speciale di memoria flash. Il codice che risiede in quel segmento è autorizzato a eseguire le istruzioni di autoprogrammazione, rendendo possibile modificare la memoria flash (ovvero dove risiede il codice utente) senza un programmatore convenzionale (ovvero ISP di programmazione in sistema o HVP di programmazione ad alta tensione) come l'STK500 o AVRISP mkII.

In linea di principio, la UART Recieve Data Interrupt Service Routine (ISR) effettua una chiamata di funzione nel codice bootloader che copia l'immagine del programma che viene inviata in serie nello spazio del programma utente nella memoria flash. All'avvio, qualunque programma si trovi sul chip inizia a funzionare, ma se i dati seriali opportunamente formati vengono ricevuti all'inizio, l'AVR passa in una sorta di modalità di auto-programmazione. Esiste una logica nell'ISR UART che si differenzia solo per un breve periodo di tempo dal codice del bootloader durante l'avvio. I dettagli sono un po 'più complicati di così, ma questa è l'idea di base.

Il bello di questo è che puoi acquistare un Arduino e nient'altro, scaricare gratuitamente Integrated Development Environment (IDE) e iniziare a scrivere Arduino Sketches (programmi) e scaricarli sull'AVR in questo modo, tramite USB non meno grazie al sofisticato chip FTDI IC integrato nella scheda Arduino.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.