The Challenge
The development of a new factory automation product was being held back by an unreliable board support package. To move forward the client needed a VxWorks specialist who could diagnose and fix the BSP and provide a dependable foundation for the product developers.
The Solution
We reviewed the existing code, identifying the root cause of the problems and specifying actions to resolve them. We subsequently redeveloped the board support package, making full use of VxWorks’ inbuilt functionality and adhering closely to Wind River design standards.
The Outcomes
The product developers have remarked that the new board support package and its documentation are of exceptionally high quality and easy to understand and work with. Senior managers were very pleased with the impact this had on the final product quality and timely delivery to customers.
Background to the project
A new factory automation system was being developed using a complex system-on-a-chip (SoC), including a multi-core ARM processor and a field-programmable gate array (FPGA). Large parts of the project had been outsourced to a contractor, including the development of a board support package (BSP) for the Wind River VxWorks real-time operating system (RTOS).
Several customers were already in line as early adopters. However, the project was running into problems and unacceptable delays, not least because the BSP was proving to be buggy and hard to work with.
The project was reallocated to a number of different specialists and Pebble Bay were recommended by another project team within the client organisation. We were asked to review the BSP and provide advice on resolving its issues.
Investigating the board support package
We spent two days on-site with the client investigating the board support package, how it had been written and what would be required to make it perform properly.
Based on many years’ experience with VxWorks we were able to identify and locate the root causes of the problems. We found that many of the issues could be traced back to some custom-written drivers. However, we also recognised that if other parts of the BSP were redeveloped in line with Wind River’s design standards then these custom drivers would be unnecessary, as much of their functionality could be provided natively by the RTOS.
Developing a BSP for VxWorks
The client asked us to re-design and develop the board support package (BSP) to make it reliable, easy to develop against and straight-forward to maintain.
Our designs significantly reduced the complexity of the BSP, improved its modularity and removed unwanted code, making better use of standard software components in VxWorks. We also resolved numerous design and implementation issues in the existing code.
We were also asked to support the client with other coding challenges related to the operating system, including developing application code that interacted closely with the BSP.
The project director commented that the team from Pebble Bay were very easy to manage, working harmoniously with the in-house team and providing detailed monthly updates that simplified their own management reporting.
Delivering results
Building on our board support package, the project was turned around and delivered on time. The project director noted the very high quality of the software, and that the in-house developers were particularly happy working with the BSP and its documentation.
The new product was received very positively by customers and since then the high quality of the code and absence of bugs has been remarked upon. It has continued to enjoy significant commercial success.