OTA Software Update Memory Swapping Without Dedicated Flash Space
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Quantity of substance
If application portions are swapped between memory regions during updates, then memory space optimization is improved, but update process complexity increases
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.
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.
Data Source
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.


