Non-intrusive Embedded Software Verification via Virtual Prototyping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Verification and debugging of embedded software in embedded systems are challenging due to the difficulty in simulating real-time behavior without disrupting the system, as existing methods require physical prototypes and instrumentation that can alter the processor's behavior and slow down operations.
Innovation Solution
A computing system is configured to simulate an embedded system, compile and execute embedded software with instrumentation code, allowing non-intrusive tracing and profiling without altering the system's behavior by using a virtual prototyping tool that includes a simulation unit, instrumentation tool, and debug tool to gather information on the software's execution without modifying the source code or recompiling it.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If instrumentation is added to physical prototype hardware and embedded software to enable verification and debugging, then information gathering capability is improved, but the system's real-time behavior is altered and operation speed is reduced
Solution Approach 1:
The patent creates a virtual copy of the embedded system that replicates the hardware architecture and executes the embedded software. This virtual prototype allows comprehensive verification and debugging through instrumentation without affecting the actual physical system's real-time behavior. The virtual environment captures execution traces and profiling data while the original system continues to operate normally.
2Measurement precision
If instrumentation code is inserted into compiled embedded software to trace and profile execution, then verification capability is improved, but runtime operation is slowed down
Solution Approach 1:
Instead of instrumenting the actual embedded software, the patent instruments a copy executed in the virtual prototype environment. The instrumentation code runs on the virtual processor rather than the physical processor, eliminating the performance penalty from the real system while still providing detailed execution traces and profiling information for verification purposes.
3Loss of information
If physical prototypes with instrumentation are used for software verification, then debugging information is obtained, but system complexity and resource requirements increase
Solution Approach 1:
The patent replaces complex physical hardware instrumentation with a software-based virtual prototype that replicates the embedded system's hardware architecture. This virtualization approach provides comprehensive debugging information through software instrumentation without requiring physical probes, monitoring components, or specialized hardware storage, thereby reducing overall system complexity.
4Reliability
If instrumentation is added to verify embedded software on physical boards, then verification effectiveness is improved, but the embedded system's original behavior is hidden
Solution Approach 1:
The patent performs verification on a virtual copy of the embedded system rather than the original physical system. The virtual prototype accurately replicates the hardware behavior and execution characteristics, allowing effective verification while the original system continues to operate unchanged, preserving its original behavior for comparison and validation.
Data Source
AI summary
This application discloses a computing system configured to simulate an embedded system including a processor capable of executing embedded software, compile the embedded software into a format capable of execution by the computing system, insert instrumentation code into the compiled embedded software, and execute the compiled embedded software and the instrumentation code. The execution of the compiled embedded software can simulate execution of the embedded software by the processor in the simulated embedded system, while the execution of the instrumentation code can configure the computing system to gather information corresponding to the execution of the compiled embedded software.


