To Be or BSP
April 07, 2011
"The beginning is the most important part of the work." — Plato

The start of any project is often what determines the outcome. Embedded software development is no different, although it presents its own unique challenges. The growth in embedded devices means there’s a greater opportunity and likelihood that developers will be working on future devices for applications ranging from consumer to retail to enterprise. There are differences between embedded software and non-embedded software. The architecture is often different from the development environment to the actual device in market. Final hardware may not be available until late in the project, which contributes to real-time constraints and/or threading issues Therefore, having the right tools and access to the final hardware means the difference between having a smooth development process and getting a product to market quickly and the headache of working long, hard hours while debugging code to meet the delivery deadline.

This is where the quality of the board support package (BSP) comes into play. This essential piece of software implements and supports an operating system on the hardware of choice. It helps to initialize the board and get the OS up and running. It’s the first step toward building the functionality and experience that the device will ultimately provide to the end user.

To put it simply, the BSP is the glue between the hardware and the operating system.

BSPs are composed of everything a developer needs to get going: the boot loader that’s used to initialize the board and start the OS; the OEM adaptation layer (OAI), a thin layer of code that resides between the kernel and the hardware platform and is used to isolate specific hardware features, manage timers and device interrupts; device drivers for applications including networking, multimedia and power management; and run-time image configuration files that define system directories, files and links.

But let’s take a step back. The starting point for many embedded projects actually begins with the hardware. Microprocessors from vendors such as Intel, Freescale and Texas Instruments typically determine how and what developers will be able to develop. This elevates the role of the developer in the overall device decision-making process because the desired user experience, functionality and capabilities for completed device are based on the OS. It’s no longer just about the hardware.

So how do you choose a BSP?

It’s standard practice for silicon vendors (SV), system integrators (SI) and independent hardware vendors (IHV) to provide a BSP for a particular hardware platform. While the SVs provide the basic building block, it’s often modified by third-party IHVs and SIs to improve on the design and development process. This can complicate the selection process in terms of finding the right BSP with the right quality level for your needs.

Microsoft Windows Embedded has made it easy to find the right BSP using the Microsoft Developers Network. The network provides an easy-to-search, comprehensive list of BSPs to support hardware such as ARM, OMAP and x86 processors for every Windows Embedded Operating System release.

But finding the right BSP is only part of the development puzzle.

In an ideal world you select the BSP, boot up the OS and start developing on it. But there are times when you find yourself deep into the design cycle and you don’t have the proper driver support in your stack or certain features don’t work as they are intended to. In the past, the quality of the BSP wasn’t always high enough to meet development standards. This is where having the right partners makes all the difference.

Windows Embedded does more than provide easy access to BSPs. By collaborating with an entire partner ecosystem of silicon vendors, IHVs and systems integrators, Windows Embedded has dedicated itself to helping developers complete development projects more easily and quickly so they can bring products to market faster. In part this is because each board support package “in the box” is validated and tested by Microsoft in-house alongside the OS to ensure that hardware and software aligns perfectly. And each board support package “out of the box” that gets validated via the Microsoft Windows Embedded BSP validation program provides an added level of confidence for the BSP, since the program leverages the Microsoft Windows Embedded Operating System test suite.

Through programs like Windows Embedded Design Acceleration, Microsoft teams with SV and SI partners on development boards and reference designs to bring developers an added advantage regardless of the device type. Digital signage is a great example of ecosystem collaboration to bring higher-quality reference designs to enable developers. As we’ve previously discussed, Windows Embedded has closely collaborated with Intel on developing a digital signage platform. Taking this a step further, Microsoft is teaming with integration partners such as Winmate, which has created digital signage evaluation kits and schematics, to make these partner resources available to developers.

So whether you’re looking to develop a thin client device on a TI OMAP platform, a connected media device on Intel Sodaville or an automotive system based on a Freescale iMX platform, Windows Embedded has partner resources from leading integrators and independent software vendors such as Adeneo, MPC Data, BSQUARE and Phytec to help accelerate the development process.

Developers have a strong support network with Windows Embedded. The robust developer community built around the Microsoft Windows Embedded platform and its partner ecosystem was created to help make your projects easier, smarter and better. As a result, developers no longer have to worry about developing from scratch; high-quality BSPs, reference designs and resources are easy to access, so you can get off to the right start.

To learn about the latest Windows Embedded news, check out the Windows Embedded Newsroom or follow us on Twitter at @MSFTWEB.

Read More: