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

What are the Important Considerations when Assessing Cobot Safety?

April 16, 2024
A review of the requirements of ISO/TS 15066 and how they fit in with ISO 10218-1 and 10218-2 a consideration the complexities of collaboration.

Wire & Cable Cutting Digi-Spool® Service

April 16, 2024
Explore DigiKey’s Digi-Spool® professional cutting service for efficient and precise wire and cable management. Custom-cut to your exact specifications for a variety of cable ...

DigiKey Factory Tomorrow Season 3: Sustainable Manufacturing

April 16, 2024
Industry 4.0 is helping manufacturers develop and integrate technologies such as AI, edge computing and connectivity for the factories of tomorrow. Learn more at DigiKey today...

Connectivity – The Backbone of Sustainable Automation

April 16, 2024
Advanced interfaces for signals, data, and electrical power are essential. They help save resources and costs when networking production equipment.

Comments

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