Pregunta:
¿Por qué los tamaños del cargador de arranque difieren de 0,5 a 8 kilobytes para diferentes placas?
EEd
2014-08-17 21:29:47 UTC
view on stackexchange narkive permalink

Según la información web oficial, los tamaños del gestor de arranque son 0,5, 2 y 8 kilobytes para UNO, Pro mini y ATMega2560. Creo que los tres cargadores de arranque hacen un trabajo similar al recibir datos de enlace en serie y escribir en la memoria Flash.

UNO y Pro mini usan chips ATMega168 / 328 iguales / similares pero el tamaño del cargador de arranque es de 0,5 y 2 KB.

ATMega2560 evidente tiene un MCU más avanzado que presumiblemente debería usar memoria similar o incluso menos para hacer la misma tarea, pero el tamaño es significativamente grande en 8 KB fuerte>.

¿Por qué los tamaños difieren? La pequeña diferencia puede ser explicada por diferentes equipos de desarrollo, pero debería ser muy diferente , de 0.5 a 8 KB.

Los distintos cargadores de arranque tienen distintas capacidades.
Dos respuestas:
Gerben
2014-08-17 22:47:06 UTC
view on stackexchange narkive permalink

El cargador de arranque de Mini y Uno son prácticamente iguales. (No puedo encontrar el código fuente, pero los archivos hexadecimales son solo ligeramente diferentes).

El 2k se debe a que no han actualizado mini328.upload.maximum_size en boards.txt . Probablemente porque eso rompería la placa para los usuarios que aún no han actualizado el cargador de arranque.

El 2560 está usando un cargador de arranque compatible con stk500v2 en lugar de Optiboot (uno y mini), porque optiboot solo admite direcciones de hasta 64kb . Sin embargo, no estoy seguro de por qué es mucho más grande.

¿Cómo saber si las placas UNO, Pro Mini / ATMega2560 están cargadas con la última versión del cargador de arranque (con la esperanza de que sea de menor tamaño para permitir un programa de usuario máximo)? ¿Dónde puedo conseguir los cargadores de arranque más recientes para estas 3 placas? Si es necesario, ¿cómo reprogramar el cargador de arranque de UNO / Pro Mini / ATMega2560?
Cargar la última versión es probablemente más fácil que probar qué versión tiene. Los cargadores de arranque se pueden encontrar en: https://github.com/arduino/Arduino/tree/master/hardware/arduino/bootloaders. Solo google cómo actualizar. Si puede resolverlo, haga una nueva pregunta aquí en SE.
Nick Gammon
2018-05-02 11:22:25 UTC
view on stackexchange narkive permalink

En términos generales, los chips ofrecen cuatro posibles configuraciones de tamaño de cargador de arranque. Por ejemplo, en el Atmega328 puede tener 512, 1024, 2048 o 4096 bytes (observe que los tamaños aumentan en una potencia de 2).

Los chips con menos memoria de programa ofrecen cargadores de arranque más pequeños porque ganaron ' No quiero usar mucha de esa memoria para algo que solo se usa para cargar código. Los chips con más memoria (como el Atmega2560) ofrecen cargadores de arranque más grandes, es decir. 1k, 2k, 4k, 8k (nuevamente aumenta en una potencia de 2).

El Uno logra usar un cargador de arranque de 512 bytes (Optiboot). El Mega, que tiene instrucciones más complejas (para manejar un espacio de direcciones más grande) necesitaría cargadores de arranque más grandes. Además, en algunos casos, los escritores del gestor de arranque agregan cosas adicionales como una consola de depuración.



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...