Flash Memory Bank Live Firmware Update via Bootloader Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing firmware updating technologies face challenges in performing live firmware updates in flash memory without disrupting interrupt service requests, especially in scenarios where continuous system operation is critical.

Innovation Solution

The implementation of a flash memory bank with both application and bootloader portions, where the bootloader portion manages the live firmware update process by receiving and writing new instructions while maintaining interrupt response, initializing variables, disabling interrupts, updating the stack and interrupt vectors, and re-enabling interrupts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If flash memory is updated with new firmware instructions, then the firmware is updated successfully, but interrupt service requests may be disrupted during the update process

Engineering Contradiction:
Improveinterrupt service request continuityVSAvoidfirmware update process
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The flash memory is divided into multiple banks, allowing the system to update one bank while another bank remains active and handles interrupt service requests. This segmentation enables continuous operation during firmware updates by switching between banks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by preparing update data in advance and validating it before committing to the flash memory update. The bootloader portion verifies the integrity and compatibility of new firmware instructions before executing the update, ensuring interrupt service requests are not disrupted.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the system performs live firmware updates without halt or reboot, then system availability is maintained, but the complexity of managing flash memory updates increases

Engineering Contradiction:
Improvesystem availabilityVSAvoidflash update software
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The bootloader portion automatically manages the firmware update process, including validating update data, switching between flash memory banks, and restoring interrupt service requests. This self-service mechanism reduces the need for external intervention and simplifies the overall system complexity while maintaining high availability.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The bootloader acts as an intermediary between the update process and the running system. It mediates the transition by managing flash memory bank switches and ensuring interrupt service requests are properly handled during updates, thereby maintaining system availability without requiring complex external coordination.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If a single flash memory bank is used instead of multiple banks, then device complexity is reduced, but the ability to perform live updates without interrupt disruption is compromised

Engineering Contradiction:
Improveflash memory structureVSAvoidinterrupt service request continuity
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The flash memory is segmented into multiple banks within the single memory structure, allowing simultaneous read and write operations. This segmentation enables the system to read from one bank while writing to another, ensuring interrupt service requests continue uninterrupted during firmware updates.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system maintains a copy of the firmware in an active bank while updating a standby bank. This copying approach allows the system to switch between banks seamlessly, ensuring that interrupt service requests are never disrupted even during the update process.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS20250036280A1Live firmware update of flash memory
Publication Date: 2025.01.30 TEXAS INSTRUMENTS INC
  • US20250036280A1 patent drawing
  • US20250036280A1 patent drawing
  • US20250036280A1 patent drawing

AI summary

In described examples, a flash memory bank includes application and bootloader portions. The application portion stores first instructions for performing an interrupt service routine (ISR). The bootloader portion stores second instructions for: causing the flash memory bank to receive new first instructions for performing the ISR and write the new first instructions to replace old first instructions, and executing the new first instructions. The new first instructions execute the following steps in order. First, while maintaining an interrupt response, initializing variables specified by the new first instructions and not specified by the old first instructions, and not changing variables specified by the old first instructions. Second, after determining there is no interrupt response in process, disabling the interrupt response and proceeding to a third step. Third, initializing a stack, updating an interrupt vector, and updating a function pointer. Fourth, re-enabling the interrupt response.