¿Cuál es el propósito exacto de Booter en cualquier controlador integrado?

Supuesto: ‘booter’ = ‘bootloader’

Los sistemas integrados tienden a ser bastante livianos cuando se trata de cargadores de arranque, o el “cargador de arranque” original. El término se origina de la frase coloquial en inglés ‘levantarse por las botas’, que significa ‘comenzar desde muy poco y elevarse a una persona que funcione completamente’. En un sistema más grande, generalmente es más importante como el fragmento de código que carga un sistema operativo. Si permite que la definición de ‘controlador integrado’ incluya algo capaz de ejecutar un sistema operativo, entonces ese es un propósito. En lugar de cargar un sistema operativo, es posible que pueda cargar alguna aplicación de metal desnudo, como una en un Arduino. En la mayoría de los casos, inicializará algún aspecto del hardware, antes de que haga mucho más. En algunos sistemas, esto podría ser algo bastante crítico, como configurar fuentes de alimentación y sistemas críticos para la salud, como la refrigeración. En otros sistemas, puede ser poco más que establecer una velocidad en baudios en un puerto serie, o simplemente configurar un marco de pila viable.

Supongo que por booter te refieres a un cargador. Cuando se enciende un procesador incorporado, se deben hacer algunas inicializaciones antes de que podamos ejecutar algún código de aplicación en él. Por ejemplo, necesitamos habilitar una interfaz mediante la cual podamos cargar y depurar código en el destino (por ejemplo, Jtag), necesitamos inicializar DRAM para cargar código en él y cosas similares como esa. Un gestor de arranque hace todas estas inicializaciones mínimas.

Agregando a las otras excelentes respuestas:

Las tareas incluyen:

  • Inicializa el hardware
  • Quizás autocomprobación de hardware
  • Inicialice el entorno de tiempo de ejecución para que coincida con el hardware. Esto incluye, por ejemplo, configurar el puntero de la pila para que la pila esté en la RAM, permitiendo llamadas y devoluciones exitosas.
  • Configurar la tabla de vectores de interrupción
  • Cargue e inicie el programa de aplicación
  • Quizás soporte para actualizar el firmware, aunque esto puede hacerse en otra aplicación o por otros medios

El gestor de arranque o cargador de arranque, como la mayoría lo sabrá, desempeña algunos roles clave en un sistema integrado.

En primer lugar y, en mi opinión, ofrece un método seguro para realizar una actualización. Es muy probable que el código de su aplicación cambie con el tiempo y, si este es el caso, no puede actualizar la aplicación mientras se está ejecutando, por lo tanto, necesitará algún otro fragmento de código para hacerlo por usted. Sí, puede actualizar desde una imagen que se ejecuta únicamente desde RAM, pero esto es arriesgado, ya que si extrae energía, se quedará con una imagen corrupta.

En segundo lugar, inicializó la placa a un buen estado conocido que será seguro para que la aplicación se ejecute con mucha menos preocupación por el hardware real.

Estoy seguro de que hay otros puntos buenos, pero esto es lo primero que me viene a la mente.