Controller software upgrade method and system, electronic device and readable storage medium

By setting the identifiers of the application layer and the underlying software in the controller, and updating the underlying software identifier to back up the application layer software identifier, the problem of incompatibility of software packages after the application layer software upgrade fails is solved, and the complete upgrade of the controller software is realized.

CN116088910BActive Publication Date: 2025-12-12CHONGQING CHANGAN AUTOMOBILE SOFTWARE TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310185273.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-03-01
Publication Date
2025-12-12
Estimated Expiration
2043-03-01

AI Technical Summary

Technical Problem

During the controller software upgrade process, if the application layer software upgrade fails, the application layer software part number is lost, making it impossible to match the correct software package, thus causing the upgrade to fail.

Method used

By setting upgrade information in the original controller, including the identifiers of the application layer software and the underlying software, the identifier of the underlying software is updated when the application layer software upgrade is successful, and the application layer software is upgraded by matching the software upgrade package according to the target software identifier, using the underlying software identifier as backup information for the application layer software identifier.

Benefits of technology

Even if the application layer software upgrade fails, the correct software package can still be matched through the underlying software identifier, ensuring the success of the controller software upgrade.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116088910B_ABST
    Figure CN116088910B_ABST
Patent Text Reader

Abstract

The application relates to the technical field of software upgrading, and discloses a controller software upgrading method and system, electronic equipment and a readable storage medium. The method is characterized in that the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software are acquired, and when the application layer software is upgraded successfully, the bottom layer software identifier of the bottom layer software is updated according to the application layer software identifier of the application layer software. Before the application layer software is upgraded, the target software identifier is determined from the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software, and the application layer software is upgraded according to the software upgrading package corresponding to the target software identifier. The bottom layer software identifier is used as the backup information of the application layer software identifier, so that even if the application layer software identifier of the application layer software is lost after the application layer software is upgraded and written, the application layer software can be upgraded through the software package corresponding to the software part number matched by the bottom layer software identifier.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of software upgrading, and particularly relates to a controller software upgrading method and system, an electronic device and a readable storage medium. BACKGROUND

[0002] With the continuous increase of vehicle software functions and the development of Internet of Vehicles technology, OTA (Over-the-Air Technology) upgrading has also become an indispensable part of vehicles and is widely used in various vehicle manufacturers. OTA upgrading refers to software iterative updating of vehicles connected to the Internet through Internet of Vehicles technology. The OTA system is composed of a vehicle end system and a cloud end system. The vehicle end system is mainly responsible for collecting information of all controllers of the vehicle and software flashing, wherein the information collection mainly includes collection of identity information of the controllers and collection of version information of the controllers. After the vehicle end information collection is completed, the information needs to be uploaded to the cloud end system. The cloud end system is responsible for maintaining information of all upgrade objects of the vehicle end, including identity information of the upgrade objects and software packages of various versions. After receiving the signal uploaded by the vehicle end, the cloud end needs to first match the identity information of the controllers, and after the matching is successful, version comparison is performed. If the version of the cloud end is higher than that of the vehicle end, the cloud end will issue an upgrade task to the vehicle end, and the vehicle end will update the software of the vehicle controllers. The controller identity information matching is an important step in OTA upgrading. If the controller identity matching is incorrect, the software package will be used incorrectly, and the controller upgrading will fail. At present, the controller identity matching includes hardware information confirmation and software information confirmation of the controllers. The hardware information confirmation is performed through the hardware serial number pre-stored in the controller. However, the same hardware serial number can be used to flash multiple software packages, so it is impossible to confirm which software package needs to be flashed for the current vehicle. Therefore, the software serial number needs to be pre-stored in the controller. The software serial number is used as the unique identifier of the software package, and is also the main way of software information confirmation. The software serial number is often used to determine the software upgrade package required by the controller.

[0003] At present, the controller software includes application layer software and underlying software. Meanwhile, a part of the controllers need to share hardware and underlying software. The underlying software is also distinguished from the required underlying software upgrade package through the corresponding application layer software. Therefore, when the application layer software flashing fails, the software serial number of the application layer software is lost, so that the application layer software cannot match the required software package according to the software serial number. SUMMARY

