Embedded Firmware Updates with Partitioned Differential Compression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing firmware update methods for IoT devices face challenges due to limited computing power, memory resources, and storage space, leading to high traffic and time consumption, and lack of compatibility across devices with varying functions and resources.
Innovation Solution
A firmware update method for embedded devices that includes a bootloader program and a firmware update acquisition program, utilizing differential and compression updates, along with data processing in the bootloader program to optimize memory usage and support multiple update modes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional FOTA update methods are used on IoT devices, then firmware can be updated remotely, but traffic consumption and time consumption increase significantly
Solution Approach 1:
The firmware is segmented into multiple partitions (e.g., first partition and second partition) that can be updated independently. The update acquisition program selectively updates only necessary partitions rather than the entire firmware, reducing update time and traffic consumption while maintaining reliable firmware update capability.
Solution Approach 2:
The bootloader program performs preliminary verification of update packages before full installation. It checks integrity, validates partitions, and prepares the system for selective updates, which reduces unnecessary data transmission and accelerates the overall update process.
2Reliability
If traditional FOTA update methods are used on IoT devices, then firmware can be updated remotely, but traffic consumption increases significantly
Solution Approach 1:
The firmware update is divided into selective partition updates. The update acquisition program identifies which specific partitions need updating and transmits only those portions, significantly reducing traffic consumption while ensuring reliable updates are applied where needed.
Solution Approach 2:
The system changes the parameter of update granularity from whole-firmware to partition-level. By controlling the scope and size of update data transmitted based on actual needs, traffic consumption is reduced while maintaining update reliability.
3Device complexity
If a unified firmware update solution is adopted, then implementation is simplified, but compatibility across devices with varying functions and resources is reduced
Solution Approach 1:
The update acquisition program is designed with multi-functionality to handle different update scenarios. It can perform full firmware updates, selective partition updates, and verification operations, making it universally applicable across devices with varying functions and resources while maintaining adaptability.
Solution Approach 2:
The update mechanism dynamically adapts to different device configurations and requirements. The system can adjust update strategies based on available resources, partition structures, and specific device needs, providing both simplicity through a unified approach and versatility through adaptive behavior.
4Quantity of substance
If limited memory resources are used in IoT devices, then device size and cost are reduced, but firmware update capability is compromised
Solution Approach 1:
Firmware is segmented into multiple partitions that can be managed independently. This allows the system to update only necessary partitions using limited memory resources, avoiding the need to load entire firmware images into memory and thus preserving update capability despite constrained resources.
Solution Approach 2:
The verification and processing logic for firmware updates is extracted into a dedicated bootloader program that operates with minimal memory footprint. This separates the resource-intensive update operations from the main application, enabling reliable updates even with limited available memory.
Data Source
AI summary
Disclosed in the present application are a firmware update method for an embedded device, an embedded device, a development end device, and a firmware update system for an embedded device. In response to that an update triggering module detects a triggering event for updating firmware of the embedded device, a data receiving module acquires transmission data from a source device, and writes update data for firmware update of the embedded device in the transmission data into a partition storing the transmission data. A data processing module processes the received update data according to update mode information in the transmission data to obtain new firmware data, and applies the new firmware data from a partition storing the new firmware data during the running of a bootloader program, so as to accomplish the firmware update.


