A configuration increment loading method, device, equipment and storage medium

By compiling and splitting the source code of industrial control software, the problems of difficult expansion and low efficiency of incremental downloading are solved, realizing efficient incremental compilation and downloading, and reducing manpower and time costs.

CN115840569BActive Publication Date: 2026-07-03HANGZHOU HOLLYSYS AUTOMATION

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
HANGZHOU HOLLYSYS AUTOMATION
Filing Date
2022-12-23
Publication Date
2026-07-03

AI Technical Summary

Technical Problem

Existing industrial control software faces difficulties when expanding to new languages ​​or instruction architectures, and traditional solutions fail to achieve effective incremental compilation and download, resulting in high manpower and time costs.

Method used

The source code is compiled using a preset compiler to generate target code files, which are then split into several split files according to preset splitting rules. The target split files are selected and downloaded to the controller, which then reassembles them to generate an executable target file, thus avoiding impact on other logic.

Benefits of technology

It enables incremental compilation and download of only the changed code without affecting other logical content, reducing manual and time costs and improving compilation and download speed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115840569B_ABST
    Figure CN115840569B_ABST
Patent Text Reader

Abstract

This application discloses a configuration incremental download method, apparatus, device, and storage medium, relating to the field of computer technology. The method includes: compiling source code using a preset compiler to generate corresponding target code files; splitting the target code files into several split files according to preset splitting rules during the linking process; selecting a target split file from the several split files and downloading it to a preset controller to update the historical split files corresponding to the target split file in the preset controller; and performing corresponding reassembly operations on several files to be reassembled stored by the preset controller to obtain an executable target file. This application achieves incremental compilation and incremental download without affecting other logical content by splitting, updating, and reassembling the target code file to obtain an executable target file, avoiding the large amount of manual and time costs associated with traditional methods.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of computer technology, and in particular to a method, apparatus, device, and storage medium for incremental configuration download. Background Technology

[0002] Industrial control software typically includes configuration software and a controller. The configuration software needs to compile hardware configuration information, user-configured logic information, and other configuration information before downloading it to the controller. Furthermore, incremental compilation and download functionality is essential to avoid disrupting the execution of field logic. The core of achieving these functions lies in the compilation of user-configured logic; therefore, developing a reliable configuration logic compiler is crucial.

[0003] Currently, most industrial control software needs to compile its own configuration logic. This is achieved either by developing its own compiler or by using open-source compilers such as GCC. However, due to compiler architecture limitations, these solutions have the following problems: First, they are difficult to extend. Due to architectural limitations, these industrial controller software programs struggle to integrate with new languages ​​or instruction sets, requiring significant manpower. Second, traditional solutions do not truly achieve incremental compilation and downloading. After logic modifications, dependencies between logic components necessitate downloading a large number of files, consuming considerable time. Summary of the Invention

[0004] In view of this, the purpose of this invention is to provide a configuration incremental download method, apparatus, device, and storage medium that enables incremental compilation and incremental download without affecting other logical content, avoiding the large amount of manual and time costs incurred by traditional methods. The specific solution is as follows:

[0005] Firstly, this application discloses a configuration incremental download method, including:

[0006] The source code is compiled using a preset compiler to generate the corresponding target code file, and during the linking process of the target code file, the target code file is split into several split files according to a preset splitting rule;

[0007] Select a target split file from the plurality of split files and download it to a preset controller to update the historical split files corresponding to the target split file in the preset controller;

[0008] The preset controller performs corresponding reorganization operations on several files to be reorganized stored therein to obtain an executable target file; the several files to be reorganized include the target split file and the historical split file that has not been updated.

[0009] Optionally, the step of compiling the source code using a preset compiler to generate the corresponding object code file includes:

[0010] The source code is analyzed using a pre-defined compiler to generate intermediate code, and the intermediate code is then optimized to compile and generate the target code file.

[0011] Optionally, during the linking process of the target code file, the target code file is split into several split files according to a preset splitting rule, including:

[0012] The target code file is linked to obtain the corresponding binary file and a corresponding global offset table is established;

[0013] According to the preset splitting rules, each program organization unit of the target segment in the binary file is split to obtain several split files and structure files.

[0014] Optionally, the step of selecting a target split file from a plurality of split files and downloading it to a preset controller to update the historical split files corresponding to the target split file in the preset controller includes:

