Embedded Software Build System Using Cross-Compiling Stub
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cross-compiling for embedded systems is complex and prone to errors due to the divergence between the compile-time and run-time platforms, particularly in probing libraries and executing interim programs, which existing methods do not adequately address.
Innovation Solution
A system where the software package building process starts on the target system, with a compiling server having a higher performance and storing the target system's file system, intercepting compiling commands to redirect them to a remote cross-compiling tool, ensuring efficient compilation and avoiding 'fake' library issues.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If cross-compiling is used to build software for embedded systems, then compilation speed is improved, but the complexity and error rate of the building process increases
Solution Approach 1:
The patent introduces a building server as an intermediary system that handles the complex cross-compilation process. The building server receives building requests from the target system, executes the cross-compilation using appropriate compilers, and returns the results. This mediator approach separates the simple building process on the target system from the complex cross-compilation operations, resolving the contradiction between compilation speed and process complexity.
Solution Approach 2:
The building process is segmented into two distinct parts: a simple building process executed on the target system that only handles high-level building commands, and a complex cross-compilation process executed on the building server. This segmentation allows each component to be optimized independently - the target system remains simple while the building server handles the complexity of cross-compilation.
2Productivity
If cross-compiling is used, then compilation efficiency is improved, but reliability decreases due to errors in probing libraries and executing interim programs
Solution Approach 1:
The building server acts as a reliable intermediary that performs library probing and interim program execution in a controlled environment. It has access to the correct target platform libraries and can execute interim programs that probe platform characteristics, ensuring accurate information is obtained for the compilation process without the reliability issues of direct cross-compilation.
Solution Approach 2:
The building server implements feedback mechanisms where interim programs execute on the target system to probe library characteristics and platform information. The results of these probes are fed back into the building process to adjust compilation parameters, ensuring reliability through iterative verification and correction of building parameters.
Data Source
AI summary
A method and system for building an embedded software package for a target system including creating a cross-compiling stub in the target system, wherein the stub accesses a compiling tool at a remote location, starting a software package building process at the target system, and intercepting a compiling command coming from said software package building process and forwarding the compiling commands to said remote compiling server using the cross-compiling tool stub so that a source file will be compiled by a corresponding cross-compiling tool in the remote compiling server. The method and system allow a developer of software for an embedded system be able to start a software package building process on the target system as in the native compilation situation, and have the actual compiling of the source file in the software package be performed by cross-compiling tools in another computer with high performance.


