En los sistemas integrados , un paquete de soporte de placa ( BSP ) es la capa de software que contiene controladores específicos de hardware y otras rutinas que permiten que un sistema operativo en particular (tradicionalmente un sistema operativo en tiempo real, o RTOS ) funcione en un entorno de hardware en particular ( una computadora o tarjeta CPU ), integrado con el propio RTOS. Los desarrolladores de hardware de terceros que deseen admitir un RTOS en particular deben crear un BSP que permita que RTOS se ejecute en su plataforma. En la mayoría de los casos, la imagen y la licencia de RTOS, el BSP que la contiene y el hardware están agrupados por el proveedor de hardware.
Los BSP suelen ser personalizables, lo que permite al usuario especificar qué controladores y rutinas deben incluirse en la compilación en función de su selección de opciones de hardware y software. Por ejemplo, una computadora de placa única en particular puede emparejarse con cualquiera de varias tarjetas gráficas; en ese caso, el BSP podría incluir un controlador para cada tarjeta gráfica compatible; al crear la imagen BSP, el usuario especificaría qué controlador de gráficos incluir en función de su elección de hardware.
Algunos proveedores también proporcionan un sistema de archivos raíz, una cadena de herramientas para crear programas que se ejecutarán en el sistema integrado y utilidades para configurar el dispositivo (mientras se ejecuta) junto con el BSP. Muchos proveedores de RTOS proporcionan plantillas de BSP, asistencia para desarrolladores y conjuntos de pruebas para ayudar a los desarrolladores de BSP a implementar el RTOS en una nueva plataforma de hardware.
Historia
El término "BSP" se ha utilizado desde 1981 cuando Hunter & Ready, los desarrolladores de VRTX , acuñaron por primera vez el término para describir el software dependiente del hardware necesario para ejecutar VRTX en una plataforma de hardware específica. Desde la década de 1980 se ha utilizado ampliamente en toda la industria. Prácticamente todos los proveedores de RTOS ahora usan el término BSP.
Ejemplo
El paquete de soporte de placa Wind River para la computadora de placa única ARM Integrator 920T contiene, entre otras cosas, los siguientes elementos:
- Un archivo config.h, que define constantes como ROM_SIZE y RAM_HIGH_ADRS.
- Un Makefile, que define versiones binarias de imágenes ROM de VxWorks para programar en memoria flash .
- Un archivo de bootrom, que define los parámetros de la línea de arranque para la placa.
- Un archivo target.ref, que describe información específica de la placa, como la configuración de conmutadores y puentes, los niveles de interrupción y el sesgo de compensación.
- Una imagen de VxWorks .
- Varios archivos C, que incluyen:
- flashMem.c: el controlador de dispositivo para la memoria flash de la placa
- pciIomapShow.c: archivo de mapeo para el bus PCI
- primeCellSio.c: controlador TTY
- sysLib.c: rutinas dependientes del sistema específicas para esta placa
- romInit.s: módulo de inicialización de ROM para la placa; contiene el código de entrada para las imágenes que comienzan a ejecutarse desde la ROM
Además, se supone que el BSP realiza las siguientes operaciones
- Inicializar el procesador
- Inicializar el bus
- Inicializar el controlador de interrupciones
- Inicializar el reloj
- Inicializar la configuración de RAM
- Configurar los segmentos
- Cargue y ejecute el cargador de arranque desde flash