[0004] The following presents a simplified summary of some aspects of the disclosed embodiments in order to provide a basic understanding of such embodiments. This summary is not an extensive overview of the embodiments described in detail in the following detailed description, and is not intended to identify key / critical elements of the embodiments or to delineate the scope of the embodiments. Its sole purpose is to present some aspects of the disclosed embodiments in a simplified form as a prelude to the more detailed description that is presented later.

[0005] In view of the above-mentioned disadvantages of the prior art, the application discloses a controller software upgrading method and system, an electronic device and a readable storage medium, so that a software package corresponding to a software serial number can still be matched after application software upgrading fails.

[0006] The application provides a controller software upgrading method, which comprises the following steps: setting upgrading information of an original controller, wherein the original controller comprises application layer software and underlying software, and the upgrading information comprises an application layer software identifier of the application layer software and an underlying software identifier of the underlying software; in response to successful upgrading of the application layer software, updating the underlying software identifier of the underlying software according to the application layer software identifier of the application layer software; in response to a collection instruction corresponding to the upgrading information, determining a target software identifier from the application layer software identifier of the application layer software and the underlying software identifier of the underlying software, and upgrading the application layer software according to a software upgrading package corresponding to the target software identifier, wherein the software upgrading package is matched according to the target software identifier.

[0007] Optionally, the step of setting the upgrading information of the original controller comprises the following steps: acquiring a factory software identifier corresponding to the application layer software and a default underlying identifier corresponding to the underlying software identifier; setting the application layer software identifier of the application layer software as the factory software identifier, and setting the underlying software identifier of the underlying software as the default underlying identifier.

[0008] Optionally, the step of determining the target software identifier from the application layer software identifier of the application layer software and the underlying software identifier of the underlying software comprises the following steps: querying the application layer software identifier of the application layer software and the underlying software identifier of the underlying software; if the application layer software identifier exists, determining the queried application layer software identifier as the target software identifier; if the application layer software identifier does not exist, comparing the default underlying identifier with the queried underlying software identifier to obtain an identifier comparison result; if the identifier comparison result comprises that the default underlying identifier is different from the underlying software identifier, determining the queried underlying software identifier as the target software identifier; and if the identifier comparison result comprises that the default underlying identifier is the same as the underlying software identifier, resetting the application layer software identifier of the application layer software according to a preset backup software identifier.

[0009] Optionally, after the application layer software identifier is determined as the target software identifier, and before the application layer software is upgraded according to the software upgrading package corresponding to the target software identifier, the method further comprises the following step: updating the backup software identifier according to the application layer software identifier.

[0010] Optionally, before resetting the application layer software identifier of the application layer software according to the preset backup software identifier, the method further comprises: obtaining a software failure record corresponding to the original controller; and if it is confirmed according to the software failure record that the target software failed in the last software upgrade, resetting the application layer software identifier of the application layer software according to the preset backup software identifier.

[0011] Optionally, after setting the upgrade information of the original controller, the method further comprises: in response to the application layer software upgrade failure, obtaining a controller name of the original controller, and generating a software failure record according to at least one of the controller name and the target software identifier.

[0012] Optionally, the target software identifier corresponding software upgrade package is obtained by: obtaining a local software version of the application layer software; sending the target software identifier and the local software version to a server end, so that the server end matches the cloud end upgrade package corresponding to the application layer software and the cloud end software version corresponding to the cloud end upgrade package according to the target software identifier, and determines the latest version from the local software version and the cloud end software version, and if the latest version is the cloud end software version, feeds back the cloud end upgrade package; and determining the received cloud end upgrade package as the target software identifier corresponding software upgrade package.

[0013] The application provides a controller software upgrade system, comprising: a query module configured to set upgrade information of an original controller, wherein the original controller comprises application layer software and bottom layer software, and the upgrade information comprises an application layer software identifier of the application layer software and a bottom layer software identifier of the bottom layer software; an update module configured to, in response to successful upgrade of the application layer software, update the bottom layer software identifier of the bottom layer software according to the application layer software identifier of the application layer software; and an upgrade module configured to, in response to a collection instruction corresponding to the upgrade information, determine a target software identifier from the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software, and upgrade the application layer software according to a software upgrade package corresponding to the target software identifier, wherein the software upgrade package is matched according to the target software identifier.

