Microcontroller Function Table for Dynamic Code Addition

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for adding functionalities to microcontroller programs either require updating the entire program, modifying the initial program, or using a license system, which can be resource-intensive and vulnerable to security threats.

Innovation Solution

A method that allows adding additional functions to a microcontroller program by using a table to associate function identifiers with memory addresses, enabling the program to dynamically access and execute new functions without modifying the initial program or requiring a license system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the entire program is updated to add functionalities, then the additional functionalities can be added, but a significant quantity of data must be downloaded and memory resources are consumed

Engineering Contradiction:
Improvefunctionality additionVSAvoidmemory usage
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent segments the program into a core immutable part and separate additional functions. Each additional function is stored independently in memory with its own entry point registered in a function table, allowing selective loading without requiring the entire program to be updated or stored.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If the entire program is updated to add functionalities, then the additional functionalities can be added, but the update process is complex and time-consuming

Engineering Contradiction:
Improvefunctionality additionVSAvoidupdate time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The core program is pre-configured with a function table and entry point mechanisms that anticipate future function additions. This preliminary structure allows additional functions to be integrated directly without complex update procedures, reducing update time significantly.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If a license system is used to activate unavailable functionalities, then functionalities can be controlled, but the system becomes complex and vulnerable to security attacks

Engineering Contradiction:
Improvefunctionality controlVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the functionality activation mechanism from complex license systems. Instead of using licenses, it uses a simple function table with registered entry points that directly map function identifiers to memory addresses, eliminating the need for complex licensing infrastructure while maintaining control.

Inventive Principle:
Principle #2Taking out (Extraction)

4Adaptability or versatility

If a license system is used to activate unavailable functionalities, then functionalities can be controlled, but the system is vulnerable to hardware attacks

Engineering Contradiction:
Improvefunctionality controlVSAvoidsecurity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent implements security by storing the core program in a protected read-only memory region that cannot be modified, while additional functions are loaded into a separate writable memory region. This prior separation cushions against hardware attacks that might attempt to modify the core program, as the critical security-coding portion remains immutable.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS12321739B2Microcontroller, computer program product, and method for adding an additional function to a computer program
Publication Date: 2025.06.03 STMICROELECTRONICS (GRAND OUEST) SAS
  • US12321739B2 patent drawing
  • US12321739B2 patent drawing

AI summary

According to one aspect, a method adds an additional function to a computer program installed on a microcontroller, the computer program using a table configured to associate an identifier of the additional function with a pointer to a memory address. The method includes the microcontroller obtaining a compiled code of the additional function and an identifier of this additional function, the microcontroller recording the compiled code of the additional function in a section of a memory, and recording in memory a pointer in the table, the pointer being aimed at the address of the memory section in which the compiled code of the additional function is recorded, the pointer being associated in the table with the identifier of the additional function.