Vehicle machine ECU code upgrading method and device, server and storage medium
Patent Information
- Application Number
- CN202211463700.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-22
- Publication Date
- 2026-11-03
- Estimated Expiration
- 2042-11-22
AI Technical Summary
During the vehicle infotainment system upgrade process, the firmware image waits for local reception and verification before being written to the flash memory, resulting in a long upgrade time and an inability to effectively control the vehicle, requiring users to wait for an extended period.
By dividing the cloud computer memory into a cloud computer memory area and an upgrade code temporary storage area, a temporary boot loading file is generated using the monitoring allocation process and firmware upgrade process. This file is then written into the flash memory area of the vehicle's ECU, replacing the original boot loading file and enabling automatic ECU code upgrades.
The upgrade is completed before the vehicle starts, eliminating the need for users to wait, thus improving the user experience and enabling real-time vehicle control.
Smart Images

Figure CN115718617B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of electronic information technology, and in particular to a method, apparatus, server and storage medium for upgrading vehicle ECU code. Background Technology
[0002] With societal progress, automobiles have become an essential mode of transportation for almost every household, making life increasingly convenient. Furthermore, with the development of advanced technologies in the automotive field, increasingly intelligent devices and functions are being integrated into vehicles. These devices and functions are typically controlled by corresponding ECUs (Electronic Control Units). The emergence of OTA (Over-The-Air) technology allows car owners to upgrade and update their vehicle's ECUs without visiting dealerships or repair shops, thus providing a better user experience and reducing costs for car developers. Therefore, it is gradually becoming the trend for software upgrades of in-vehicle electronic devices.
[0003] In the process of developing this invention, the inventors discovered the following technical problem: During the vehicle infotainment system upgrade process, the entire firmware image is awaited locally before being written to the flash memory. Upon receiving the entire image, verification is performed before writing the image begins. Checksums or suspicious string sequences may be identified as faults, and the firmware will not be updated. Besides network limitations, the firmware upgrade itself takes a considerable amount of time. During this process, the vehicle cannot be effectively controlled, and the user must wait a long time for the upgrade to complete. Summary of the Invention
[0004] This invention provides a method, apparatus, server, and storage medium for upgrading vehicle ECU code, in order to solve the technical problem that the long upgrade process of vehicle ECU in the prior art results in vehicles not being usable for a long time.
[0005] In a first aspect, embodiments of the present invention provide a method for upgrading vehicle ECU code, including:
[0006] Determine if a new version of the ECU code exists. If a new version exists, load the upgraded vehicle image, which includes an embedded monitoring and allocation process and a firmware upgrade process.
[0007] The monitoring and allocation process is used to divide the memory into a cloud computer memory area and an upgrade code temporary storage area, and the isolation between the cloud computer memory area and the upgrade code temporary storage area is controlled.
[0008] The model of the vehicle ECU is obtained using the firmware upgrade process, and a corresponding temporary boot loading file is generated. The starting address of the executable program of the temporary boot loading file is the starting address of the upgrade code temporary storage area.
[0009] The temporary startup loading file is written into the first flash memory area of the vehicle's ECU to replace the original startup loading file.
[0010] Secondly, embodiments of the present invention also provide a vehicle ECU code upgrade device, comprising:
[0011] The judgment module is used to determine whether a new version of the ECU code exists. If a new version exists, the upgraded vehicle image is loaded. The upgraded vehicle image includes an embedded monitoring and allocation process and a firmware upgrade process.
[0012] The partitioning module is used to divide the memory into a cloud computer memory area and an upgrade code temporary storage area using the monitoring and allocation process, and to control the isolation between the cloud computer memory area and the upgrade code temporary storage area.
[0013] The generation module is used to obtain the model of the vehicle ECU using the firmware upgrade process and generate a corresponding temporary startup loading file. The starting address of the executable program of the temporary startup loading file is the starting address of the upgrade code temporary storage area.
[0014] The replacement module is used to write the temporary startup loading file into the first flash memory area of the vehicle ECU to replace the original startup loading file.
[0015] Thirdly, embodiments of the present invention also provide a server, comprising:
[0016] One or more processors;
[0017] Storage device for storing one or more programs;
[0018] When the one or more programs are executed by the one or more processors, the one or more processors implement the vehicle ECU code upgrade method provided in the above embodiments.
[0019] Fourthly, embodiments of the present invention also provide a storage medium containing computer-executable instructions, which, when executed by a computer processor, are used to perform the vehicle ECU code upgrade method provided in the above embodiments.
[0020] The vehicle ECU code upgrade method, device, server, and storage medium provided in this invention determine whether a new version of the ECU code exists. If a new version exists, an upgrade vehicle image is loaded. The upgrade vehicle image includes an embedded monitoring and allocation process and a firmware upgrade process. The monitoring and allocation process divides the memory into a cloud computer memory area and an upgrade code temporary storage area, and controls the isolation between the cloud computer memory area and the upgrade code temporary storage area. The firmware upgrade process obtains the model of the vehicle ECU and generates a corresponding temporary boot loading file. The starting address of the executable program of the temporary boot loading file is the starting address of the upgrade code temporary storage area. The temporary boot loading file is written to the first flash memory area of the vehicle ECU, replacing the original boot loading file. By using the process in the vehicle image to separately allocate an upgrade code temporary storage area in the vehicle cloud computer memory, it is convenient to cache the upgrade code in the temporary storage area. By modifying the memory address in the boot loading file to the address of the upgrade code temporary storage area, automatic ECU code upgrade is achieved. Verification and other processes can be run before the vehicle starts. Users can control the vehicle without waiting, improving the user experience. Attached Figure Description
[0021] Other features, objects, and advantages of the invention will become more apparent from the following detailed description of non-limiting embodiments with reference to the accompanying drawings:
[0022] Figure 1 This is a flowchart of the vehicle ECU code upgrade method provided in Embodiment 1 of the present invention;
[0023] Figure 2 This is a flowchart of the vehicle ECU code upgrade method provided in Embodiment 2 of the present invention;
[0024] Figure 3 This is a flowchart of the vehicle ECU code upgrade method provided in Embodiment 3 of the present invention;
[0025] Figure 4 This is a structural diagram of the vehicle ECU code upgrade device provided in Embodiment 5 of the present invention;
[0026] Figure 5 This is a structural diagram of the server provided in Embodiment 5 of the present invention. Detailed Implementation
[0027] The present invention will now be described in further detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and not intended to limit it. Furthermore, it should be noted that, for ease of description, the accompanying drawings show only the parts relevant to the present invention, and not all of the structures.
[0028] Example 1
[0029] Figure 1 This is a flowchart of a vehicle ECU code upgrade method provided in Embodiment 1 of the present invention. This embodiment is applicable to situations where vehicle ECU code is upgraded at high speed using a vehicle cloud computer. The method can be executed by a vehicle ECU code upgrade device and is correspondingly set in the cloud computer vehicle system. Specifically, it includes the following steps:
[0030] Step 110: Determine if a new version of the ECU code exists. If a new version exists, load the upgraded vehicle image. The upgraded vehicle image includes an embedded monitoring and allocation process and a firmware upgrade process.
[0031] In this embodiment, the vehicle-mounted system can be a cloud-based computer system. The cloud computer is a comprehensive service solution, including cloud resources, transmission protocols, and cloud terminals. Using an open cloud terminal and transmission protocols, resources such as desktops, applications, and hardware are provided to users in an on-demand, flexibly allocated service model. The cloud-based computer system can provide users with a wide range of multimedia services, application services, and navigation services.
[0032] Due to the nature of cloud-based computer services, the cloud-based in-vehicle computer system can automatically download and upgrade the latest applications in the background after each exit, ensuring that the latest applications are used without the user needing to worry about the upgrades. Furthermore, because data is stored in the cloud, data security is fully guaranteed, and the possibility of tampering is low, facilitating accident investigations and vehicle optimization.
[0033] However, in addition to the in-vehicle infotainment system equipped with Android or other desktop systems, vehicles also have an ECU. Since ECUs are generally embedded, they cannot be upgraded using the aforementioned upgrade methods. Therefore, cloud computers need to be configured and optimized to meet the requirements for rapid upgrades to the embedded systems in the in-vehicle infotainment system.
[0034] First, when the cloud-based in-vehicle infotainment system starts up, it checks whether a new version of the ECU code exists. Specifically, a log table can be set up on the cloud-based in-vehicle infotainment platform to record the version numbers of various applications and embedded systems in the in-vehicle infotainment system corresponding to each image, and it can periodically establish a connection with the in-vehicle infotainment system manufacturer's server to determine whether a new version exists by comparing the version numbers.
[0035] If it is determined that a new version does not exist, load the standard vehicle infotainment image. The standard vehicle infotainment image corresponds to the image saved when the cloud computer vehicle infotainment system was last exited. Since no upgrades or modifications to the ECU system are required, it only needs to provide services for the corresponding Android or other systems.
[0036] Once a new version is confirmed, the upgraded vehicle infotainment system image needs to be loaded. This upgraded image is generated by modifying a regular vehicle infotainment system image. Specifically, it requires the additional embedding of a monitoring allocation process and a firmware upgrade process.
[0037] Step 120: Use the monitoring and allocation process to divide the memory into a cloud computer memory area and an upgrade code temporary storage area, and control the isolation of the cloud computer memory area and the upgrade code temporary storage area.
[0038] In this embodiment, the monitoring and allocation process is used to partition the vehicle's memory for the cloud computer, forming at least one cloud computer vehicle memory area and one upgrade code temporary storage area. Memory management unit (MMU) technology can be used to implement memory space domain isolation techniques, including bitmap, paging, segmentation, multi-level paging, segmented paging, and short-circuit segment tree methods. Physical memory can be partitioned, and physical page access management can be performed using specific registers in the MMU and by specifying access permissions with bits.
[0039] The cloud-based in-vehicle computer memory area can be used to support the normal operation of the cloud-based in-vehicle computer system. Correspondingly, the upgrade code temporary storage area can store the corresponding ECU in-vehicle computer upgrade code instructions.
[0040] Step 130: Obtain the model of the vehicle ECU using the firmware upgrade process, and generate a corresponding temporary boot loading file. The starting address of the executable program of the temporary boot loading file is the starting address of the upgrade code temporary storage area.
[0041] The firmware upgrade process can access specific addresses in the existing ECUs in the vehicle's infotainment system to obtain relevant ECU information, such as model and version number. It then generates a corresponding temporary bootloader file. The bootloader runs before the operating system kernel. It initializes hardware devices and establishes a memory space mapping, bringing the system's hardware and software environment to a suitable state to prepare for the final call to the operating system kernel. The bootloader is the first piece of code executed by the embedded system after power-on. After initializing the CPU and related hardware, it loads the operating system image or the embedded application into memory and then jumps to the space where the ECU operating system resides, starting the ECU operating system. This involves jumping to the corresponding program code and executing it sequentially. Since the upgraded code is temporarily stored in the upgrade code temporary storage area, the starting address of this temporary storage area can be written to the bootloader.
[0042] This allows the upgraded code programs to be executed sequentially after the hardware initialization is complete.
[0043] Step 140: Write the temporary startup loading file into the first flash memory area of the vehicle ECU to replace the original startup loading file.
[0044] The first flash memory area of the vehicle ECU can be a level 1 cache that can be directly read by the CPU. After generating the temporary startup loading file, when the vehicle starts, an authentication connection is established between the thin client and the cloud computer vehicle system platform, and the temporary startup loading file is written into the corresponding level 1 cache. The thin client can be a basic hardware configuration that supports the operation of the cloud computer vehicle system, such as a hardware terminal configuration including a display screen, microphone, and voice playback device. In this embodiment, due to the use of the cloud computer vehicle system configuration, the thin client is usually started first, and then the ECU is started. Since the temporary startup loading file is usually only a few KB in size, it can be quickly written into the corresponding level 1 cache during this process. This allows the ECU to use the temporary startup loading file during startup initialization. Then, by reading the code in the upgrade code temporary storage area, the upgraded code can be directly used during this startup. Compared with the traditional method, the download verification process can be performed before startup, allowing the user to directly control the car after startup.
[0045] This embodiment determines whether a new version of the ECU code exists. If a new version exists, an upgraded vehicle system image is loaded. This upgraded vehicle system image includes an embedded monitoring and allocation process and a firmware upgrade process. The monitoring and allocation process divides the memory into a cloud computer memory area and an upgrade code temporary storage area, and controls the isolation between the cloud computer memory area and the upgrade code temporary storage area. The firmware upgrade process obtains the model of the vehicle system ECU and generates a corresponding temporary boot loading file. The starting address of the executable program of the temporary boot loading file is the starting address of the upgrade code temporary storage area. The temporary boot loading file is written to the first flash memory area of the vehicle system ECU, replacing the original boot loading file. By using the process in the vehicle system image to separately allocate an upgrade code temporary storage area in the vehicle system cloud computer memory, it is easy to cache the upgrade code in the temporary storage area. By modifying the memory address in the boot loading file to the address of the upgrade code temporary storage area, automatic ECU code upgrades are achieved. Verification and other processes can run before the vehicle system starts. Users can control the vehicle without waiting, improving the user experience.
[0046] Example 2
[0047] Figure 2 This is a flowchart illustrating the vehicle ECU code upgrade method provided in Embodiment 2 of the present invention. This embodiment is an optimization based on the above embodiment. In this embodiment, the method may further include the following step: writing the upgrade code temporary storage area code into the second flash memory area of the vehicle ECU, overwriting the original ECU code.
[0048] Accordingly, the vehicle ECU code upgrade method provided in this embodiment specifically includes:
[0049] Step 210: Determine if a new version of the ECU code exists. If a new version exists, load the upgraded vehicle image. The upgraded vehicle image includes an embedded monitoring and allocation process and a firmware upgrade process.
[0050] Step 220: Use the monitoring and allocation process to divide the memory into a cloud computer memory area and an upgrade code temporary storage area, and control the isolation of the cloud computer memory area and the upgrade code temporary storage area.
[0051] Step 230: Obtain the model of the vehicle ECU using the firmware upgrade process, and generate a corresponding temporary boot loading file. The starting address of the executable program of the temporary boot loading file is the starting address of the upgrade code temporary storage area.
[0052] Step 240: Write the temporary startup loading file into the first flash memory area of the vehicle ECU to replace the original startup loading file.
[0053] Step 250: Write the upgrade code temporary storage area code into the second flash memory area of the vehicle ECU, overwriting the original ECU code.
[0054] In this embodiment, during vehicle infotainment system operation, the code in the original ECU system can be upgraded so that the local ECU system can be automatically run the next time the system runs. This avoids the impact on the operation of the vehicle infotainment ECU system due to network signal failures and delays in special, unforeseen circumstances. For example, during normal vehicle operation, the upgraded code in the temporary storage area can be written into the second flash memory area of the vehicle infotainment ECU, overwriting the original ECU code. The second flash memory area of the vehicle infotainment ECU can be a corresponding secondary cache used to store the corresponding ECU program code. Through this method, the ECU code upgrade can be completed without the user's awareness.
[0055] This embodiment adds the following step: writing the upgrade code from the temporary storage area into the second flash memory area of the vehicle's ECU, overwriting the original ECU code. This allows the ECU code upgrade to be completed without the user's notice during normal vehicle operation. It avoids the impact on the operation of the vehicle's ECU system due to network signal failures and delays in special, unforeseen circumstances.
[0056] In a preferred embodiment of this example, the method may further include the following step: restoring the original boot loading file to the first flash memory area of the vehicle ECU to replace the temporary boot loading file. With this modification, the vehicle ECU can load the corresponding program code sequentially according to the original addresses and run the upgraded ECU program upon the next startup.
[0057] Example 3
[0058] Figure 3 This is a flowchart illustrating the vehicle ECU code upgrade method provided in Embodiment 3 of the present invention. This embodiment is an optimization based on the above embodiment. In this embodiment, the method may further include the following step: allocating memory to the vehicle cloud computer container according to a preset upgrade standard, so that the memory size meets the needs of the cloud computer memory area and the upgrade code temporary storage area.
[0059] Accordingly, the vehicle ECU code upgrade method provided in this embodiment specifically includes:
[0060] Step 310: Determine if a new version of the ECU code exists. If a new version exists, allocate memory to the vehicle's cloud computer container according to the preset upgrade standard so that the memory size meets the needs of the cloud computer memory area and the upgrade code temporary storage area.
[0061] In this embodiment, the vehicle-mounted cloud computer can be optimized for ECU code upgrade scenarios. As described above, to ensure the normal operation of the vehicle-mounted cloud computer, additional memory space needs to be allocated when configuring the hardware conditions of the cloud computer and the vehicle-mounted system. Specifically, memory can be allocated according to a preset upgrade standard. The preset upgrade standard can be an additional storage space based on the maximum possible upgrade code size for all types of ECUs, on top of the memory required for the original normal operation of the vehicle-mounted cloud computer. The corresponding memory space size can be allocated according to the corresponding standard when allocating the container.
[0062] Furthermore, the method may also include the following steps: initializing the memory using the monitoring and allocation process to ensure that the address of the upgrade code temporary storage area is consistent with the second flash memory area of the vehicle ECU. For example, the size of the second flash memory area of the ECU can be obtained through the firmware upgrade process, and the monitoring and allocation process can be used to initialize and allocate the address of the upgrade code temporary storage area to be consistent with the second flash memory area of the vehicle ECU. This ensures that the physical memory addresses of the two are consistent, facilitating the execution of the corresponding ECU upgrade code.
[0063] Step 320: Load the upgraded vehicle infotainment system image, which includes an embedded monitoring allocation process and a firmware upgrade process.
[0064] Step 330: Use the monitoring and allocation process to divide the memory into a cloud computer memory area and an upgrade code temporary storage area, and control the isolation of the cloud computer memory area and the upgrade code temporary storage area.
[0065] Step 340: Obtain the model of the vehicle ECU using the firmware upgrade process, and generate a corresponding temporary boot loading file. The starting address of the executable program of the temporary boot loading file is the starting address of the upgrade code temporary storage area.
[0066] Step 350: Write the temporary startup loading file into the first flash memory area of the vehicle ECU to replace the original startup loading file.
[0067] This embodiment adds the following step: allocating memory to the vehicle's cloud computer container according to a preset upgrade standard, ensuring that the memory size meets the needs of the cloud computer's memory area and the upgrade code temporary storage area. When a new code version is confirmed, the configuration of the cloud computer in the vehicle can be optimized, satisfying both the ECU code upgrade and the cloud computer's computational needs. Simultaneously, the memory initialization settings can be performed using the monitoring allocation process, ensuring that the address of the upgrade code temporary storage area is consistent with the second flash memory area of the vehicle's ECU. This facilitates the execution of the corresponding code program in the upgrade code temporary storage area.
[0068] Example 4
[0069] Figure 4 This is a schematic diagram of the structure of the vehicle ECU code upgrade device provided in Embodiment 4 of the present invention, as shown below. Figure 4 As shown, the device includes:
[0070] The judgment module 410 is used to determine whether there is a new version of the ECU code. If there is a new version, the upgraded vehicle image is loaded. The upgraded vehicle image includes an embedded monitoring and allocation process and a firmware upgrade process.
[0071] The partitioning module 420 is used to divide the memory into a cloud computer memory area and an upgrade code temporary storage area using the monitoring and allocation process, and to control the isolation of the cloud computer memory area and the upgrade code temporary storage area.
[0072] The generation module 430 is used to obtain the model of the vehicle ECU using the firmware upgrade process and generate a corresponding temporary startup loading file. The starting address of the executable program of the temporary startup loading file is the starting address of the upgrade code temporary storage area.
[0073] Replacement module 440 is used to write the temporary startup loading file into the first flash memory area of the vehicle ECU to replace the original startup loading file.
[0074] The vehicle ECU code upgrade device provided in this embodiment determines whether a new version of the ECU code exists. If a new version exists, it loads an upgraded vehicle image, which includes an embedded monitoring and allocation process and a firmware upgrade process. The monitoring and allocation process divides the memory into a cloud computer memory area and an upgrade code temporary storage area, and controls the isolation between the cloud computer memory area and the upgrade code temporary storage area. The firmware upgrade process obtains the model of the vehicle ECU and generates a corresponding temporary boot loading file. The starting address of the executable program of the temporary boot loading file is the starting address of the upgrade code temporary storage area. The temporary boot loading file is written to the first flash memory area of the vehicle ECU, replacing the original boot loading file. By using the process in the vehicle image to separately allocate an upgrade code temporary storage area in the vehicle cloud computer memory, it is easy to cache the upgrade code in the temporary storage area. By modifying the memory address in the boot loading file to the address of the upgrade code temporary storage area, automatic ECU code upgrades are achieved. Verification and other processes can be run before the vehicle starts. Users can control the vehicle without waiting, improving the user experience.
[0075] Based on the above embodiments, the device further includes:
[0076] The overlay module is used to write the upgrade code temporary storage area code into the second flash memory area of the vehicle ECU, overwriting the original ECU code.
[0077] Based on the above embodiments, the device further includes:
[0078] The allocation module is used to allocate memory to the vehicle-mounted cloud computer container according to the preset upgrade standards, so that the memory size meets the needs of the cloud computer memory area and the upgrade code temporary storage area.
[0079] Based on the above embodiments, the upgrade code temporary storage area is the same size as the second flash memory area of the vehicle ECU.
[0080] Based on the above embodiments, the device further includes:
[0081] An initialization module is used to initialize the memory using the monitoring and allocation process, so that the address of the upgrade code temporary storage area is consistent with the second flash memory area of the vehicle ECU.
[0082] Based on the above embodiments, the device further includes:
[0083] The standard loading module is used to load a standard vehicle infotainment image when a new version is not available.
[0084] The vehicle ECU code upgrade device provided in this embodiment of the invention can execute the vehicle ECU code upgrade method provided in any embodiment of the invention, and has the corresponding functional modules and beneficial effects of the method.
[0085] Example 5
[0086] Figure 5 This is a schematic diagram of the structure of a server provided in Embodiment 5 of the present invention. Figure 5 A block diagram of an exemplary server 12 suitable for implementing embodiments of the present invention is shown. Figure 5 The server 12 shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of the present invention.
[0087] like Figure 5 As shown, server 12 is presented in the form of a general-purpose computing server. The components of server 12 may include, but are not limited to: one or more processors or processing units 16, system memory 28, and bus 18 connecting different system components (including system memory 28 and processing unit 16).
[0088] Bus 18 represents one or more of several bus architectures, including a memory bus or memory controller, a peripheral bus, a graphics acceleration port, a processor, or a local bus using any of the various bus architectures. For example, these architectures include, but are not limited to, the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MAC) bus, the Enhanced ISA bus, the Video Electronics Standards Association (VESA) local bus, and the Peripheral Component Interconnect (PCI) bus.
[0089] Server 12 typically includes a variety of computer system readable media. These media can be any available media that can be accessed by server 12, including volatile and non-volatile media, removable and non-removable media.
[0090] System memory 28 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and / or cache 32. Server 12 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, storage system 34 may be used to read and write non-removable, non-volatile magnetic media (… Figure 5 Not shown; usually referred to as a "hard drive"). Although Figure 5Not shown, a disk drive for reading and writing to a removable non-volatile disk (e.g., a "floppy disk") and an optical disk drive for reading and writing to a removable non-volatile optical disk (e.g., a CD-ROM, DVD-ROM, or other optical media) may be provided. In these cases, each drive may be connected to bus 18 via one or more data media interfaces. System memory 28 may include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of the embodiments of the present invention.
[0091] A program / utility 40 having a set (at least one) of program modules 42 may be stored, for example, in system memory 28. Such program modules 42 include, but are not limited to, an operating system, one or more application programs, other program modules, and program data. Each or some combination of these examples may include an implementation of a network environment. Program modules 42 typically perform the functions and / or methods described in the embodiments of the present invention.
[0092] Server 12 can also communicate with one or more external servers 14 (e.g., keyboard, pointing server, display 24, etc.), one or more servers that enable users to interact with server 12, and / or any server (e.g., network card, modem, etc.) that enables server 12 to communicate with one or more other computing servers. This communication can be performed via input / output (I / O) interface 22. Furthermore, server 12 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via network adapter 20. As shown, network adapter 20 communicates with other modules of server 12 via bus 18. It should be understood that, although not shown in the figures, other hardware and / or software modules can be used in conjunction with server 12, including but not limited to: microcode, server drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0093] The processing unit 16 executes various functional applications and data processing by running programs stored in the system memory 28, such as implementing the vehicle ECU code upgrade method provided in the embodiments of the present invention.
[0094] Example 6
[0095] Embodiment 6 of the present invention also provides a storage medium containing computer-executable instructions, which, when executed by a computer processor, are used to perform the vehicle ECU code upgrade method as described in any of the above embodiments.
[0096] The computer storage medium of this invention can be any combination of one or more computer-readable media. A computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this document, a computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
[0097] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, capable of sending, propagating, or transmitting programs for use by or in connection with an instruction execution system, apparatus, or device.
[0098] Program code contained on a computer-readable medium may be transmitted using any suitable medium, including—but not limited to—wireless, wire, optical fiber, RF, etc., or any suitable combination thereof.
[0099] Computer program code for performing the operations of this invention can be written in one or more programming languages or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, and C++, as well as conventional procedural programming languages such as "C" or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0100] Note that the above description is merely a preferred embodiment of the present invention and the technical principles employed. Those skilled in the art will understand that the present invention is not limited to the specific embodiments described herein, and various obvious changes, readjustments, and substitutions can be made without departing from the scope of protection of the present invention. Therefore, although the present invention has been described in detail through the above embodiments, the present invention is not limited to the above embodiments, and may include many other equivalent embodiments without departing from the concept of the present invention, the scope of which is determined by the scope of the appended claims.
Claims
1. A method for upgrading vehicle ECU code, characterized in that, include: Determine if a new version of the ECU code exists. If a new version exists, the vehicle cloud computer loads the upgraded vehicle image. The upgraded vehicle image is generated by modifying a regular vehicle image and embeds a monitoring and allocation process and a firmware upgrade process. The monitoring and allocation process embedded in the upgraded vehicle system image is used to divide the memory of the vehicle system cloud computer into a cloud computer memory area and an upgrade code temporary storage area, and the use of the cloud computer memory area and the upgrade code temporary storage area is controlled to be isolated. The model of the vehicle ECU is obtained by using the firmware upgrade process embedded in the upgraded vehicle image, and a corresponding temporary boot loading file is generated. The starting address of the executable program of the temporary boot loading file is the starting address of the upgrade code temporary storage area. The temporary startup loading file is written into the first flash memory area of the vehicle ECU to replace the original startup loading file, so that the vehicle ECU executes the upgrade code in the upgrade code temporary storage area when it starts up.
2. The method according to claim 1, characterized in that, The method further includes: The upgrade code temporary storage area code is written into the second flash memory area of the vehicle ECU, overwriting the original ECU code.
3. The method according to claim 2, characterized in that, The method further includes: The original boot load file is restored to the first flash memory area of the vehicle's ECU, replacing the temporary boot load file.
4. The method according to claim 1, characterized in that, The method further includes: Allocate memory to the vehicle-mounted cloud computer container according to the preset upgrade standards so that the memory size meets the needs of the cloud computer's memory area and the upgrade code temporary storage area.
5. The method according to claim 4, characterized in that, The upgrade code temporary storage area is the same size as the second flash memory area of the vehicle ECU.
6. The method according to claim 5, characterized in that, The method further includes: The monitoring and allocation process is used to initialize the memory so that the address of the upgrade code temporary storage area is consistent with the second flash memory area of the vehicle ECU.
7. The method according to claim 1, characterized in that, The method further includes: If a new version is not available, load a regular vehicle infotainment image.
8. A vehicle ECU code upgrade device, characterized in that, include: The judgment module is used to determine whether a new version of the ECU code exists. If a new version exists, the vehicle cloud computer loads the upgraded vehicle image. The upgraded vehicle image is generated by modifying a regular vehicle image and embeds a monitoring allocation process and a firmware upgrade process. The partitioning module is used to divide the memory of the vehicle's cloud computer into a cloud computer memory area and an upgrade code temporary storage area using the monitoring and allocation process embedded in the upgraded vehicle image, and to control the isolation of the cloud computer memory area and the upgrade code temporary storage area. The generation module is used to obtain the model of the vehicle ECU by utilizing the firmware upgrade process embedded in the upgraded vehicle image, and generate a corresponding temporary boot loading file. The starting address of the executable program of the temporary boot loading file is the starting address of the upgrade code temporary storage area. The replacement module is used to write the temporary startup loading file into the first flash memory area of the vehicle ECU to replace the original startup loading file, so that the vehicle ECU executes the upgrade code in the upgrade code temporary storage area when it starts up.
9. A server, characterized in that, The server includes: One or more processors; Storage device for storing one or more programs; When the one or more programs are executed by the one or more processors, the one or more processors implement the vehicle ECU code upgrade method as described in any one of claims 1-7.
10. A storage medium containing computer-executable instructions, which, when executed by a computer processor, are used to perform the vehicle ECU code upgrade method as described in any one of claims 1-7.
Citation Information
Patent Citations
Starting and loading upgrading method and device for whole vehicle control unit, whole vehicle control unit and vehicle
CN108920196A
Hot updates to controller software using tool chain
US20220058013A1