[0014] The application provides an electronic device, comprising: a processor and a memory; the memory is configured to store a computer program, and the processor is configured to execute the computer program stored in the memory, so that the electronic device executes the above method.

[0015] The application provides a computer readable storage medium, which stores a computer program: the computer program is executed by a processor to realize the above method.

[0016] The beneficial effects of the present application are as follows:

[0017] By obtaining the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software in the original controller, updating the bottom layer software identifier of the bottom layer software according to the application layer software identifier of the application layer software when the application layer software is upgraded successfully, determining the target software identifier from the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software before upgrading the application layer software, and upgrading the application layer software according to the software upgrade package corresponding to the target software identifier, the bottom layer software identifier is used as backup information of the application layer software identifier after the application layer software is upgraded successfully by updating the bottom layer software identifier according to the application layer software identifier, so that even if the application layer software identifier is lost after the application layer software upgrade fails, the application layer software can be upgraded by matching the software package corresponding to the software identifier according to the bottom layer software identifier. BRIEF DESCRIPTION OF DRAWINGS

[0018] Figure 1 is a flowchart of a controller software upgrade method in an embodiment of the present application;

[0019] Figure 2 is a flowchart of another controller software upgrade method in an embodiment of the present application;

[0020] Figure 3 is a structural diagram of a controller software upgrade system in an embodiment of the present application;

[0021] Figure 4 is a schematic diagram of an electronic device in an embodiment of the present application. DETAILED DESCRIPTION

[0022] The embodiments of the present application will be described in detail below with specific reference to the drawings. Those skilled in the art can easily understand other advantages and effects of the present application from the content disclosed in the specification. The present application can also be implemented or applied in different specific embodiments, and the details in the specification can be modified or changed based on different views and applications without departing from the spirit of the present application. It should be noted that the following embodiments and sub-samples in the embodiments can be combined with each other without conflict.

[0023] It should be noted that the diagrams provided in the following embodiments only illustrate the basic concept of the present application in a schematic manner, and the diagrams only show the components related to the present application, not the number, shape and size of the components when actually implemented. The actual implementation of each component may be a random change in number, shape and size, and the layout pattern of the components may be more complex.

[0024] In the following description, numerous specific details are discussed in order to provide a thorough understanding of the embodiments of the present application. However, those skilled in the art will recognize that the embodiments of the present application can be practiced without these specific details. In other instances, well-known structures and devices are not described in detail in order not to unnecessarily obscure aspects of the embodiments of the present application, which would be described in detail below.

[0025] The terms "first", "second", and the like, as used in the description and the claims of the present disclosure and the foregoing drawings, are used for distinguishing between similar objects and not necessarily for describing a specific sequential or chronological order. It is to be understood that the use of the terms so

[0026] The term "plurality" means two or more, unless otherwise specified.

[0027] In the present disclosure, the character " / " represents an "or" relationship between the preceding and following objects. For example, A / B means A or B.

[0028] The term "and / or" is a description of the association relationship between objects, which means that there can be three relationships. For example, A and / or B means that there are three relationships of A or B, or A and B.

[0029] In combination Figure 1 As shown, the present disclosure provides a controller software upgrading method, comprising:

[0030] Step S101, setting upgrading information of an original controller;

[0031] The original controller comprises application layer software and underlying software, and the upgrading information comprises an application layer software identifier of the application layer software and an underlying software identifier of the underlying software.

[0032] Step S102, in response to successful upgrading of the application layer software, updating the underlying software identifier of the underlying software according to the application layer software identifier of the application layer software;

[0033] Step S103, in response to the upgrading information corresponding to the collection instruction, determining a target software identifier from the application layer software identifier of the application layer software and the underlying software identifier of the underlying software, and upgrading the application layer software according to a software upgrading package corresponding to the target software identifier;

[0034] The software upgrading package is matched according to the target software identifier.

