BSP - Board support package - Wikipedia

BSP - Board support package - Wikipedia

In embedded systems, a board support package (BSP) is implementation specific support code (software) for a given (device motherboard) board that conforms to a given operating system. It is commonly built with a bootloader that contains the minimal device support to load the operating system and device drivers for all the devices on the board.

Some suppliers also provide a root file system, a toolchain for making programs to run on the embedded system (which would be part of the architecture support package), and configurators for the devices (while running).

History

This term has been in use since about 1988 when VRTX used the term. The origin of the phrase is most commonly attributed to Wind River Systems for its VxWorks embedded operating system because of its extensive device driver offerings, but it is in wider use in the industry now. For example, QNX Software Systems also distributes BSPs, as does Microsoft (for its Windows CE operating system).

Example

The Wind River board support package for the ARM Integrator 920T board contains, among other things, the following elements:

A config.h file, which defines constants such as ROM_SIZE and RAM_HIGH_ADRS.

A Makefile, which defines binary versions of VxWorks ROM images for programming into flash memory.

A bootrom file, which defines the boot line parameters for the board.

A target.ref file, which describes board-specific information such as switch and jumper settings, interrupt levels, and offset bias.

A VxWorks image.

Various C files, including:

flashMem.c — the device driver for the board's flash memory

pciIomapShow.c — mapping file for the PCI bus

primeCellSio.c — TTY driver

sysLib.c — system-dependent routines specific to this board

romInit.s — ROM initialization module for the board; contains entry code for images that start running from ROM

Additionally the BSP is supposed to perform the following operations

Initialize the processor

Initialize the bus

Initialize the interrupt controller

Initialize the clock

Initialize the RAM settings

Configure the segments

Load and run bootloader from flash

嵌入式 驱动程序 特别讲究时空效率

.END

No comments:

Post a Comment