[0015] Identify the updated target program organization unit among the plurality of program organization units to filter out the target split file corresponding to the target program organization unit from the plurality of split files;

[0016] The target split file is downloaded to a preset controller to update the historical split files corresponding to the target split file in the preset controller.

[0017] Optionally, the step of performing corresponding reorganization operations on several files to be reorganized stored by the preset controller to obtain an executable target file includes:

[0018] The preset controller performs corresponding reorganization operations on several files to be reorganized stored in itself according to the structure file to obtain an executable target file, and performs a relocation operation on the global offset table according to the running address of the target file.

[0019] Optionally, after selecting the target split file from the plurality of split files and downloading it to the preset controller, the process further includes:

[0020] The received target split file is verified, and the target split file that is successfully verified is stored to update the historical split file corresponding to the target split file in the preset controller.

[0021] Optionally, after performing the verification operation on the received target split file, the method further includes:

[0022] If the verification operation of the target split file fails, the target split file that failed the verification operation is retrieved again from the host computer.

[0023] Secondly, this application discloses a configuration incremental download device, comprising:

[0024] The code compilation module is used to compile the source code using a preset compiler to generate the corresponding object code file;

[0025] The file linking module is used to split the target code file into several split files according to a preset splitting rule during the linking process of the target code file;

[0026] The file download module is used to filter out the target split file from a plurality of split files and download it to a preset controller to update the historical split files in the preset controller corresponding to the target split file;

[0027] The file reorganization module is used to perform corresponding reorganization operations on a number of files to be reorganized stored by the preset controller to obtain an executable target file; the number of files to be reorganized includes the target split file and the historical split file that has not been updated.

[0028] Thirdly, this application discloses an electronic device, including:

[0029] Memory, used to store computer programs;

[0030] A processor is used to execute the computer program to implement the aforementioned configuration incremental download method.

[0031] Fourthly, this application discloses a computer-readable storage medium for storing a computer program, which, when executed by a processor, implements the aforementioned configuration incremental download method.

[0032] As can be seen, this application first uses a preset compiler to compile the source code to generate corresponding target code files. During the linking process of the target code files, the target code files are split into several split files according to preset splitting rules. Target split files are selected from these split files and downloaded to a preset controller to update the historical split files corresponding to the target split files in the preset controller. The preset controller then performs corresponding reassembly operations on several files to be reassembled stored within it to obtain an executable target file. These files to be reassembled include the target split files and the historical split files that have not been updated. Therefore, this application, by compiling the source code into target code files, splitting the target code files, and updating the historical split files in the preset controller to assemble an executable target file, can truly achieve incremental compilation and downloading only for changed code without affecting other logical content. This avoids the large amount of manual and time costs associated with traditional methods and effectively improves the speed of compilation and downloading. Attached Figure Description

[0033] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on the provided drawings without creative effort.

[0034] Figure 1 This is a flowchart of a configuration incremental download method disclosed in this application;

[0035] Figure 2 This is a schematic diagram of an LLVM compiler architecture disclosed in this application;

[0036] Figure 3 This is a flowchart of a specific configuration incremental download method disclosed in this application;

[0037] Figure 4 This is a flowchart illustrating the compilation process of a configuration incremental download method disclosed in this application;

[0038] Figure 5 This is an example diagram of segment information in an object code file disclosed in this application;

[0039] Figure 6 This is a schematic diagram of the splitting operation process of a configuration incremental download method disclosed in this application;

[0040] Figure 7 This is a schematic diagram of the running memory layout of a preset controller disclosed in this application;

[0041] Figure 8 This is an example diagram of the data arrangement in the running memory after the first full download, as disclosed in this application.

[0042] Figure 9 This is an example diagram of the data arrangement in running memory after data deletion, as disclosed in this application;

[0043] Figure 10 This is an example diagram of the data arrangement in the running memory after adding data, as disclosed in this application;

[0044] Figure 11 This is a schematic diagram of a configuration incremental download device disclosed in this application;

[0045] Figure 12 This is a structural diagram of an electronic device disclosed in this application. Detailed Implementation