[0035] The controller software upgrading method provided in the embodiments of the present disclosure comprises the following steps: obtaining the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software in the original controller; and updating the bottom layer software identifier of the bottom layer software according to the application layer software identifier of the application layer software when the application layer software upgrading succeeds. Thus, the target software identifier is determined from the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software before the application layer software is upgraded, and the application layer software is upgraded according to the software upgrading package corresponding to the target software identifier. In this way, compared with matching the software upgrading package only according to the application layer software identifier of the application layer software, the bottom layer software identifier is updated as the backup information of the application layer software identifier after the application layer software upgrading succeeds, so that even if the application layer software identifier of the application layer software is lost after the application layer software upgrading fails, the application layer software can be upgraded according to the software package corresponding to the software identifier matched according to the bottom layer software identifier.

[0036] Optionally, the upgrading information of the original controller is set, comprising: obtaining the factory software identifier corresponding to the application layer software and the default bottom layer identifier corresponding to the bottom layer software identifier; setting the application layer software identifier of the application layer software as the factory software identifier, and setting the bottom layer software identifier of the bottom layer software as the default bottom layer identifier.

[0037] In some embodiments, the application layer software identifier and the factory software identifier are both the software identifier of the application layer software, and the bottom layer software identifier is the software identifier of the bottom layer software.

[0038] In some embodiments, the default bottom layer identifier comprises a software identifier composed of special characters, to represent that the bottom layer software identifier is not a valid application layer software identifier. For example, the default bottom layer identifier is 0xFFFFFFFF.

[0039] In some embodiments, the original controller has the factory software identifier required for the application layer software upgrading in the application layer software of the original controller when the original controller is shipped; if the original controller does not have hardware or bottom layer software shared with other controllers, the bottom layer software identifier of the original controller is set as the factory software identifier; and if the original controller has hardware or bottom layer software shared with other controllers, the bottom layer software identifier of the original controller is set as the default bottom layer identifier.

[0040] Optionally, the target software identifier is determined from the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software, including: querying the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software; if the application layer software identifier exists, the queried application layer software identifier is determined as the target software identifier; if the application layer software identifier does not exist, the default bottom layer identifier is compared with the queried bottom layer software identifier to obtain an identifier comparison result; if the identifier comparison result includes that the default bottom layer identifier is different from the bottom layer software identifier, the queried bottom layer software identifier is determined as the target software identifier; and if the identifier comparison result includes that the default bottom layer identifier is the same as the bottom layer software identifier, the application layer software identifier of the application layer software is reset according to the preset backup software identifier.

[0041] Optionally, after the application layer software identifier is determined as the target software identifier, before the application layer software is upgraded according to the software upgrade package corresponding to the target software identifier, the method further includes: updating the backup software identifier according to the application layer software identifier.

[0042] In some embodiments, if the application layer software is upgraded for the first time, the valid factory software identifier is used as the target software identifier, and the factory software identifier is stored as the backup software identifier.

[0043] In some embodiments, in response to successful upgrade of the application layer software, it is first determined whether the bottom layer software identifier of the bottom layer software is a default bottom layer identifier; and if the bottom layer software identifier is the default bottom layer identifier, the bottom layer software identifier of the bottom layer software is updated according to the application layer software identifier of the application layer software. In this way, the bottom layer software also stores the valid application layer software identifier, and in subsequent application layer software upgrade, whether the upgrade is successful or not, the bottom layer software can return the correct software serial number.

[0044] Optionally, before the application layer software identifier of the application layer software is reset according to the preset backup software identifier, the method further includes: obtaining a software failure record corresponding to the original controller; if it is confirmed from the software failure record that the target software failed in the last software upgrade, the application layer software identifier of the application layer software is reset according to the preset backup software identifier.

[0045] Optionally, after the upgrade information of the original controller is set, the method further includes: in response to failure of the application layer software upgrade, obtaining a controller name of the original controller, and generating a software failure record according to at least one of the controller name and the target software identifier.

[0046] Optionally, the software upgrade package corresponding to the target software identifier is obtained by the following method: obtaining the local software version of the application layer software; sending the target software identifier and the local software version to the server end, so that the server end matches the cloud end upgrade package corresponding to the application layer software and the cloud end software version corresponding to the cloud end upgrade package according to the target software identifier, and determines the latest version from the local software version and the cloud end software version, and if the latest version is the cloud end software version, feeds back the cloud end upgrade package; and determining the received cloud end upgrade package as the software upgrade package corresponding to the target software identifier.

