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?
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.
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.
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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With