Static Linking Isolation Layer for Independent MCU Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing static linking methods require recompilation and relinking of applications when updates occur in static libraries or operating systems, leading to high costs and inefficiencies in updating processes.
Innovation Solution
Introduce a binary difference isolation layer to decouple third-party components and operating systems, allowing independent updates by using fixed addresses for call instructions, ensuring components can find and call system functions without recompilation or relinking.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If static linking is used to compile and link applications with system libraries and operating systems, then the application can run with fixed addresses in memory, but when updates occur in the system library or operating system, the application source file must be recompiled and relinked, leading to high update costs
Solution Approach 1:
The patent segments the address space by introducing a binary difference isolation layer at a fixed address that separates the application's address dependencies from the actual system library and operating system addresses. This segmentation allows the application to maintain fixed address references while the isolated layer handles address translation to dynamic addresses of updated systems.
Solution Approach 2:
The binary difference isolation layer acts as an intermediary between the application and the system library/operating system. It receives fixed address references from the application and translates them to the actual dynamic addresses of system functions, enabling updates without requiring application recompilation.
2Stability of the object's composition
If static linking relocates symbols to absolute addresses, then the application is strongly coupled to the static library and operating system, but this coupling requires recompilation and relinking when updates occur
Solution Approach 1:
The patent adds another dimension to the address space by introducing a fixed address space for the binary difference isolation layer separate from the dynamic address space of system libraries and operating systems. This dimensional separation allows stable fixed address references in the application while enabling adaptability through address translation in the isolation layer.
3Reliability
If the application source file is recompiled and relinked for every update of the static library or operating system, then the address dependencies are updated, but this process incurs high time and resource costs
Solution Approach 1:
The binary difference isolation layer is pre-configured at a fixed address with the capability to handle address translation. This preliminary setup eliminates the need for recompilation and relinking during updates, as the isolation layer can adapt to new address mappings without requiring application source code changes.
Data Source
Figure 1A~1C
Figure 2
Figure 3
AI summary
This application provides a static linking method and a related apparatus. In a scenario in which a third-party component and an operating system are fully statically linked on an MCU device, in the static linking method provided in this application, a dependency of the third-party component on an actual storage address of a system function in the operating system and a dependency of a system application on an actual storage address of the third-party component are isolated by using a binary difference isolation layer, to decouple the third-party component from the operating system. Both the third-party component and the operating system may be independently updated without affecting each other. This can reduce costs of updating the third-party component and the operating system.