Fast Start Loader for Embedded Device Boot Speed
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for starting embedded apparatuses are inefficient, as they either require configured regions with no power failure or demand knowledge of source code for fast starting, which is not feasible in all scenarios.
Innovation Solution
A method involving a fast start loader that loads the system image file by segments based on service requirements, prioritizing mission-critical services for rapid startup, allowing for precise control and increased loading speed without needing source code knowledge.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If a region with no power failure is configured to load the startup program, then the system start speed is improved, but the device complexity increases and this solution is not applicable to all embedded devices
Solution Approach 1:
The system image file is divided into multiple segments: a fast start loader segment that is always executed, and additional service segments that are loaded conditionally. This segmentation allows the system to start quickly with essential functions while optionally loading other services, resolving the contradiction between fast startup and device complexity by making the complexity optional rather than mandatory.
Solution Approach 2:
The startup functionality is extracted from the general service loading mechanism. A dedicated fast start loader is separated from other service programs, responsible specifically for initial system startup. This extraction allows the startup process to be optimized independently from other system functions, achieving fast startup without requiring complex power failure region configurations.
2Speed
If code functions and variables for startup are set in an independent segment through link compilation, then the system can load and run startup-related segments first, but the developer needs to know all source code of code functions and variables related to system starting
Solution Approach 1:
A service requirement identification mechanism acts as an intermediary between the compiled program segments and the fast start loader. This intermediary automatically identifies which segments correspond to mission-critical services based on service requirements, eliminating the need for developers to manually analyze source code. The intermediary translates service requirements into segment loading decisions, maintaining fast startup while improving ease of operation.
3Reliability
If all services in the system image file are loaded at once, then all services are available, but the service start time increases and overall start speed decreases
Solution Approach 1:
The service loading process is made dynamic and adaptive. The fast start loader dynamically determines which service segments to load based on real-time service requirements and system state. Mission-critical services are loaded and executed first, while non-critical services are loaded subsequently or on-demand. This dynamic approach ensures that essential services start quickly while maintaining the ability to load all services as needed, resolving the contradiction between service availability and start time.
Data Source
Figure 1~2
Figure 3~4
Figure 5
AI summary
Embodiments of the present invention provide a method for starting an embedded apparatus, and an apparatus, and are applied to the field of embedded technologies, so as to improve a start speed of an embedded apparatus. The method is: A development and compilation apparatus divides a program of a system of an embedded apparatus, where the divided program includes a fast start loader and program segments corresponding to different services. In this way, after compilation and linking are performed on the program segments obtained by division to generate a system image file of the embedded apparatus, the embedded apparatus may first load the fast start loader after downloading the image file, then load one or more services in the image file one by one according to service requirements of different services by using the fast start loader, and then run the one or more loaded services.