Board support package
Encyclopedia
In embedded systems, a board support package (BSP) is implementation specific support code for a given (device motherboard) board that conforms to a given operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

. It is commonly built with a bootloader that contains the minimal device support to load the operating system and device driver
Device driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....

s for all the devices on the board.

Some suppliers also provide a root file system, a toolchain
Toolchain
In software, a toolchain is the set of programming tools that are used to create a product...

 for making programs to run on the embedded system
Embedded system
An embedded system is a computer system designed for specific control functions within a larger system. often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal...

 (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
Versatile Real-Time Executive
Versatile Real-Time Executive is a real-time operating system nowadays developed and marketed by the company Mentor Graphics. VRTX is suitable for both traditional board-based embedded systems and SoC architectures....

 used the term. The origin of the phrase is most commonly attributed to Wind River Systems for its VxWorks
VxWorks
VxWorks is a real-time operating system developed as proprietary software by Wind River Systems of Alameda, California, USA. First released in 1987, VxWorks is designed for use in embedded systems.- History :...

 embedded operating system because of its extensive device driver offerings, but it is in wider use in the industry now. For example, QNX
QNX
QNX is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market. The product was originally developed by Canadian company, QNX Software Systems, which was later acquired by Canadian BlackBerry-producer Research In Motion.-Description:As a microkernel-based...

 Software Systems also distributes BSPs, as does Microsoft (for its Windows CE
Windows CE
Microsoft Windows CE is an operating system developed by Microsoft for embedded systems. Windows CE is a distinct operating system and kernel, rather than a trimmed-down version of desktop Windows...

 operating system).

Example

The Wind River
Wind River Systems
Wind River Systems, Inc. is a company providing embedded systems, development tools for embedded systems, middleware, and other types of software. The company was founded in Berkeley, California in 1981 by Jerry Fiddler and David Wilner. On June 4, 2009, Wind River announced that Intel had bought...

 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
    Flash memory
    Flash memory is a non-volatile computer storage chip that can be electrically erased and reprogrammed. It was developed from EEPROM and must be erased in fairly large blocks before these can be rewritten with new data...

    .
  • 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
  • Initializes the processor
  • Initialize the bus
  • Initialize the interrupt controller
  • Initialize the clock
  • Initialize the RAM settings
  • Configure the segments, as per the BSP package
  • Load and run bootloader from flash
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK