Microcontroller Firmware Mapping for Fixed-Address OTA Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In bare-metal systems or operating systems without object code relocation support, firmware must be addressed at a pre-planned execution address, leading to increased code size and prolonged execution times, and existing position independent code/data techniques are inefficient.

Innovation Solution

A micro-controller with a control circuit and management circuit that maps different program codes from an external memory to a specific mapped memory space based on a recorded value, allowing execution at a fixed address without requiring position independent code/data techniques.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If position independent code/data technique is used to enable firmware execution at different addresses, then firmware flexibility is improved, but code size increases and execution time becomes longer

Engineering Contradiction:
Improvefirmware flexibilityVSAvoidexecution time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The management circuit pre-maps the first program code to a specific mapped memory space of the system memory space when the recorded value matches the preset value, and maps the second program code when it does not match. This preliminary mapping action enables the control circuit to directly execute firmware at the correct address without requiring position independent code techniques during runtime, thus reducing execution time while maintaining flexibility

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The management circuit acts as an intermediary between the external memory and the control circuit. It intercepts access commands, reads the recorded value, determines which program code to map based on the recorded value, and performs the mapping before the control circuit executes the firmware. This intermediary mechanism resolves the contradiction by handling the complexity of address mapping separately from the execution path

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If firmware is addressed at a pre-planned execution address in bare-metal systems, then execution efficiency is maintained, but firmware update flexibility is reduced

Engineering Contradiction:
Improveexecution efficiencyVSAvoidfirmware update flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system dynamically changes the mapping of program code based on the recorded value. The management circuit can switch between mapping the first program code and the second program code to the specific mapped memory space depending on the recorded value. This dynamic remapping capability allows the system to maintain fixed address execution for efficiency while enabling firmware updates through value-based selection

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of program code mapping based on the recorded value parameter. When the recorded value changes (e.g., during OTA update), the management circuit changes which program code is mapped to the execution address. This parameter-based control enables both efficient fixed-address execution and flexible firmware updates without requiring position independent code

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12608477B2Micro-controller and management method for executing on-the-air (OTA) updated firmware
Publication Date: 2026.04.21 NUVOTON
  • US12608477B2 patent drawing
  • US12608477B2 patent drawing
  • US12608477B2 patent drawing

AI summary

A micro-controller for executing over-the-air updated firmware is provided to access an external memory. The external memory stores a first program code and a second program code. The micro-controller includes a bus, a control circuit, and a management circuit. The control circuit sends an access command to the bus. The management circuit receives an access command through the bus and reads a recorded value. In response to that the recorded value matches a preset value, the management circuit maps the first program code to a specific mapped memory space of a system memory space. In response to that the recorded value does not match the preset value, the management circuit maps the second program code to the specific mapped memory space.