Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Embedded Board Support Package

Tags:

embedded

bsp

As I understand, a BSP (Board Support Package) contains bootloader, kernel and device driver which help OS to work on HW. But I'm confused because OS also contains a kernel. So what is the difference between the kernel in OS and the kernel in BSP?

like image 389
TuanPM Avatar asked Nov 09 '16 14:11

TuanPM


People also ask

What is meant by board support package?

A board support package (BSP) is essential code code for a given computer hardware device that will make that device work with the computer's OS (operating system). The BSP contains a small program called a boot loader or boot manager that places the OS and device drivers into memory.

What are the components required in board support package?

The BSP often includes the bootloader (e.g., Das U-Boot, Barebox, etc.), a Hardware Abstraction Layer (HAL) or an embedded OS (e.g., Linux, ThreadX, Integrity® RTOS, VxWorks), peripheral drivers, and various utilities. Not all boards have BSPs, however.

How do I create a board support package?

To create a new Board Support Package (BSP) for external tools, do the following: Click File > New > Board Support Package. Type a name for the instance of the BSP in the Project name field, or accept the default value. Select the location for the BSP project files.

What is the difference between SDK and BSP?

Generally, the main difference is that a BSP targets hardware and usually a specific board or family of boards, while an SDK can target hardware or software. The BSP provides a way to access and configure the hardware using an API supplied with the BSP. These days, this comprises a set of C or C++ header files.


1 Answers

What a BSP comprises of depends on context; generically it is code or libraries to support a specific board design. That may be provided as generic code from the board supplier for use in a bare-metal system or for integrating with an OS, or it may be specific to a particular OS, or it may even include an OS. In any case it provides board specific support for higher-level software.

A kernel is board agnostic (though often processor architecture specific), and makes no direct access to hardware not intrinsic to the processor architecture on which it runs. Typically an OS or application will require a Hardware Abstraction Layer (HAL); the HAL may well be built using the BSP, or the BSP may in fact be the HAL. A vendor may even package a HAL and OS and refer to that as a BSP.

The term means what it means to whoever is using it - context is everything. For example in VxWorks, WindRiver use the term BSP to refer to the layer that supports the execution of a VxWorks based application on a specific hardware design. A board vendor on the other hand may provide a complete Linux distribution ported to the board and refer to that as a BSP.

However and to what extent a particular vendor or developer chooses to support a board is a board support package regardless of how much or how little it may contain.

like image 57
Clifford Avatar answered Oct 22 '22 03:10

Clifford