Traceable Embedded Device Programming via Code Hashing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In the development of software and firmware for embedded devices, inconsistencies between executable and source code can occur, leading to errors and inconsistencies, especially when managing software versions across multiple developers and during device maintenance, where manual databases may not guarantee accuracy.

Innovation Solution

A method is introduced where a unique identifier is generated from the executable code, source code, and device identification, allowing for independent tracking and storage, eliminating the need to download source code to the device, thus ensuring consistency and reducing human error in version management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If source code is downloaded to the embedded device to maintain consistency with executable code, then traceability is improved, but device memory usage and complexity increase

Engineering Contradiction:
Improvesoftware consistencyVSAvoiddevice memory usage
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts only the essential identification information (hash values of source code and executable code) from the full source code and stores it in the device, while keeping the complete source code in external storage. This extraction approach maintains traceability while minimizing device memory usage.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces hash values as intermediary elements that link executable code to source code without requiring the full source code to be present in the device. These hash values act as mediators that enable verification of code consistency while occupying minimal storage space.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If manually maintained databases are used to track software versions, then device delivery tracking is enabled, but accuracy and up-to-dateness cannot be guaranteed

Engineering Contradiction:
Improvesoftware version trackingVSAvoiddatabase correctness
Core Design Contradiction:
Loss of informationVSReliability

Solution Approach 1:

The system enables automatic self-updating of version information through the unique identifier mechanism. When executable code or source code is updated, the hash values automatically change, triggering automatic updates to the version database without manual intervention, thereby ensuring continuous accuracy.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent implements feedback mechanisms where the hash values stored in the device and external database are continuously compared and synchronized. This feedback loop ensures that any discrepancies between device software versions and recorded versions are automatically detected and corrected.

Inventive Principle:
Principle #23Feedback

3Loss of time

If only executable code is downloaded to the device (not source code), then download time and device storage are reduced, but consistency between source code and executable code cannot be ensured

Engineering Contradiction:
Improvedownload timeVSAvoidcode consistency
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent replaces the mechanical approach of storing full source code in the device with a computational approach using hash values. Instead of physically storing and comparing entire source code files, the system uses cryptographic hash functions to generate compact identifiers that enable efficient consistency verification.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent creates cryptographic copies (hash values) of the source code and executable code that are stored both in the device and in external databases. These hash copies serve as verifiable representations that enable consistency checking without requiring the original large files to be present in the device.

Inventive Principle:
Principle #26Copying

4Adaptability or versatility

If online change or hot code swapping is enabled during device operation, then maintenance flexibility is improved, but tracking executable code and source code becomes more difficult

Engineering Contradiction:
Improvemaintenance flexibilityVSAvoidcode tracking accuracy
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent performs preliminary generation and storage of unique identifiers (hash values) for both source code and executable code before any online changes occur. This preliminary action ensures that even when code is swapped during operation, the original identifiers remain available for tracking and auditing purposes, maintaining complete version history.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3204831B1Method for programming and configuring a device in a traceable manner
Publication Date: 2020.06.03 SCHNEIDER ELECTRIC AUTOMATION
  • EP3204831B1 patent drawingFigure 1
  • EP3204831B1 patent drawingFigure 2

AI summary

The invention relates to a method for programming and/or configuring a device, in particular an embedded device, in a traceable manner, wherein a) data are transmitted from a programming system to the device, wherein the transmitted data contain a code that can be executed by the device and are produced from a source code, b) a first unique identifier is produced on the basis of at least some of the transmitted data and at least part of the source code and on the basis of an identification of the device, c) the first unique identifier is stored in the device, and d) at least the transmitted data used for the first unique identifier, the source code used for the first unique identifier, and the first unique identifier are stored in a memory apparatus independent of the device.