Domanda:
Perché le dimensioni del bootloader differiscono da 0,5 a 8 kilo byte per schede diverse?
EEd
2014-08-17 21:29:47 UTC
view on stackexchange narkive permalink

Secondo le informazioni web ufficiali le dimensioni del bootloader sono 0,5, 2 e 8 kilo byte per UNO, Pro mini e ATMega2560. Credo che tutti e tre i boot loader svolgano un lavoro simile nel ricevere i dati del collegamento seriale e scrivere nella memoria Flash.

UNO e Pro mini utilizzano chip ATMega168 / 328 uguali / simili ma le dimensioni del boot loader sono 0,5 e 2 KB.

ATMega2560 ha un MCU più avanzato che presumibilmente dovrebbe utilizzare una memoria simile o addirittura inferiore per eseguire la stessa operazione, ma la dimensione è significativamente grande a 8 KB .

Perché le dimensioni differiscono? Una piccola differenza può essere spiegata da diversi team di sviluppo, ma dovrebbe essere molto diversa , da 0,5 a 8 KB.

Bootloader differenti hanno capacità differenti.
Due risposte:
Gerben
2014-08-17 22:47:06 UTC
view on stackexchange narkive permalink

Bootloader di Mini e Uno sono più o meno gli stessi. (Non riesco a trovare il codice sorgente ma i file esadecimali sono solo leggermente diversi).

Il 2k è perché non hanno aggiornato mini328.upload.mamost_size in boards.txt . Probabilmente perché ciò romperebbe la tavola per gli utenti che non hanno ancora aggiornato il bootloader.

Il 2560 utilizza un boot loader compatibile stk500v2 invece di Optiboot (uno e mini), perché optiboot supporta solo indirizzi fino a 64kb . Non sono sicuro del motivo per cui sia molto più grande.

Come scoprire se le schede UNO, Pro Mini / ATMega2560 sono caricate con l'ultima versione del boot loader (sperando che sia di dimensioni inferiori per consentire il massimo programma utente)? Dove posso trovare gli ultimi boot loader per queste 3 schede? Se necessario, come riprogrammare il boot loader di UNO / Pro Mini / ATMega2560?
Caricare l'ultima versione è probabilmente più facile che testare quale versione è presente. I bootloader possono essere trovati su: https://github.com/arduino/Arduino/tree/master/hardware/arduino/bootloaders. Basta google come eseguire l'aggiornamento. Se riesci a risolverlo, fai una nuova domanda qui su SE.
Nick Gammon
2018-05-02 11:22:25 UTC
view on stackexchange narkive permalink

In generale, i chip offrono quattro possibili configurazioni delle dimensioni del bootloader. Ad esempio, sull'Atmega328 puoi avere 512, 1024, 2048 o 4096 byte (nota che le dimensioni aumentano di una potenza di 2).

I chip con meno memoria del programma offrono bootloader più piccoli perché non hanno " Voglio usare molta di quella memoria per qualcosa che viene utilizzato solo per caricare il codice. I chip con più memoria (come l'Atmega2560) offrono bootloader più grandi, ad es. 1k, 2k, 4k, 8k (di nuovo aumenta di una potenza di 2).

Uno riesce a utilizzare un bootloader da 512 byte (Optiboot). Il Mega, che ha istruzioni più complesse (per gestire uno spazio di indirizzi più ampio) avrebbe bisogno di bootloader più grandi. Inoltre, in alcuni casi, gli autori del bootloader aggiungono cose extra come una console di debug.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...