Emutex developed a Yocto Linux BSP for a family of medical device products based on an ARM Cortex-A8 SoC.
INTRODUCTION
Our Linux BSP team in Emutex was recently engaged by a customer to create a Yocto Linux Board Support Package (BSP) for a range of its medical device products. These devices are based on an ARM® Cortex™-A8 SoC, are battery-powered, and include key features such as wireless communications, high-accuracy digital sensors, audio and touch-screen HMI. Key considerations for this software project included low power consumption and memory footprint, high reliability, and ease of maintenance of the software stack across all variants in this family of products.
THE EMUTEX APPROACH
Following initial project requirements gathering and planning, we first conducted a thorough review of the hardware schematics and component datasheets, and then proceeded to define the Device-Tree and adapt the U-Boot boot loader and Linux kernel source code, creating or modifying low-level configuration and driver code to enable all components on the board. We worked closely with the customer’s internal engineering team to bring their hardware to life, creating and executing software tests and checking the signals and I/O interfaces on the board to ensure correct functionality, debugging issues down to hardware level, and reworking the board where needed to evaluate potential hardware fixes and minimise the number of PCB revisions required.
To ease the software maintenance burden, we created a Yocto BSP meta layer which integrated seamlessly with the Yocto-based SDK provided by the SoC vendor. The meta layer provides a modular encapsulation of the BSP patches, configuration scripts, data files, and source code specific to the customers products, stored in a version-controlled git repository. Use of the Yocto framework ensures consistent and reproducible software builds, easy integration of security patches and SDK updates, access to a vast library of application “recipes” for quickly adding new features, full traceability of all software elements and their licenses, and a high degree of control over the selection of software packages to minimise the memory footprint.
To ensure the reliability of the product and to ease the maintenance of a common BSP used across multiple hardware design variants, our team also developed a suite of tests on top of a bespoke test automation system (based on pytest) to facilitate rapid regression testing of each software change across the product family.
CONCLUSIONS
This is just one example of the work that Emutex has completed to enable customers to bring new hardware designs to life with software. For other examples, and to learn more about the services and solutions that Emutex can provide, please visit our website at www.emutex.com.