[0046] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0047] Currently, most industrial control software needs to compile its own configuration logic. This is achieved either by developing its own compiler or by using open-source compilers such as GCC. However, due to compiler architecture limitations, these solutions have the following problems: First, they are difficult to extend. Due to architectural limitations, these industrial controller software programs struggle to integrate with new languages ​​or instruction sets, requiring significant manpower. Second, traditional solutions do not truly achieve incremental compilation and downloading. After logic modifications, dependencies between logic components necessitate downloading a large number of files, consuming considerable time.

[0048] See Figure 1 As shown in the figure, this application discloses a configuration incremental download method, including:

[0049] Step S11: Compile the source code using a preset compiler to generate the corresponding target code file, and split the target code file into several split files according to the preset splitting rules during the linking process.

[0050] In this embodiment, the logic configuration software of the host computer, i.e., the distributed control system (DCS), first needs to use a preset compiler to compile the source code to generate the corresponding target code file. The target code file is a .O file (object file). During the linking process of the target code file, it is split into several split files according to a preset splitting rule. These split files are binary files. The host computer refers to the logic configuration software of the distributed control system, which mainly performs the writing and configuration of control logic. The preset compiler can be an LLVM (Low Level Virtual Machine) compiler. Like traditional compilers, LLVM completes compilation in three stages: front-end, optimization, and back-end. See the schematic diagram for its architecture. Figure 2 As shown, leveraging the advantages of LLVM's architecture, if we need to support a new programming language, we only need to implement a new front-end. If we need to support a new hardware device, we only need to implement a new back-end. Since the optimization phase targets a unified LLVM IR (Intermediate Representation), it is a universal phase. Whether supporting a new programming language or a new hardware device, no modifications are needed to the optimization phase. This reduces workload while increasing stability.

[0051] Step S12: Select the target split file from the plurality of split files and download it to the preset controller to update the historical split files corresponding to the target split file in the preset controller.

[0052] In this embodiment, after obtaining several split files, the host computer selects the target split file from these files and downloads it to a preset controller to update the historical split files corresponding to the target split file in the preset controller. The preset controller is an RTS (Run-Time System), which refers to controller control software primarily responsible for scheduling and executing IEC (International Electrotechnical Commission) operations and logical control of system operation status. It should be noted that a full download operation must precede the incremental download operation. After the full download is completed, the preset controller stores many unupdated initial historical split files. Therefore, during incremental download, the historical split files already stored in the preset controller need to be replaced with the updated target split file. In this way, the incremental download process can be achieved by updating only a portion of the target split files.

[0053] Step S13: The preset controller performs corresponding reorganization operations on several files to be reorganized stored therein to obtain an executable target file; the several files to be reorganized include the target split file and the historical split file that has not been updated.

[0054] In this embodiment, after receiving the target split file, the preset controller performs a corresponding reorganization operation on its stored data, including the target split file and the unupdated historical split files, to obtain an executable target file. The executable target file refers to the target file that can be executed within the distributed control system of this solution. It is understood that after replacing the updated split file during the download operation, the replaced file needs to be reorganized with the unreplaced parts to form a complete executable target file. In this way, by only replacing the historical split files that have been updated, it is possible to truly achieve incremental compilation and incremental download of only the changed code without affecting other logical content, avoiding the large amount of manual and time costs incurred by traditional methods, and effectively improving the speed of compilation and download.

[0055] As can be seen, this application first uses a preset compiler to compile the source code to generate corresponding target code files. During the linking process of the target code files, the target code files are split into several split files according to preset splitting rules. Target split files are selected from these split files and downloaded to a preset controller to update the historical split files corresponding to the target split files in the preset controller. The preset controller then performs corresponding reassembly operations on several files to be reassembled stored within it to obtain an executable target file. These files to be reassembled include the target split files and the historical split files that have not been updated. Therefore, this application, by compiling the source code into target code files, splitting the target code files, and updating the historical split files in the preset controller to assemble an executable target file, can truly achieve incremental compilation and downloading only for changed code without affecting other logical content. This avoids the large amount of manual and time costs associated with traditional methods and effectively improves the speed of compilation and downloading.

[0056] See Figure 3 As shown in the figure, this application discloses a specific configuration incremental download method, including:

[0057] Step S21: Analyze the source code using a preset compiler to generate corresponding intermediate code, and optimize the intermediate code to compile and generate corresponding target code files.

