Electronicdesign 8148 Icpromo

What’s the Difference Between a BSP and SDK?

July 1, 2015
On the surface, a board support package (BSP) and a software development kit (SDK) seem to be interchangeable, but several key attributes separate the two.

When embedded developers obtain a board or chip, it’s typically tied to a board support package (BSP) or software development kit (SDK). So what’s the difference between the two? Not all that much upon first glance. That’s because they often contain the same types of items, including documentation about the target platform, run-time support with a matching application programming interface (API), and possibly some support libraries and tools.

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. A BSP for a microcontroller will often be designed to support “bare metal” applications or those that run without a standard operating system. The application may utilize interrupts and implement its own operating system.

For an SDK, in terms of software, the target may be an API, middleware, or an operating system. Of course, middleware and operating systems can have many APIs for different functional areas. An SDK that targets hardware often includes or supports one or more BSPs.

An SDK often will be built on top of standard interfaces or loaders like a BIOS or a UEFI system (see “Bye Bye BIOS. Hello UEFI”). The latest crop of PC-compatible motherboards use UEFI as well as many embedded motherboards and modules.

Generally, SDKs include more library support than a BSP. A BSP’s libraries more or less support the target, many times providing hooks into hardware accelerators such as encryption support. SDK libraries often feature algorithms not tied to the underlying hardware; for example, an SDK might include an FFT or sorting algorithm.

Another difference between the two is that SDKs will likely hide the underlying hardware, while a BSP exposes it. On top of that, SDKs sometimes get hidden behind new names like Embedded Development Kit (EDK) or similar variations.

In any case, a BSP or SDK is designed to reduce the time to get an application to market. 

Sponsored Recommendations

The Importance of PCB Design in Consumer Products

April 25, 2024
Explore the importance of PCB design and how Fusion 360 can help your team react to evolving consumer demands.

PCB Design Mastery for Assembly & Fabrication

April 25, 2024
This guide explores PCB circuit board design, focusing on both Design For Assembly (DFA) and Design For Fabrication (DFab) perspectives.

What is Design Rule Checking in PCBs?

April 25, 2024
Explore the importance of Design Rule Checking (DRC) in manufacturing and how Autodesk Fusion 360 enhances the process.

Unlocking the Power of IoT Integration for Elevated PCB Designs

April 25, 2024
What does it take to add IoT into your product? What advantages does IoT have in PCB related projects? Read to find answers to your IoT design questions.

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!