Code coverage ISO 26262 support
Software quality assurance in electronic control devices, according to the ISO 26262 standard, is often a fairly difficult task in practice. Especially in real-time-critical multicore systems, typical control-flow-oriented methods, which use instrumentation code additionally built into the Code for Coverage measurement, very quickly reach their limitations. A new non-invasive method now allows for the first time determining the statement (C0 Code Coverage) and branch coverage (C1 Code Coverage) even with optimized code. The measurement is based on code trace data, which were delivered by MCDS, NEXUS, ETM and CoreSight hardware trace channels.
The sophisticated trace configuration management simplifies the collection of trace data for Code Coverage processing. Based on the Universal Emulation Configurator technology a management front-end enhances the generation of trace configuration, which collects the data of specific code ranges for later proof of Code Coverage. A special approach helps to analyze the debug information from the program file to reconstruct the program control flow for all supported methods of Code Coverage analysis. These trace data collection tasks can be used with trace solutions for on-chip trace, external collection of trace data by via Aurora trace interface and up to 4 GB of external trace memory or by execution of test cases via simulator.
UDE provides different views to enable interpretation of code coverage results. The program window displays code coverage information as line marker as result of processing code trace data from coverage analysis of previously collected trace data. The trace code coverage summary chart page contains a bar chart, which displays the C0 and C1 coverage results of all functions, which were hit by the code trace address data of the applied trace configuration.
- Summary chart of the results of coverage of all recorded ranges
- Selecting of ranges and zooming into single code lines
- Displaying and navigating to all uncovered source line ranges instructions
- Re-sorting the chart.
The trace code coverage chart page for a code range (typically a function) contains a bar chart, which displays the code coverage results of all source lines, which belongs to this range. This view provides an efficient method to detect vacancies of the test pattern to accelerate the completion of the proof of coverage.
In order to comply with the requirements for proof of the Code Coverage measurements performed within the overall process for software quality assurance, complete reports including all details must also be generated. These reports could be relevant for future traceability of the measurements performed and their interpretation. The UDE Code Coverage report contains all information, which enables to reconstruct the Code Coverage results:
- Used target application
- Date of measurement
- Line based coverage of C sources
- Address based coverage of machine instructions
- List of unreached ranges and untaken branches
The Code Coverage report can spawn the results of:
- Coverage result of separated functions
- Results of a complete measurement task
- Overall results of different traces
The results of the Code Coverage can be exported as XML file. The XML storage files consist of a common UDE XML export file header and one or more Code Coverage specific data sets:
- Collection of all Code Coverage ranges (functions) of the data set
- Code Coverage of the range in percent
- Code Coverage of each source line in percent
- All instruction, which are not covered by the previous trace and which are not part of a source line range.
- Further reports can be generated from UDE XML export file.
Furthermore Print and Chart image export functions are supported.