By Dennis Wong
In an earlier post of this blog series, our team discussed the phases of embedded development. The bring up phase is unique to embedded development because embedded systems are tightly coupled with their hardware which is often customized for its unique application. Getting early hardware and software operational is critical in the bring up phase and can be a real productivity inhibitor if problems arise.
Unique to embedded development, this phase is where developers configure and integrate operating systems, board support packages, and hardware. The risk during this phase include:
- Unforeseen defects in hardware
- Availability of reference hardware
- Missing driver support
- Porting of roll your own solution to new hardware
Transforming the Bring Up Phase
Board Support Engineering – Development teams can spend too much critical time and resources on in-house board support code, operating systems, and tools. COTS offerings provide proven platforms to accelerate the bring-up phase. Critical to getting your team up and running are board support engineering services to customize and optimize the commercial operating systems to the device’s unique hardware design. Doing this work in-house increases costs and risks, and doesn’t result in product features that make money.
Operating System Platforms – The bring-up phase can be extremely time-consuming for RYO solutions. A team is needed to build and maintain the operating platform, but also the board support for the various target systems you plan to deploy. COTS solutions with broad hardware support greatly reduce the risk and cost at this stage.
System and Board-Level Simulation – It’s commonplace in embedded development that your product target platform simply isn’t ready or even available yet from your hardware vendor. For example, Simics provides full system and board-level simulation for even the most sophisticated hardware platforms. Early and ubiquitous access to your target platform pays huge dividends in productivity during this critical hardware bring-up phase.
Debug and Development Tools – As development teams validate their designs—or simulated environments—against actual hardware, they need efficient ways to identify and resolve system-level bugs and perform optimization on both the software and hardware architectures.
In the next post of our series, we’ll discuss the develop phase, where the implementation of the product really takes place.