En sistemas integrados , un paquete de soporte de placa ( BSP ) es la capa de software que contiene firmware de arranque específico del hardware , firmware de tiempo de ejecución y controladores de dispositivos y otras rutinas que permiten que un sistema operativo integrado determinado , por ejemplo un sistema operativo en tiempo real (RTOS), funcione en un entorno de hardware determinado (una placa base ), integrado con el sistema operativo integrado. [1] [2] [3] El paquete de soporte de placa generalmente lo proporciona el fabricante del SoC (como Qualcomm ), y puede ser modificado por el OEM .
Software
Los desarrolladores de hardware de terceros que deseen brindar soporte a un sistema operativo integrado determinado deben crear un BSP que permita que dicho sistema operativo integrado se ejecute en su plataforma. En la mayoría de los casos, el proveedor del hardware agrupa la imagen del sistema operativo integrado y la licencia de software , el BSP que la contiene y el hardware.
Los BSP suelen ser personalizables, lo que permite al usuario especificar qué controladores y rutinas se deben incluir 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 podría estar emparejada con varios chips periféricos; en ese caso, el BSP podría incluir controladores para los chips periféricos compatibles; al compilar la imagen del BSP, el usuario especificaría qué controladores periféricos 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 ejecuten en el sistema integrado y utilidades para configurar el dispositivo (mientras se ejecuta) junto con el BSP. Muchos proveedores de sistemas operativos integrados proporcionan plantillas de BSP, asistencia para desarrolladores y conjuntos de pruebas para ayudar a los desarrolladores de BSP a configurar un sistema operativo integrado en una nueva plataforma de hardware.
Historia
El término BSP se utiliza desde 1981, cuando Hunter & Ready, los desarrolladores de Versatile Real-Time Executive (VRTX), acuñaron 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 sistemas operativos en tiempo real utilizan ahora el término BSP.
En los sistemas modernos, el término se ha ampliado para referirse a paquetes que solo tratan con un procesador, no con toda la placa base. [1]
Windows CE y Android también utilizan un BSP.
Ejemplo
El paquete de soporte de placa Wind River Systems para la computadora de placa única ARM Integrator 920T contiene, entre otras cosas, estos 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 ROM de arranque, que define los parámetros de la línea de arranque de la placa.
- Un archivo target.ref, que describe información específica de la placa, como configuraciones de interruptores y puentes, niveles de interrupción y polarización de compensación.
- Una imagen de VxWorks .
- Varios archivos C , incluidos:
- flashMem.c: el controlador del 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 de 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, 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 flash
Véase también
Referencias
- ^ ab Cohen, Alan (11 de agosto de 2015). Prototipo a producto: una guía práctica para llegar al mercado . O'Reilly Media . ISBN 978-1-4493-6228-7.
- ^ Labrosse, Jean J. (14 de septiembre de 2007). Software integrado: saberlo todo . Newnes. ISBN 978-0-7506-8583-2.
- ^ Noergaard, Tammy (1 de febrero de 2018). Sistemas operativos integrados y paquetes de soporte de placa: desmitificación de los sistemas integrados . Elsevier Science . ISBN 978-0-12-420082-1.