[0058] In this embodiment, a preset compiler is used to perform lexical analysis, syntax analysis, and semantic analysis on the source code to generate corresponding intermediate code. The intermediate code is then optimized to compile and generate the corresponding target code file. A flowchart of the compilation process is available. Figure 4 As shown. During the compilation process, the front-end analysis can be completed automatically, while the intermediate code optimization and target code file generation can be accomplished using the LLVM compilation framework. The target code file is a .O file. Taking a .O file from Linux as an example, the segment information it contains can be found in [link to documentation]. Figure 5 As shown, Figure 5This indicates the main contents of the segment table. The data generated after compiling the source code into the object code file is stored in various sections. The ".text" section stores the machine instructions after compiling the source code; the ".data" section stores global variables and static local variables; the ".bss" section stores uninitialized global variables and local static variables; the ".rodata" section stores read-only data; and the ".systab" section stores program symbol information. If relocation code segments exist, a ".rel.text" relocation table is generated; if relocation data information exists, a ".rel.data" relocation table is generated. The above content is crucial for constructing the final executable object file, but it is also necessary to determine the address information within the program.

[0059] Step S22: Link the target code file to obtain the corresponding binary file and establish the corresponding global offset table.

[0060] In this embodiment, after obtaining the corresponding target code file through compilation, the addresses of the actual variables and functions are not yet determined. Therefore, it is necessary to link the target code to obtain the corresponding binary file. A global offset table (GOT) is automatically created by the LLD linker in the LLVM compiler so that code segments and data segments can be accessed independently of data by relocating the contents of the GOT table. Step S21 describes the segment information in the target code file. The segments that need to be copied from the target code file in the binary file generated by linking the target code file mainly include ".text", ".got", ".data", ".rodata", and ".bss". The linker script format used in this scheme is as follows:

[0061]

[0062]

[0063]

[0064] Step S23: According to the preset splitting rules, split each program organization unit of the target segment in the binary file to obtain several split files and structure files.

[0065] In this embodiment, after linking the target code file to obtain the corresponding binary file, each Programming Organization Unit (POU) of the target segment (i.e., the ".text" segment) in the binary file is split according to a preset splitting rule, resulting in several split files and structure files. Both the split files and the structure files are bin files. The programming organization unit can be a function, a function block, or a program, etc. See also... Figure 6 As shown, for the information in the ".got", ".data", ".rodata", and ".bss" segments of the binary file, the entire segment is split from the binary file and then merged into a structure file DATA.bin. This structure file includes, but is not limited to, the start and end addresses of the ".bss" segment, the start and end addresses of the ".got" segment, filenames and sequence lists, and information requiring relocation. For the ".text" segment, it needs to be split according to the program organization units of the input file. Each program organization unit of the input file corresponds to a segment of the binary file, resulting in a split file. The split file includes, but is not limited to, file header information and file content. It should be noted that the above splitting process is completed in the LLD linker, but the LLD linker itself does not support file splitting, so additional code needs to be added to complete the splitting operation. The split file header information is shown below:

[0066]

[0067]

[0068] Step S24: Identify the updated target program organization unit among the plurality of program organization units to filter out the target split file corresponding to the target program organization unit from the plurality of split files.

[0069] In this embodiment, after splitting the binary file into several split files, the target program organization unit that has changed in the several program organization units is identified, and the target split file corresponding to the target program organization unit is selected from the several split files. Based on step S23, it is known that one program organization unit corresponds to one split file. In this way, by identifying the change of a single program organization unit, it is possible to download only the target split file corresponding to the changed target program organization unit, thereby achieving the purpose of incremental download.

[0070] Step S25: Download the target split file to the preset controller, perform a verification operation on the received target split file through the preset controller, and store the target split file that has been successfully verified to update the historical split file corresponding to the target split file in the preset controller.