[0047] In some embodiments, after the upgrade information is collected, the local software version and the target software identifier are uploaded to the server end, the server end matches the cloud end upgrade package according to the uploaded target software identifier, and after the matching is successful, the version comparison is performed according to the local software version and the cloud end software version, and if there is a new version of the cloud end upgrade package, the server end issues an upgrade task to the vehicle terminal.

[0048] In combination with Figure 2 The embodiment of the present disclosure provides a controller software upgrade method, which comprises the following steps:

[0049] In step S201, the application layer software identifier of the application layer software is set as a factory software identifier, and the bottom layer software identifier of the bottom layer software is set as a default bottom layer identifier.

[0050] In step S202, if the collection instruction corresponding to the upgrade information is received, the application layer software identifier and the bottom layer software identifier are queried.

[0051] In step S203, it is judged whether the application layer software identifier exists, if yes, the step S210 is jumped to, and if no, the step S204 is jumped to.

[0052] In step S204, it is judged whether the bottom layer software identifier is the same as the default bottom layer identifier, if yes, the step S212 is jumped to, and if no, the step S205 is jumped to.

[0053] In step S205, the queried bottom layer software identifier is determined as the target software identifier.

[0054] In step S206, the software upgrade package is obtained from the server end according to the target software identifier and the local software version.

[0055] In step S207, the application layer software is upgraded according to the software upgrade package.

[0056] In step S208, it is judged whether the application layer software is upgraded successfully, if yes, the step S209 is jumped to, and if no, the step S213 is jumped to.

[0057] In step S209, the bottom layer software identifier of the bottom layer software is updated according to the application layer software identifier of the application layer software.

[0058] Step S210, the queried application layer software identifier is determined as the target software identifier;

[0059] Step S211, the backup software identifier is updated according to the application layer software identifier, and the step S206 is jumped to;

[0060] Step S212, the application layer software identifier of the application layer software is reset according to the backup software identifier, and the step S202 is jumped to;

[0061] Step S213, a software failure record is generated according to the controller name and the target software identifier.

[0062] The controller software upgrading method provided by the embodiment of the present disclosure, by obtaining the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software in the original controller, when the application layer software is upgraded successfully, the bottom layer software identifier of the bottom layer software is updated according to the application layer software identifier of the application layer software, so that before the application layer software is upgraded, the target software identifier is determined from the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software, and the application layer software is upgraded according to the software upgrade package corresponding to the target software identifier. In this way, compared with matching the software upgrade package only through the application layer software identifier of the application layer software, after the application layer software is upgraded successfully, the bottom layer software identifier is updated as the backup information of the application layer software identifier by the application layer software identifier of the application layer software, so that after the application layer software is upgraded and fails to be written, even if the application layer software identifier of the application layer software is lost, the application layer software can be upgraded by matching the software package corresponding to the software identifier through the bottom layer software identifier.

[0063] In combination with Figure 3 As shown in the figure, the embodiment of the present disclosure provides a controller software upgrading system, which comprises a query module 301, an update module 302 and an upgrading module 303. The query module 301 is used for setting the upgrading information of the original controller, wherein the original controller comprises application layer software and bottom layer software, and the upgrading information comprises the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software. The update module 302 is used for updating the bottom layer software identifier of the bottom layer software according to the application layer software identifier of the application layer software in response to the successful upgrading of the application layer software. The upgrading module 303 is used for determining the target software identifier from the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software in response to the acquisition instruction corresponding to the upgrading information, and upgrading the application layer software according to the software upgrade package corresponding to the target software identifier, wherein the software upgrade package is matched according to the target software identifier.

[0064] By using the controller software upgrading system provided in the embodiments of the present disclosure, the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software are acquired, and when the application layer software is upgraded successfully, the bottom layer software identifier of the bottom layer software is updated according to the application layer software identifier of the application layer software, so that before the application layer software is upgraded, the target software identifier is determined from the application layer software identifier of the application layer software and the bottom layer software identifier of the bottom layer software, and the application layer software is upgraded according to the software upgrading package corresponding to the target software identifier. In this way, compared with matching the software upgrading package only through the application layer software identifier of the application layer software, after the application layer software is upgraded successfully, the bottom layer software identifier is updated as the backup information of the application layer software identifier through the application layer software identifier of the application layer software, so that after the application layer software upgrading fails, even if the application layer software identifier of the application layer software is lost, the application layer software can also be upgraded through the bottom layer software identifier to match the software package corresponding to the software identifier.

