OTA Software Update Memory Swapping Without Dedicated Flash Space

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing over-the-air (OTA) software update methods do not effectively optimize the available memory space, often requiring dedicated regions for updates, which can lead to inefficiencies.

Innovation Solution

A method and system for OTA software updates that involve swapping and updating application portions in non-volatile memory regions without dedicating a specific region for the update, optimizing memory usage by alternating between two memory regions for different application components.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dedicated regions are allocated for software updates in non-volatile memory, then update reliability is improved, but available memory space is reduced

Engineering Contradiction:
Improveupdate reliabilityVSAvoidavailable memory space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The application is divided into multiple portions (first portion, second portion, etc.) that can be updated independently. Each portion can be stored in different memory regions, allowing incremental updates without requiring dedicated space for entire application updates. This segmentation enables efficient memory utilization while maintaining update reliability through staged updates.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The memory region assignments are dynamic rather than static. The system can swap and relocate application portions between different memory regions (first region, second region) based on update requirements. This dynamic allocation allows the same memory space to serve multiple purposes at different times, maximizing available memory while ensuring update reliability through proper region management.

Inventive Principle:
Principle #15Dynamics

2Quantity of substance

If application portions are swapped between memory regions during updates, then memory space optimization is improved, but update process complexity increases

Engineering Contradiction:
Improvememory space optimizationVSAvoidupdate process complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by downloading and storing updated application portions in temporary memory regions before actually executing them. The updated first portion is stored in the second region, and the updated second portion is stored in the first region, allowing verification and preparation before final deployment. This preliminary action reduces risks while enabling memory optimization through strategic swapping.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses intermediary memory regions as buffers during the update process. These intermediate storage locations facilitate the swapping of application portions without direct overwriting, allowing safe transitions between old and new versions. The intermediary regions act as mediators that simplify the overall update process despite the complexity of memory management.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20260079694A1Techniques for performing software updates
Publication Date: 2026.03.19 TEXAS INSTRUMENTS INC
  • US20260079694A1 patent drawing
  • US20260079694A1 patent drawing
  • US20260079694A1 patent drawing

AI summary

Various embodiments of the present disclosure relate to updating software. In one example embodiment, a technique for performing OTA updates that optimizes the available memory space is provided. The technique first includes executing an application from non-volatile memory, such that a first portion of the application is stored in a first region of non-volatile memory and a second portion of the application is stored in a second region of non-volatile memory. Next, the technique includes receiving an updated first portion of the application and overwriting the second region with the updated first portion. Once overwritten, the technique includes swapping the first portion with the updated first portion. Next, the technique includes receiving an updated second portion of the application and overwriting the second region with the updated second portion. Finally, the technique includes executing the application from non-volatile memory.