[0071] In this embodiment, after identifying the changed target split file, the target split file is downloaded to a preset controller. The preset controller performs a CRC (Cyclic redundancy check) verification operation on the received target split file and the structure file, and stores the target split file that has been successfully verified to update the historical split file corresponding to the target split file in the preset controller. It should be noted that during incremental downloading, the preset controller includes a data storage area and a logical storage area. In the running state, the data storage area stores the variable values ​​of the project execution, and the logical storage area stores the logical control code of the project execution. During incremental downloading, the preset controller has two logical memory areas that can be used alternately, see [link to documentation]. Figure 7 As shown, the operating memory of the preset controller after the first full download is as follows: Figure 8 As shown, the data storage area stores historical split files, and the logical storage area 1 stores the engineering operation control logic during the first download; when SM481_2 is deleted from the data storage area and a non-disruptive download is performed, the data arrangement of the preset controller is as follows. Figure 9 As shown, after incremental download, a logical switch was performed. Specifically, the engineering operation control logic for deleting SM481_2 was stored in logical storage area 2 to control the data storage area for calculation, and the SM481_2 data stored at memory address 0x6F1020 in the data storage area was deleted. The data arrangement after adding SM481_4 and SM481_5 and performing a non-disruptive download is shown in the image. Figure 10 As shown, at this point, logical storage area one stores the project execution control logic for adding SM481_4 and SM481_5, which controls the data storage area to add SM481_4 and SM481_5 data at memory addresses 0x6F1020 and 0x6F10A0 respectively. In this way, by using the two logical memory areas alternately, it can be ensured that the logic control code downloaded from the new project will not overwrite the logic control code of the old project, thus ensuring uninterrupted logic control and uninterrupted data execution. For variables that do not change in the project, the memory address remains unchanged after uninterrupted download, thus ensuring no disturbance to the variable data values.

[0072] In this embodiment, after performing the verification operation on the received target split file, the method further includes: if the verification operation on the target split file fails, then re-obtaining the target split file that failed the verification operation from the host computer. That is, if the verification operation on the target split file fails, it indicates that the target split file may have encountered some problems during the splitting or downloading process, and it is necessary to re-obtain the target split file from the host computer and re-perform the verification operation until the verification is successful.

[0073] Step S26: The preset controller performs corresponding reorganization operations on several files to be reorganized stored in itself according to the structure file to obtain an executable target file, and performs a relocation operation on the global offset table according to the running address of the target file.

[0074] In this embodiment, after replacing the historical split file with the target split file, the preset controller reassembles several files to be reassembled according to the order in the structure file, based on file offsets and file lengths, to obtain an executable target file. After the reassembly operation is completed, the data addresses in the global offset table are relocated according to the execution address of the target file after initializing the ".bss" segment. It should be noted that during the linking operation, the relative offsets of the ".got" and ".text" segments can be specified. The preset controller loads the data area and code area respectively according to a fixed offset. By relocating the data area, function call data access in the code area can access the correct data address. The function code for the global variable table in the preset controller is shown below:

[0075]

[0076] As can be seen, this embodiment identifies and determines the target split file by splitting and identifying the program organization units of the target segment in the target code file, and then downloads the target split file to the preset controller. In this way, the incremental download process can be achieved by identifying individual program organization units. Furthermore, the preset controller in this embodiment has two logical memory areas that are used alternately, thereby ensuring that the logic control code downloaded from the new project will not overwrite the logic control code of the old project, achieving worry-free download. For variables that do not change in the project, the memory address remains unchanged after the uninterrupted download, thereby ensuring that the variable data value is not disturbed. In this way, the system can truly have the functions of incremental compilation and incremental download without affecting the execution of other logical contents.

[0077] refer to Figure 11 The present application also discloses a configuration incremental download device, comprising:

[0078] Code compilation module 11 is used to compile the source code using a preset compiler to generate the corresponding object code file;

[0079] The file linking module 12 is used to split the target code file into several split files according to a preset splitting rule during the linking process of the target code file;

[0080] File download module 13 is used to filter out a target split file from a plurality of split files and download it to a preset controller to update the historical split files in the preset controller corresponding to the target split file;

[0081] The file reorganization module 14 is used to perform corresponding reorganization operations on a number of files to be reorganized stored by the preset controller to obtain an executable target file; the number of files to be reorganized includes the target split file and the historical split file that has not been updated.

