Let’s suppose you’ve learned about the release of a new processor. It has features that you’d like to include in your new product. The next step is developing drivers and other software for it. There are two main options: BSP and SD. But what is BSP? And what is SDK? And what’s the difference between a BSP and SDK?
What Is BSP?
BSP stands for broad support package. The typical broad support package is going to aid in the development of low-level software for a specific “board”. For example, a broad support package or BSP will provide device drivers for a given evaluation board and examples of off-chip and on-chip peripherals intended for use with specific peripherals. This is why BSPs are often provided by the board manufacturer and can be found on the product page. It may or may not be tailorable via an API or application programming interface. The API board support package development.
What Is SDK?
SDK stands for software development kit. The term software development kit may be misleading because anyone can label a printed circuit board or microchip a software development kit regardless of how complete or complex it is.SDKs were made necessary by the increasing complexity of microchips. You couldn’t just use an EEPROM with startup code and data on a datasheet. It became necessary to include pre-installed boot-up code and development tools so that engineers could start coding the built-in software for their device, whether it was a chip controlling airbag deployment or a motor controller in a generator.
What Is the Difference Between BSP and SDK?
BSPs target specific hardware, whether it is a single board or a family of boards. An SDK can target hardware or software. Furthermore, one SDK will generally work with a wide range of boards including those from a variety of manufacturers. In summary, BSPs tend to be not just brand specific but only serve a product line.
SDK have far more functionality than a BSP. Good software development kits can be used to tailor anything from device drivers to software applications. Broad support packages don’t have the software and tools to handle more than a minimum number of peripherals connected to the eval board. For example, the bootloader or boot manager will be different for different operating systems. You can run into problems when the semiconductor vendor provides a Linux-based BSP when you use Windows. Linux is a common choice because the vendor doesn’t have to pay royalties to include it in the eval kit and can alter it at will. And the BSP software may be just enough to demonstrate that the system-on-chip (SOC) peripherals work. This means the BSP may initialize peripherals and set environmental parameters as necessary to work only with the embedded operating system. And you don’t have control over what OS that is. This could affect what hardware you use in your product.
On the other hand, not all boards have a BSP. In these cases, you are going to combine a variety of hardware-specific components with a build system. And you’ll probably be developing everything from drivers to apps with the SDK if the drivers and other software you need isn’t already available. Note that this is one of the reasons why there is confusion between SDKs and BSPs – they may be used interchangeably when there is no BSP. However, you get the benefit of complete control over the software and flexibility in what drivers and software you use. The solution in these cases is to use a software development kit to make up for the lack of a BSP. When there is a BSP, you need to find an SDK that will work with it.
WRITTEN BY
Brand Voices