Paquete de soporte para la placa (BSP) - Enciclopedia

En los sistemas embebidos, un paquete de apoyo para la placa (BSP) es la capa de software que contiene cargadores de arranque específicos del hardware, controladores de dispositivos, a veces núcleos del sistema operativo, y otras rutinas que permiten que un sistema operativo embebido específico, por ejemplo un sistema operativo en tiempo real (RTOS), funcione en un entorno de hardware específico (una placa base), integrado con el sistema operativo embebido. El paquete de apoyo para la placa generalmente es proporcionado por el fabricante del SoC (como Qualcomm), y puede ser modificado por el OEM.

Software
Los desarrolladores de hardware de terceros que desean soportar un sistema operativo embebido específico deben crear un BSP que permita que ese sistema operativo embebido se ejecute en su plataforma. En la mayoría de los casos, la imagen del sistema operativo embebido—que contiene el BSP, la licencia de software y el soporte de hardware—es empacada juntos por el vendedor de hardware.
Los BSP suelen ser personalizados, permitiendo al usuario especificar qué controladores y rutinas deben incluirse en la construcción basándose en su selección de opciones de hardware y software. Por ejemplo, una placa de un solo chip podría estar emparejada con varios chips periféricos; en ese caso, el BSP podría incluir controladores para los chips periféricos soportados; al construir la imagen del BSP, el usuario especificaría qué controladores periféricos incluir basándose en su elección de hardware.
Algunos proveedores también proporcionan un sistema de archivos raíz, una herramienta de cadena de herramientas para construir programas que se ejecuten en el sistema embebido, y utilidades para configurar el dispositivo (mientras se ejecuta) junto con el BSP. Muchos proveedores de sistemas operativos embebidos proporcionan plantillas de BSP, asistencia para desarrolladores y conjuntos de pruebas para ayudar a los desarrolladores de BSP a configurar un sistema operativo embebido en una nueva plataforma de hardware.
Además, el BSP debe realizar las siguientes operaciones:

Inicializar el procesador
Inicializar la placa
Inicializar la RAM
Configurar los segmentos
Cargar y ejecutar el sistema operativo desde la memoria flash

Historia
El término BSP ha estado en uso desde 1981 cuando Hunter & Ready, los desarrolladores del Versatile Real-Time Executive (VRTX), primero acuñaron el término para describir el software dependiente del hardware necesario para ejecutar VRTX en una plataforma de hardware específica. Desde los años 80, ha sido ampliamente utilizado en la industria. Casi todos los proveedores de RTOS utilizan ahora el término BSP.
En los sistemas modernos, el término se ha extendido para referirse a paquetes que solo se ocupan de un procesador, no de toda la placa base.

Ejemplo
El paquete de apoyo para la placa de Wind River Systems para el single-board computer ARM Integrator 920T contiene, entre otros elementos, lo siguiente:

Un archivo config.h, que define constantes como ROM_SIZE y RAM_HIGH_ADRS.
Un archivo Makefile, que define versiones binarias de imágenes de ROM de VxWorks para programar en la memoria flash.
Un archivo boot ROM, que define los parámetros de línea de arranque para la placa.
Un archivo target.ref, que describe información específica de la placa como configuraciones de interruptores y saltos, niveles de interrupción y sesgo de offset.
Una imagen de VxWorks.
Varios archivos C, incluyendo:
flashMem.c—the device driver for the board's flash memory
pciIomapShow.c—archivo de mapeo para el bus PCI
primeCellSio.c—controlador TTY
sysLib.c—rutinas específicas del sistema para esta placa
romInit.s—módulo de inicialización de ROM para la placa; contiene el código de entrada para imágenes que se inician desde ROM
Windows CE y Android también utilizan un BSP.

Véase también
BIOS
UEFI

Referencias