La página de wikipedia para el gestor de arranque hace un buen trabajo, se centra más en las cosas de la PC, pero aún así está bien.
La parte del cargador de la palabra (o palabra independiente si escribe bootloader vs bootloader, no sé si una es correcta o incorrecta) implica que no solo arranca el sistema, sino que también permite la carga como en un herramienta para que el cargador de arranque u otros desarrolladores puedan entrar y cambiar cosas o hacer experimentos antes de que se inicie la aplicación o el sistema operativo, básicamente interfieren con el proceso de arranque si se desea. De lo contrario, simplemente arranca el sistema.
Comprende que el gestor de arranque en sí es solo un programa. El procesador no conoce un cargador de arranque de un agujero en la pared, es solo un código de máquina para ejecutarse en el lugar correcto cuando se enciende o se desactiva el reinicio.
Pueden servir para muchos propósitos y los como uboot que te preparan para Linux son casi, o en algunos casos, son sistemas operativos con el tamaño masivo de la fuente. pesado en ese lado del cargador, permitiendo que las pilas tcp / ip completas lleguen a través de las redes para bajar los binarios experimentales. soporte para varios sistemas de archivos, etc.
el caso de uso típico de un microcontrolador es no usar un cargador de arranque, usted inicia directamente en la aplicación y lo ejecuta desde flash. Es por eso que la relación entre el tamaño del flash y el tamaño del ram es tan alta, su programa está destinado a vivir y ejecutarse desde el flash. Los problemas de lectura y otros problemas de flash no pueden estar presentes en esos chips para que sean productos exitosos. aunque en la programación de circuitos, la tendencia es tener un método de arranque alternativo ya sea del propio proveedor de chips o siempre algo que pueda agregarse usando un pin de gpio. ata los pasadores de una determinada manera y algunos otros códigos de arranque, un cargador de arranque que le permite, idealmente, reprogramar la aplicación principal en flash, en circuito. los viejos tiempos retiró el microcontrolador de su zócalo DIP, lo pegó en un programador o borrador y finalmente lo reprogramó, o escribió su propio cargador de arranque y usó un gpio pin o presionó esc o algo después de unos segundos de arranque (en un uart), que tipo de cosas.
el cargador de arranque es como se menciona en la página de wikipedia. También se puede usar y, a veces, se usa para poner el sistema en un estado conocido para las aplicaciones que siguen. no es realmente tan interesante para un microcontrolador, pero definitivamente para algo más grande, inicie dram y la interfaz de red tal vez enumere el bus pci o el usb, etc. Cosas que serían comunes a cualquier sistema operativo que sigue para que el sistema operativo solo pueda ejecutarse y No tengo que hacer esas cosas.
Algunos microcontroladores, el gestor de arranque programado de fábrica (a menudo en un instante, no puede cambiar o requiere diferentes pasos para cambiar la aplicación) solo funciona con pasadores atados de una determinada manera. Otras soluciones, el flash del gestor de arranque siempre se ejecuta, escanea la aplicación y decide si hay una aplicación allí y salta a ella y / o se vuelve a asignar y hace un restablecimiento completo o no. Por qué en el NXP creo que es la primera vez que muchas palabras tienen que tener una suma de comprobación válida. Otros, cualquier cosa que no sea 0xFF, intentará arrancar.
para el arranque de Linux, por ejemplo, el cargador de arranque sería el que copia el sistema de archivos raíz y el kernel a ram se ramifica al kernel. Sin embargo, para un microcontrolador, el gestor de arranque no debería hacer lo que debería hacer su aplicación si cualquier dato tiene que moverse. el código de arranque antes de que ramifique a main () copiaría la sección .data a ram si tiene .data y pone a cero la sección .bss, establezca el puntero de la pila y la rama a main.
en resumen, en un microcontrolador no necesita un gestor de arranque, si es que suele haberlo en la programación / actualizaciones del sistema. su aplicación se ejecuta desde flash y solo las variables y otros elementos de lectura / escritura viven en RAM.