[0082] As can be seen, this application first uses a preset compiler to compile the source code to generate corresponding target code files. During the linking process of the target code files, the target code files are split into several split files according to preset splitting rules. Target split files are selected from these split files and downloaded to a preset controller to update the historical split files corresponding to the target split files in the preset controller. The preset controller then performs corresponding reassembly operations on several files to be reassembled stored within it to obtain an executable target file. These files to be reassembled include the target split files and the historical split files that have not been updated. Therefore, this application, by compiling the source code into target code files, splitting the target code files, and updating the historical split files in the preset controller to assemble an executable target file, can truly achieve incremental compilation and downloading only for changed code without affecting other logical content. This avoids the large amount of manual and time costs associated with traditional methods and effectively improves the speed of compilation and downloading.

[0083] In some specific embodiments, the code compilation module 11 can be used to analyze the source code using a preset compiler to generate corresponding intermediate code, and optimize the intermediate code to compile and generate corresponding target code files.

[0084] In some specific embodiments, the file linking module 12 may specifically include:

[0085] The file linking unit is used to link the target code file to obtain the corresponding binary file and establish the corresponding global offset table;

[0086] The file splitting unit is used to split each program organization unit of the target segment in the binary file according to a preset splitting rule to obtain several split files and structure files.

[0087] In some specific embodiments, the file download module 13 may specifically include:

[0088] The file filtering unit is used to identify the updated target program organization unit among the plurality of program organization units in order to filter out the target split file corresponding to the target program organization unit from the plurality of split files;

[0089] The file download unit is used to download the target split file to a preset controller to update the historical split files corresponding to the target split file in the preset controller.

[0090] In some specific embodiments, the file reorganization module 14 can be used to perform corresponding reorganization operations on several files to be reorganized stored by the preset controller according to the structure file to obtain an executable target file, and to perform a relocation operation on the global offset table according to the running address of the target file.

[0091] In some specific embodiments, the configuration incremental download device may further include:

[0092] The file verification module is used to perform verification operations on the received target split file, and store the target split file that has been successfully verified to update the historical split file corresponding to the target split file in the preset controller.

[0093] In some specific embodiments, the configuration incremental download device may further include:

[0094] The file acquisition module is used to reacquire the target split file from the host computer when the verification operation of the target split file fails.

[0095] Furthermore, embodiments of this application also disclose an electronic device, Figure 12 This is a structural diagram of an electronic device 20 according to an exemplary embodiment. The content of the diagram should not be construed as limiting the scope of this application.

[0096] Figure 12This is a schematic diagram of the structure of an electronic device 20 provided in an embodiment of this application. Specifically, the electronic device 20 may include: at least one processor 21, at least one memory 22, a power supply 23, a communication interface 24, an input / output interface 25, and a communication bus 26. The memory 22 stores a computer program, which is loaded and executed by the processor 21 to implement the relevant steps in the configuration incremental download method disclosed in any of the foregoing embodiments. Alternatively, the electronic device 20 in this embodiment may specifically be an electronic computer.

[0097] In this embodiment, the power supply 23 is used to provide operating voltage for each hardware device on the electronic device 20; the communication interface 24 can create a data transmission channel between the electronic device 20 and external devices, and the communication protocol it follows can be any communication protocol applicable to the technical solution of this application, and is not specifically limited here; the input / output interface 25 is used to acquire external input data or output data to the outside world, and its specific interface type can be selected according to specific application needs, and is not specifically limited here.

[0098] In addition, the memory 22, as a carrier for resource storage, can be a read-only memory, random access memory, disk or optical disk, etc. The resources stored thereon can include operating system 221, computer program 222, etc., and the storage method can be temporary storage or permanent storage.

[0099] The operating system 221 is used to manage and control the various hardware devices on the electronic device 20 and the computer program 222, which may be Windows Server, Netware, Unix, Linux, etc. In addition to including a computer program capable of performing the configuration incremental download method executed by the electronic device 20 as disclosed in any of the foregoing embodiments, the computer program 222 may further include a computer program capable of performing other specific tasks.

[0100] Furthermore, this application also discloses a computer-readable storage medium for storing a computer program; wherein, when the computer program is executed by a processor, it implements the aforementioned disclosed configuration incremental download method. Specific steps of this method can be found in the corresponding content disclosed in the foregoing embodiments, and will not be repeated here.

[0101] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on its differences from other embodiments. Similar or identical parts between embodiments can be referred to interchangeably. For the apparatus disclosed in the embodiments, since it corresponds to the method disclosed in the embodiments, the description is relatively simple; relevant parts can be referred to in the method section.

