Skip to main content

Measuring Code Coverage of the Linux Kernel in Accordance with RTCA DO-178C Considerations

The Embedded Open Source Summit (EOSS) serves as a pivotal event for the open source embedded projects and developer communities. This umbrella event brings together various micro conferences, including the Embedded Linux Conference, Zephyr Developer Summit, and Safety-Critical Software Summit, offering a comprehensive platform for collaboration, discussions, and education. If you missed the Safety-Critical Software Summit, you can watch the videos on the ELISA Project Youtube Channel here

This session titled, “Measuring Code Coverage of the Linux Kernel in Accordance with RTCA DO-178C Considerations,” focuses on the code coverage requirements of RTCA DO-178C and how Boeing plans to meet them using the open-source LLVM coverage tools to measure the Linux kernel. Boeing is working to use Linux in numerous safety-critical avionics applications, which involves assuring the software in accordance with DO-178C considerations. Among these considerations are requirements on code coverage, which vary depending on the criticality of the system. These requirements will be discussed, accompanied by code examples to help illustrate what must be measured. Collaborating with the University of Illinois Urbana-Champaign (UIUC), llvm-cov was selected as the tool to collect coverage data. The speaker, Andrew Oppelt, is a Real-Time Software Engineer at The Boeing Company, focusing on real-time and safety-critical applications.

However, as it stands today, llvm-cov cannot generate the data needed to meet DO-178C requirements. Boeing is working with UIUC and the open-source community to enhance llvm-cov to meet its certification needs. Currently, llvm-cov supports statement and decision coverage, with an open merge request for modified condition/decision coverage (MC/DC). In addition to these existing features, object code coverage and design coupling and control coupling (DCCC) are necessary to fulfill DO-178C objectives.

Find about more about the Linux Kernel here.