What is a Board Support Package?
A board support package (BSP) is a collection of essential low level software applications configured for a specific microprocessor and its associated hardware. It supplies the drivers for all the hardware in the system andcontainsa bootloader to initialize the microprocessor and hardware prior to loading the operating system. The package may contain additional low level software to assist the developer in initializing the operating system. The BSP can also include a root file system, and a utility to configure the microprocessor and other hardware.By using PNC to develop the BSP, it will allow them to design around their circuit board fabrication capabilities and process.
Board Support Packages are specific to a family of microprocessors and to a specific operating system. A typical BSP may contain drivers and initialization code for:
- Initializing the microprocessor
- The parallel and serial buses
- The volatile and nonvolatile memory
- The display and graphics card,
- Digital and analog I/O
- Camera, wireless modules, user input devices etc.
While a BSP for the hardware is the first requirement for developing a product with embedded software, this doesn’t mean that every company developing embedded software needs to develop their own BSP with the drivers for their specific hardware configuration. There are five reasons to let an outside BSP developer like PNC develop the BSP for your embedded application.
1. The BSP supplied by the microprocessor manufacture is an incomplete solution
The microprocessor manufacturer will typically supply a rudimentary BSP with their evaluation board. This is because manufacturers know that making it easier for the developer to work with the microprocessor is helpful to being selected for the final design and pcb assembly process. However, the manufacturer’s BSP may not have the drivers for the specific hardware in your design – the only way to ensure a BSP fully supports your hardware design is to have it customized for you.
2. Developing device drivers is a specialized skill
Developing the drivers and initialization code BSP requires detailed knowledge of the microprocessor and its peripheral hardware. Most developers writing applications running on an OS do not have the requisite expertise to write the hardware driversunderneath that OS. On the other hand, a group focused only on BSP development like the team at PNC obtains that expertise by working with many hardware platforms every year, and by developing robust tested reference code for common peripherals such as displays and USB ports.
3. A BSP is needed only once for a product
A BSP is needed near the beginning of an embedded software product to allow the developers to work with the target hardware instead of an evaluation PC board or emulation software. Once all drivers are debugged, however, the BSP rarely needs to be touched again except for occasional updates to address hardware end-of-life issues. This is different than the product’s application, which may see multiple releases over the life of the product. Since BSP updates are so infrequent it does not make sense for an organization to maintain that highly specialized expertise for the months or years between BSP updates.
4. The BSP and associated drivers are invisible to the customer
Application software that meets customer needs is a close collaboration between developers, product management, marketing, and sales. Any time spent by the in-house team developing a BSP is time not spent developing features the customer will see and use. Outsourcing the invisible aspects of the product like the BSP allows the development team to stay focused on the customer.
5. Outsourcing the BSP can accelerate product development
Handing off the BSP to an outside supplier like PNC means that the team’s developers are not tied down developing it internally. The BSP supplier can develop the BSP incrementally starting with core functionality followed by drivers for some of the less critical hardware once the development team is ready for it. The outside supplier also brings deep expertise to the driver development, meaning driver development takes less time, and works the first time. The most beneficial reason for PNC to develop your BSP is that they can also fabricate PCB’s as well having in house pcb assembly services.
Talk to the software team at PNC the next time you have a time critical embedded project. Let PNC help you with your Board Support Package, device drivers, operating systems porting, or protocol stacks development.