[0065] Figure 4 A structural diagram of a computer system of an electronic device suitable for implementing the embodiments of the present application is shown. It should be noted that, Figure 4 The computer system 400 of the electronic device shown is only an example, and should not impose any limitation on the functions and use range of the embodiments of the present application.

[0066] As Figure 4 shown, the computer system 400 includes a central processing unit (CPU) 401, which can perform various appropriate actions and processes according to programs stored in a read-only memory (ROM) 402 or programs loaded from a storage portion 408 to a random access memory (RAM) 403, such as performing the methods in the above embodiments. In the RAM 403, various programs and data required for system operation are also stored. The CPU 401, the ROM 402, and the RAM 403 are connected to each other through a bus 404. An input / output (I / O) interface 405 is also connected to the bus 404.

[0067] The following components are connected to the I / O interface 405: an input part 406 including a keyboard, a mouse, etc.; an output part 407 including a display such as a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), etc., and a speaker, etc.; a storage part 408 including a hard disk, etc.; and a communication part 409 including a network interface card such as a LAN (Local Area Network) card, a modem, etc. The communication part 409 performs communication processing via a network such as the Internet. A drive 410 is also connected to the I / O interface 405 as necessary. A removable media 411 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc. is attached to the drive 410 as necessary, so that a computer program read out therefrom is installed in the storage part 408 as necessary.

[0068] In particular, according to embodiments of the present application, the processes described above with reference to the flowcharts can be implemented as a computer software program. For example, embodiments of the present application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing a computer program for executing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via the communication part 409, and / or installed from the removable media 411. When the computer program is executed by the central processing unit (CPU) 401, various functions defined in the system of the present application are executed.

