Virtual Microcontroller for Embedded Software Debugging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current microcontroller development tools lack the ability to directly connect and interact with devices, leading to inefficiencies in software development, testing, and debugging due to limited memory and the need for additional debugging code that exceeds the capabilities of microcontrollers.

Innovation Solution

A system and method utilizing a virtual microcontroller configured to operate within a development tool on a general-purpose computer, providing expanded memory and a microcontroller programmer to develop, test, and debug software, allowing for direct interaction with embedded systems and loading executable code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Difficulty of detecting and measuring

If additional debugging code or data storage is added to the microcontroller, then debugging capability is improved, but memory requirements expand beyond the capabilities of the MCU

Engineering Contradiction:
Improvedebugging capabilityVSAvoidmemory requirements
Core Design Contradiction:
Difficulty of detecting and measuringVSQuantity of substance

Solution Approach 1:

The patent introduces an intermediary debugging system that includes a host computer with expanded memory and a virtual microcontroller. This intermediary system handles the memory-intensive debugging operations externally, allowing the actual microcontroller to maintain its limited memory while still benefiting from comprehensive debugging capabilities. The host computer acts as a mediator between the developer and the resource-constrained microcontroller.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a virtual copy of the microcontroller that runs on the host computer. This virtual microcontroller replicates the architecture and behavior of the actual device, allowing debugging code to be tested and validated in a simulated environment before being deployed to the real microcontroller. This copying approach enables extensive debugging without consuming additional memory on the target device.

Inventive Principle:
Principle #26Copying

2Productivity

If the development process includes compiling, linking, and loading code into the MCU, then code execution is achieved, but time is consumed and validity of program logic cannot be guaranteed without running on the actual MCU

Engineering Contradiction:
Improvecode execution capabilityVSAvoidcompiling, linking, and loading time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent enables preliminary testing and validation of program logic on the virtual microcontroller before the actual compiling, linking, and loading process. By performing debugging and logic verification in advance on the simulated platform, developers can identify and fix issues before deploying to the real microcontroller, thereby reducing the need for iterative compiling and loading cycles.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The virtual microcontroller provides immediate feedback on program logic validity during the development phase, eliminating the delay associated with physical MCU testing. The system allows developers to observe execution behavior, detect errors, and validate logic in real-time within the simulated environment, significantly reducing the overall development time cycle.

Inventive Principle:
Principle #23Feedback

3Ease of manufacture

If conventional development tools are used that do not allow direct connection with the device, then standard development processes are maintained, but the developer has no guarantee of the validity of actual program logic until code is run on the MCU

Engineering Contradiction:
Improvestandard development processVSAvoidprogram logic validity
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The virtual microcontroller serves as an intermediary that bridges the gap between conventional development tools and the actual microcontroller. It maintains compatibility with standard development workflows while providing enhanced reliability by enabling program logic validation in a controlled simulated environment before physical deployment.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

By creating a faithful virtual copy of the microcontroller, the system allows program logic to be tested and validated with high reliability in the virtual environment. This copying approach ensures that the behavior observed in simulation accurately reflects the actual microcontroller's behavior, providing confidence in program logic validity before physical testing.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11921614B2System and method for developing, testing and debugging software for microcontrollers
Publication Date: 2024.03.05 SNABB IP LLC
  • US11921614B2 patent drawing
  • US11921614B2 patent drawing
  • US11921614B2 patent drawing

AI summary

Various implementations of the invention develop executable code for an embedded system, including a microcontroller and a device. Some implementations of the invention comprise a microcontroller development tool configured to operate on a general purpose computer. In some implementations, the development tool comprises: 1) a virtual microcontroller configured to operate within the development tool in a manner substantially identical to an operation of the microcontroller of the embedded system, wherein the virtual microcontroller operates within the development tool using op codes native to that of the microcontroller, the virtual microcontroller further configured to receive inputs from and provide outputs to the device of the embedded system, 2) an expanded memory beyond a memory available to the microcontroller, the expanded memory available to the virtual microcontroller and configured to store op codes or data for the virtual microcontroller to assist with development of executable code, and 3) a microcontroller programmer configured to transfer executable code to a memory of the microcontroller, wherein the executable code is developed within the development tool; and a microcontroller coupler configured to couple the development tool to the embedded system.