The board support package (BSP) (Board Support Package) is a layer between the motherboard hardware and the driver layer program in the operating system. It is generally considered to be part of the operating system, mainly to support the operating system and is for the upper layer. The driver provides a function package to access the hardware device registers, so that it can run better on the hardware motherboard. In the composition of embedded system software, there is BSP. BSP is relative to the operating system. Different operating systems correspond to BSPs with different definitions. For example, the BSP of VxWorks and the BSP of Linux are relative to a CPU. Although the functions are the same, the writing and interface definition are completely Different, so writing BSP must be written according to the definition of the system BSP (most of the BSP programming process is modified on a certain BSP template). In this way, the correct interface with the upper-layer OS can be maintained and the upper-layer OS can be well supported.
In an embedded system, a board support package (English: board support package, BSP for short) is used as a simple code to initialize and run the operating system and for the evaluation board. It usually contains a boot program (English: bootloader) that loads the operating system with basic support code, and drivers for all devices on the motherboard.
Some vendors will also provide a set of root file systems, a toolchain (English: toolchain, which can be part of the architecture support package) for building programs running on the embedded system, and (during operation) configuration devices Utility.
The word appeared around 1988. The origin of the term is most often attributed to the VxWorks embedded operating system given to it by Wind River Systems, but it is now widely used in the industry. For example, QNX Software Systems also provides BSPs. Microsoft also provides BSPs with Windows CE operating system.
The BSP of the Windows CE operating system includes:
OEM Adaptation Layer (OAL)
The BSP provided by Wind River for the ARM Integrator 920T development board includes the following parts (there are other parts not listed):
A config.h file, which defines some constants such as ROM_SIZE and RAM_HIGH_ADRS
A Makefile, which defines a binary version of the VxWorks ROM image, this image is used to program the flash memory
A bootrom file that defines the boot parameters related to this board
A target.ref file describing board-related information, such as switch and jumper settings, interrupts, etc.
One VxWorks image
C code, including:
flashMem.c - Flash memory driver for the development board
pciIomapShow.c - Map PCI bus to file
primeCellSio.c - TTY driver
sysLib.c - routines related to the development board system
romInit.s - the ROM initialization module of the development board, including the entry code of the development board running the program from the ROM
Spartan and Spartan-XL Families Field Programmable Gate Arrays
FPGA Spartan-3A DSP Family 1.8M Gates 37440 Cells 667MHz 90nm Technology 1.2V 676-Pin FBGA
FPGA Spartan-3A DSP Family 3.4M Gates 53712 Cells 667MHz 90nm Technology 1.2V 484-Pin LCSBGA
FPGA Virtex-5 FXT Family 65nm Technology 1V 1738-Pin FCBGA