[0069] It should be noted that the computer readable medium shown in the embodiments of the present application can be a computer readable signal medium or a computer readable storage medium or any combination of the two. The computer readable storage medium may, for example, be an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or component, or any combination of the above. More specific examples of computer readable storage media can include, but are not limited to, an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, an optical fiber, a portable compact disk read-only memory (Compact Disc Read-Only Memory, CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present application, the computer readable signal medium can include a data signal propagating in the baseband or as a carrier wave part of a signal propagating in the baseband, which carries the computer readable computer program. Such a propagating data signal can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The computer readable signal medium can also be any computer readable medium other than the computer readable storage medium, which can send, propagate or transmit programs for use by or in connection with an instruction execution system, device or component. The computer program contained on the computer readable medium can be transmitted by any suitable medium, including but not limited to wireless, wired, etc., or any suitable combination of the above.

[0070] The embodiments of the present disclosure also provide an electronic device, comprising: a processor and a memory; the memory is used to store a computer program, and the processor is used to execute the computer program stored in the memory, so that the electronic device executes any one of the methods in the embodiments.

[0071] The embodiments of the present disclosure also provide a computer readable storage medium having a computer program stored thereon, which is executed by a processor to implement any one of the methods in the embodiments.

[0072] The computer readable storage medium in the embodiments of the present disclosure can be understood by those skilled in the art that all or part of the steps of the above-mentioned method embodiments can be completed by a computer program related hardware. The aforementioned computer program can be stored in a computer readable storage medium. The program is executed to perform the steps of the above-mentioned method embodiments; and the aforementioned storage medium includes ROM, RAM, magnetic disk or optical disk and various media that can store program codes.

[0073] The electronic device disclosed in the embodiment comprises a processor, a memory, a transceiver and a communication interface. The memory and the communication interface are connected with the processor and the transceiver and complete communication between each other. The memory is used for storing a computer program. The communication interface is used for communication. The processor and the transceiver are used for running the computer program, so that the electronic device executes each step of the method.

[0074] In the embodiment, the memory can comprise a random access memory (RAM) and can also comprise a non-volatile memory, for example at least one disk memory.

[0075] The processor described above can be a general-purpose processor, including a central processing unit (CPU), a graphics processing unit (GPU), a network processor (NP) and the like. The processor can also be a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component.

[0076] The above description and drawings are illustrative of embodiments of the present disclosure and are not intended to be limiting. Other embodiments can include structural, logical, electrical, process, and other changes. Embodiments are merely representative of possible variations. Individual components and functions are optional and the order of operations can vary. Portions and sub-combinations of some embodiments can be included or replaced in or by other embodiments. Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. As used in the description of the embodiments and the claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. Similarly, the term "and / or" as used herein refers to any and all possible combinations of one or more of the associated listed items. Additionally, as used in this application, the term "comprises" and variations thereof do not intend to preclude the presence or addition of one or more other items to those stated in the compositions, integers, steps, operations, elements, and / or components. Without more limitations, an element defined by the phrase "comprises a..." does not exclude the presence of additional identical elements in the process, method, or apparatus including the element. In this document, each embodiment focuses on the differences from other embodiments, and the same or similar parts between embodiments can be referred to each other. For the method, product, etc. disclosed by the embodiments, if it corresponds to the method part disclosed by the embodiments, the relevant part can be referred to the description of the method part.

[0077] Those skilled in the art can understand that the units and algorithm steps of each example described in combination with the embodiments disclosed herein can be realized in electronic hardware or a combination of computer software and electronic hardware. Whether the functions are realized 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 the embodiments of the present disclosure. Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working process of the above-described system, device and unit can refer to the corresponding process in the foregoing method embodiments, which will not be repeated here.

[0078] In the embodiments disclosed herein, the disclosed methods, products (including but not limited to devices, apparatuses, etc.) can be implemented in other manners. For example, the described device embodiments are merely schematic. For example, the division of the units is merely a logical function division. There can be another division manner for the actual implementation, for example, multiple units or components can be combined or integrated into another system, or some of the components can be ignored or not executed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections can be indirect couplings or communication connections through some interfaces, devices or units, and can be in electrical, mechanical or other forms. The unit illustrated as a separate component can or can not be physically separate, and can or can not be a physical component. Some or all of the units can be selected according to actual needs to implement the embodiments. In addition, the units in the embodiments disclosed herein can be integrated into one processing unit, or each unit can exist physically as a separate unit, or two or more units can be integrated into one unit.

[0079] The flowcharts and block diagrams in the drawings show the possible implementation architectures, functions and operations of the system, method and computer program product according to the embodiments of the present disclosure. In this regard, each block in the flowcharts or block diagrams can represent a module, a program segment or a part of code containing one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the blocks can occur in different orders than those noted in the drawings. For example, two consecutive blocks can actually be executed substantially in parallel, and sometimes they can be executed in reverse order, depending on the functions involved. In the descriptions corresponding to the flowcharts and block diagrams in the drawings, the operations or steps corresponding to different blocks can also occur in different orders from those disclosed in the descriptions, and sometimes there is no specific order between different operations or steps. For example, two consecutive operations or steps can actually be executed substantially in parallel, and sometimes they can be executed in reverse order, depending on the functions involved. Each block in the block diagrams and / or flowcharts, and the combination of blocks in the block diagrams and / or flowcharts, can be implemented by a dedicated hardware-based system that performs the specified functions or actions, or can be implemented by a combination of dedicated hardware and computer instructions.

Claims

1. A method for upgrading controller software, characterized in that, include: Set the upgrade information for the original controller, wherein the original controller includes application layer software and underlying software, and the upgrade information includes the application layer software identifier of the application layer software and the underlying software identifier of the underlying software; In response to the successful upgrade of the application layer software, the underlying software identifier of the underlying software is updated according to the application layer software identifier of the application layer software. In response to the collection command corresponding to the upgrade information, the target software identifier is determined from the application layer software identifier of the application layer software and the underlying software identifier of the underlying software, and the application layer software is upgraded according to the software upgrade package corresponding to the target software identifier, wherein the software upgrade package is obtained by matching the target software identifier; Setting the upgrade information for the original controller includes obtaining the factory software identifier corresponding to the application layer software and the default underlying identifier corresponding to the underlying software identifier; setting the application layer software identifier of the application layer software to the factory software identifier, and setting the underlying software identifier of the underlying software to the default underlying identifier. Determining the target software identifier from the application layer software identifier of the application layer software and the underlying software identifier of the underlying software includes: querying the application layer software identifier of the application layer software and the underlying software identifier of the underlying software; if an application layer software identifier exists, the queried application layer software identifier is determined as the target software identifier; if no application layer software identifier exists, the default underlying identifier is compared with the queried underlying software identifier to obtain an identifier comparison result; if the identifier comparison result includes a difference between the default underlying identifier and the underlying software identifier, the queried underlying software identifier is determined as the target software identifier; if the identifier comparison result includes a difference between the default underlying identifier and the underlying software identifier, the application layer software identifier of the application layer software is reset according to a preset backup software identifier.

2. The method according to claim 1, characterized in that, After determining the application layer software identifier as the target software identifier, and before upgrading the application layer software according to the software upgrade package corresponding to the target software identifier, the method further includes: Update the backup software identifier based on the application layer software identifier.

3. The method according to claim 1, characterized in that, Before resetting the application layer software identifier of the application layer software according to the preset backup software identifier, the method further includes: Obtain the software failure record corresponding to the original controller; If the target software fails to upgrade in the previous software upgrade as confirmed by the software failure record, the application layer software identifier of the application layer software is reset according to the preset backup software identifier.

4. The method according to claim 3, characterized in that, After setting the upgrade information for the original controller, the method further includes: In response to the application layer software upgrade failure, the controller name of the original controller is obtained, and a software failure record is generated based on at least one of the controller name and the target software identifier.

5. The method according to any one of claims 1 to 4, characterized in that, The software upgrade package corresponding to the target software identifier is obtained using the following method: Obtain the local software version of the application layer software; The target software identifier and the local software version are sent to the server, so that the server matches the cloud upgrade package corresponding to the application layer software and the cloud software version corresponding to the cloud upgrade package according to the target software identifier, and determines the latest version from the local software version and the cloud software version. If the latest version is the cloud software version, the cloud upgrade package is fed back. The received cloud upgrade package is identified as the software upgrade package corresponding to the target software identifier.

6. A controller software upgrade system, characterized in that, include: The query module is used to set the upgrade information of the original controller, wherein the original controller includes application layer software and underlying software, and the upgrade information includes the application layer software identifier of the application layer software and the underlying software identifier of the underlying software. An update module is used to update the underlying software identifier of the underlying software according to the application layer software identifier of the application layer software in response to the successful upgrade of the application layer software. The upgrade module is configured to, in response to the collection command corresponding to the upgrade information, determine the target software identifier from the application layer software identifier of the application layer software and the underlying software identifier of the underlying software, and upgrade the application layer software according to the software upgrade package corresponding to the target software identifier, wherein the software upgrade package is obtained by matching the target software identifier; The query module sets the upgrade information of the original controller in the following way: obtains the factory software identifier corresponding to the application layer software and the default underlying identifier corresponding to the underlying software identifier; sets the application layer software identifier of the application layer software to the factory software identifier, and sets the underlying software identifier of the underlying software to the default underlying identifier. The query module determines the target software identifier from the application layer software identifier of the application layer software and the underlying software identifier of the underlying software in the following way: querying the application layer software identifier of the application layer software and the underlying software identifier of the underlying software; if an application layer software identifier exists, the queried application layer software identifier is determined as the target software identifier; if no application layer software identifier exists, the default underlying identifier is compared with the queried underlying software identifier to obtain an identifier comparison result; if the identifier comparison result includes a difference between the default underlying identifier and the underlying software identifier, the queried underlying software identifier is determined as the target software identifier; if the identifier comparison result includes a difference between the default underlying identifier and the underlying software identifier, the application layer software identifier of the application layer software is reset according to the preset backup software identifier.

7. An electronic device, characterized in that, include: Processor and memory; The memory is used to store a computer program, and the processor is used to execute the computer program stored in the memory to cause the electronic device to perform the method as described in any one of claims 1 to 5.

8. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, it implements the method as described in any one of claims 1 to 5.

Citation Information

Patent Citations

  • Data processing method, device and equipment and storage medium

    CN110569046A

  • OTA upgrading method and device, electronic equipment and readable storage medium

    CN114816495A