Embedded Expertise

Why You Should Customize Your Embedded System’s BSP

As an embedded systems developer, you’re often faced with the decision of whether to use the BSP (Board Support Package) provided by your CPU manufacturer or to customize one yourself. While the manufacturer’s BSP may seem like the easier option, there are many compelling reasons to customize your BSP. Here are a few.

This is the second article of the BSP series.

1. Save Costly Resources

Embedded systems often have limited resources. In a volume product, every byte of RAM and Flash space counts. Vendor BSPs, by their very nature, tend to be comprehensive and may include drivers and libraries for features you don’t need. By customizing your BSP, you can eliminate unnecessary components, freeing up valuable RAM and disk space for your core application. This can be critical for devices with tight resource constraints, allowing you to optimize performance and reduce overall system cost.

2. Get better performance

Vendor BSPs are often designed for a wide range of boards that this manufacturer sells, which means they may not be optimized for your specific hardware. Every manufacturer what their product to shine. They tend to demonstrate each and every capability that their hardware can offer.

Most products don’t need all the bells and whistles. This situation can lead to performance issues, such as slower boot times and reduced responsiveness. By customizing your BSP, you can tailor it to your core features, which can and will significantly improve performance.

3. Improve stability and reliability

Vendor BSPs may not be as thoroughly tested as you would like, especially for niche or new hardware. They just collect loads of readily available packages from their web source without further qualification. This can lead to stability and reliability issues.

By customizing your BSP you can conduct rigorous testing and guarantee it aligns with your unique needs. One approach is to leverage debug-specific variants that incorporate firmware validation frameworks like Cukinia, while maintaining the integrity of the production variant.

4. Future-proof your system

If you plan to use your embedded system for several years – some industrial segments like railway demand 30 years of maintenance – you’ll need to make sure that your BSP is up-to-date with the latest software and security patches. Vendor BSPs may not be updated as frequently as you need them to be. They’re frequently not even updated at all!

By customizing your BSP, you can ensure that your system is always up-to-date with the latest improvements and security fixes.

5. Enhance Cybersecurity

Vendor BSPs are often comprehensive packages including features and functionalities that may not be relevant to your specific application. Including unused components in your BSP increases the system’s attack surface, making it more vulnerable to cyberattacks. By customizing your BSP, you can include only the necessary drivers, libraries, and functionalities required for your application. This reduces the system’s complexity and potential security risks.

Most often, the packages that compose a BSP are taken from online resources at the moment the BSP is built. Do you trust those resources? Customizing your BSP is also an opportunity to build your own trusted repo, where you decide the specific version of each package, how to audit it, and when it’s the best time to update it.

If you’re serious about developing high-performance, reliable, and secure embedded systems, then customizing your BSP is essential. While customizing your BSP may seem like a daunting task, there are many resources available to help you get started.

At Embedded Expertise, we have accumulated decades of experience in the development and customization of BSPs for various CPUs and operating environments. Please do contact us for any question about this essential topic.

Board Support Package part 2