[0102] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0103] The steps of the methods or algorithms described in conjunction with the embodiments disclosed herein can be implemented directly by hardware, a software module executed by a processor, or a combination of both. The software module can be located in random access memory (RAM), main memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disk, removable disk, CD-ROM, or any other form of storage medium known in the art.

[0104] Finally, it should be noted that in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0105] The technical solutions provided in this application have been described in detail above. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the above embodiments are only for the purpose of helping to understand the methods and core ideas of this application. At the same time, for those skilled in the art, there will be changes in the specific implementation methods and application scope based on the ideas of this application. Therefore, the content of this specification should not be construed as a limitation of this application.

Claims

1. A configuration incremental download method, characterized in that, include: The source code is compiled using a preset compiler to generate the corresponding target code file, and during the linking process of the target code file, the target code file is split into several split files according to a preset splitting rule; Select a target split file from the plurality of split files and download it to a preset controller to update the historical split files corresponding to the target split file in the preset controller; The preset controller performs corresponding reorganization operations on several files to be reorganized stored within itself to obtain an executable target file; The plurality of files to be reassembled includes the target split file and the historical split file that has not been updated; During the linking process of the target code file, the target code file is split into several split files according to a preset splitting rule, including: The target code file is linked to obtain the corresponding binary file and a corresponding global offset table is established; According to the preset splitting rules, each program organization unit of the target segment in the binary file is split to obtain several split files and structure files; The step of performing corresponding reorganization operations on several files to be reorganized stored by the preset controller to obtain an executable target file includes: The preset controller performs corresponding reorganization operations on several files to be reorganized stored in itself according to the structure file to obtain an executable target file, and performs a relocation operation on the global offset table according to the running address of the target file. After selecting the target split file from the plurality of split files and downloading it to the preset controller, the process further includes: The received target split file is verified, and the target split file that is successfully verified is stored to update the historical split file corresponding to the target split file in the preset controller.

2. The configuration incremental download method according to claim 1, characterized in that, The process of compiling the source code using a preset compiler to generate the corresponding object code file includes: The source code is analyzed using a pre-defined compiler to generate intermediate code, and the intermediate code is then optimized to compile and generate the target code file.

3. The configuration incremental download method according to claim 1, characterized in that, The step of selecting a target split file from a plurality of split files and downloading it to a preset controller to update the historical split files corresponding to the target split file in the preset controller includes: Identify the updated target program organization unit among the plurality of program organization units to filter out the target split file corresponding to the target program organization unit from the plurality of split files; The target split file is downloaded to a preset controller to update the historical split files corresponding to the target split file in the preset controller.

4. The configuration incremental download method according to claim 1, characterized in that, After performing the verification operation on the received target split file, the method further includes: If the verification operation of the target split file fails, the target split file that failed the verification operation is retrieved again from the host computer.

5. A configuration incremental download device, characterized in that, include: The code compilation module is used to compile the source code using a preset compiler to generate the corresponding object code file; The file linking module is used to split the target code file into several split files according to a preset splitting rule during the linking process of the target code file; The file download module is used to filter out the target split file from a plurality of split files and download it to a preset controller to update the historical split files corresponding to the target split file in the preset controller; The file reorganization module is used to perform corresponding reorganization operations on several files to be reorganized stored in itself through the preset controller to obtain an executable target file; The plurality of files to be reassembled includes the target split file and the historical split file that has not been updated; The file linking module includes: The file linking unit is used to link the target code file to obtain the corresponding binary file and establish the corresponding global offset table; The file splitting unit is used to split each program organization unit of the target segment in the binary file according to a preset splitting rule to obtain several split files and structure files; The file reorganization module is specifically used to perform corresponding reorganization operations on several files to be reorganized stored by itself according to the structure file through the preset controller to obtain an executable target file, and to perform a relocation operation on the global offset table according to the running address of the target file. The device further includes: The file verification module is used to perform verification operations on the received target split file, and store the target split file that has been successfully verified to update the historical split file corresponding to the target split file in the preset controller.

6. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor for executing the computer program to implement the configuration incremental download method as described in any one of claims 1 to 4.

7. A computer-readable storage medium, characterized in that, Used to store computer programs, which, when executed by a processor, implement the configuration incremental download method as described in any one of claims 1 to 4.