Method and device for adjusting storage space division of control unit of vehicle

By dividing multiple blocks and backup blocks in the nonvolatile memory of the vehicle control unit, and using the second boot program to adjust the storage space, the problem of not being able to support OTA updates and rollbacks in the prior art is solved, and more efficient software updates and fault responses are achieved.

CN120104034APending Publication Date: 2025-06-06ROBERT BOSCH GMBH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311644949.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-12-04
Publication Date
2025-06-06

AI Technical Summary

Technical Problem

There is no backup area in the storage space division of existing vehicle control units, which makes it impossible to support OTA update and rollback mechanisms, increasing the response cost of software defects and failures.

Method used

By dividing a plurality of blocks in the nonvolatile memory of the vehicle control unit, including a customer boot program (CB) block, an application (ASW) block, a data set (DS) block and a corresponding backup block, these blocks are erased and written by the second boot program, adjustment and backup of the storage space is achieved.

Benefits of technology

It supports OTA update and rollback mechanisms, reduces the cost and time of vehicle software updates, and improves user experience and normal use capabilities of the vehicle.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120104034A_ABST
    Figure CN120104034A_ABST
Patent Text Reader

Abstract

Methods and apparatus for adjusting a storage space partition of a control unit of a vehicle are disclosed herein. According to one aspect of the present disclosure, a non-volatile memory of a control unit is divided into a plurality of blocks, including a CB block storing a first boot program, an ASW block storing a first application program, and a DS block storing a first data set, the method comprising: erasing the CB block and writing a second boot program therein; activating execution of the second boot program copied into the random access memory of the control unit; erasing the adjusted ASW block indicated by the second bootstrap program through the second bootstrap program and writing the second application program into the second bootstrap program; and erasing, by a second boot program, the adjusted DS block indicated by the second boot program and writing the second data set therein, where the second boot program also indicates a backup block in the non-volatile memory corresponding to one or more of the CB block, the adjusted ASW block, and the adjusted DS block.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates generally to vehicle technology, and more particularly to a method and apparatus for adjusting the partitioning of a storage space of a control unit of a vehicle. Background Art

[0002] The evolution of vehicle technology is inseparable from the rapid development of electronic information technology in recent decades. More and more vehicle driving-related components and subsystems rely on software to control their operation. At the same time, modern vehicles are also providing more infotainment and other functions, which are also based on corresponding software. With the improvement of the level of automobile intelligence, various advanced driver assistance systems (ADAS) are also equipped in vehicles, relying on the cooperation of software and hardware to reduce the burden on drivers and improve driving safety.

[0003] With the introduction of a large amount of software in various control units of the vehicle (including but not limited to vehicle control unit (VCU), electronic control unit (ECU), fuel cell control unit (FCCU), battery management system (BMS), etc.), how to update these software conveniently and quickly becomes a problem. The traditional solution requires the vehicle to return to the maintenance station and use special tools to upgrade the software of the vehicle control unit. This method consumes a lot of manpower and material resources, and it is difficult to ensure timely response after the discovery of software defects / software failures for a large number of individual vehicles.

[0004] Vehicle OTA update refers to the vehicle manufacturer providing upgrades for software (including firmware) and related data to the vehicle through wireless means. OTA updates are sent through wireless connections and automatically installed on the vehicle. The introduction of this technology effectively reduces after-sales service costs, responds to software defects / failures more quickly and conveniently, and greatly improves the user experience.

[0005] The software to be run by the vehicle control unit and the corresponding data to be used are usually stored in the non-volatile memory of the control unit (for example, flash memory). Update means replacing the old version of the software / data stored in the non-volatile memory with the new version of the software / data. A basic feature of today's vehicle OTA updates is to ensure that rollback can be achieved in the event of a failure during the update process. To support rollback, the content to be updated needs to be backed up during the update process. However, many existing vehicle control units do not have a corresponding backup area in the storage space division, and some vehicle control units did not make this setting at the beginning of the design for various reasons.

[0006] Therefore, there is a need to adjust the storage space partition of such control units to support backup / rollback and thus support OTA updates. Summary of the invention

[0007] In the summary section, some selected concepts are introduced in a simplified form, which will be further described in the detailed description section below. This summary section is not intended to identify any key features or essential features of the claimed subject matter, nor is it intended to be used to help determine the scope of the claimed subject matter.

[0008] According to one aspect of the present disclosure, a method for adjusting the storage space division of a control unit of a vehicle is provided, wherein a non-volatile memory of the control unit is divided into a plurality of blocks, the plurality of blocks including a customer boot program (CB) block storing a first boot program, an application program (ASW) block storing a first application program, and a data set (DS) block storing a first data set, the method comprising: erasing the CB block and writing a second boot program different from the first boot program into the CB block; activating the execution of the second boot program copied to the random access memory of the control unit; erasing the second boot program by the second boot program The second boot program indicates an adjusted ASW block and writes a second application into the adjusted ASW block, wherein the address range of the adjusted ASW block is different from that of the ASW block; and the second boot program erases the adjusted DS block indicated by the second boot program and writes a second data set into the adjusted DS block, wherein the address range of the adjusted DS block is different from that of the DS block, wherein the second boot program also indicates a backup block in the non-volatile memory corresponding to one or more of the CB block, the adjusted ASW block, and the adjusted DS block.

[0009] According to another aspect of the present disclosure, a device for adjusting the storage space division of a control unit of a vehicle is provided, wherein a non-volatile memory of the control unit is divided into a plurality of blocks, the plurality of blocks including a customer boot program (CB) block storing a first boot program, an application program (ASW) block storing a first application program, and a data set (DS) block storing a first data set, the device including: a unit for erasing the CB block and writing a second boot program different from the first boot program into the CB block; a unit for activating the execution of the second boot program copied to the random access memory of the control unit; and a unit for activating the execution of the second boot program copied to the random access memory of the control unit through the second boot program. A unit for erasing an adjusted ASW block indicated by the second boot program and writing a second application to the adjusted ASW block, wherein the address range of the adjusted ASW block is different from that of the ASW block; and a unit for erasing an adjusted DS block indicated by the second boot program and writing a second data set to the adjusted DS block through the second boot program, wherein the address range of the adjusted DS block is different from that of the DS block, wherein the second boot program further indicates a backup block in the non-volatile memory corresponding to one or more of the CB block, the adjusted ASW block, and the adjusted DS block.

[0010] According to another aspect of the present disclosure, a computing device is provided, comprising: at least one processor; and a memory coupled to the at least one processor and used to store instructions, wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform the method described in the present disclosure.

[0011] According to yet another aspect of the present disclosure, a computer-readable storage medium is provided, on which instructions are stored. When the instructions are executed by at least one processor, the at least one processor executes the method described in the present disclosure.

[0012] According to another aspect of the present disclosure, a computer program product is provided, which includes instructions. When the instructions are executed by at least one processor, the at least one processor performs the method described in the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] Implementations of the present disclosure are illustrated by way of example and not limitation in the accompanying drawings in which like reference numerals designate the same or similar parts and in which:

[0014] Figure 1 It is a schematic diagram of the storage space division of the non-volatile memory of the vehicle control unit in the prior art;

[0015] Figure 2 is a schematic diagram of an adjusted storage space partition of a non-volatile memory of a vehicle control unit according to some implementations of the present disclosure;

[0016] Figure 3 A flowchart illustrating an exemplary method according to some implementations of the present disclosure is shown;

[0017] Figure 4 is a schematic diagram of an adjusted storage space partition of a non-volatile memory of a vehicle control unit according to some implementations of the present disclosure;

[0018] Figure 5 A block diagram illustrating an exemplary apparatus according to some implementations of the present disclosure is shown;

[0019] Figure 6 A block diagram of an exemplary computing device according to some implementations of the present disclosure is shown.

[0020] List of reference numerals:

[0021] 110: CB block 120: ASW block 130: DS block

[0022] 210: CB block 220: ASW block 230: DS block

[0023] 240: CB backup block 250: ASW backup block 260: DS backup block

[0024] 310: Erase the CB block and write a second boot program different from the first boot program into the CB block

[0025] 320: Activate execution of the second boot program copied to the random access memory of the control unit

[0026] 330: Erasing the adjusted ASW block indicated by the second boot program through the second boot program and writing the second application program into the adjusted ASW block

[0027] 340: Erasing the adjusted DS block indicated by the second boot program through the second boot program and writing the second data set into the adjusted DS block

[0028] 410: CB block 420: ASW block 430: DS block

[0029] 450: ASW backup block 460: DS backup block

[0030] 510-540: Unit 610: Processor 620: Memory DETAILED DESCRIPTION

[0031] In the following description, a large number of specific details are set forth for the purpose of explanation. However, it should be understood that the implementation of the present disclosure can be implemented without these specific details. In other examples, well-known circuits, structures, and techniques are not shown in detail to avoid affecting the understanding of the description.

[0032] References throughout the specification to "an implementation," "implementation," "exemplary implementations," "some implementations," "various implementations," etc., indicate that the implementations of the present disclosure described may include specific features, structures, or characteristics, however, it does not mean that every implementation must include these specific features, structures, or characteristics. In addition, some implementations may have some, all, or none of the features described for other implementations.

[0033] In a manner that is most helpful for understanding the claimed subject matter, various operations may be described as multiple discrete actions or operations in sequence. However, the order of description should not be interpreted as implying that these operations are necessarily order-dependent. On the contrary, these operations may not be performed in the order presented. In other implementations, various other operations may also be performed, and / or various operations that have been described may be ignored.

[0034] In the specification and claims, the phrase "A and / or B" may appear to mean one of the following: (A), (B), (A and B). Similarly, the phrase "A, B and / or C" may appear to mean one of the following: (A), (B), (C), (A and B), (A and C), (B and C), (A and B and C).

[0035] In the specification and claims, the terms "coupled" and "connected" and their derivatives may be used. It should be understood that these terms are not intended as synonyms for each other. Instead, in a particular implementation, "connected" is used to indicate that two or more components are in direct physical or electrical contact with each other, while "coupled" is used to indicate that two or more components cooperate or interact with each other, but they may or may not be in direct physical or electrical contact.

[0036] Modern vehicles are equipped with a large number of control units, including control units for various driving-related controls, as well as control units for various in-vehicle infotainment systems, etc. The control unit is typically based on a processor architecture, and implements the control process by running / using corresponding software / data. The software and related data used by the vehicle control unit are stored in the non-volatile memory of the control unit (e.g., located inside the control unit), and the non-volatile memory may include but is not limited to flash memory.

[0037] For ease of operation and management, the storage space of the non-volatile memory of the vehicle control unit is usually divided into multiple blocks, typically including a consumer bootloader (CB) block, an application software (ASW) block, and a dataset (DS) block, wherein the CB block is used to store the bootloader, the ASW block is used to store the application, and the DS block is used to store application-related data and calibration data, etc. Vehicle OTA updates may therefore involve updating the content of one or more of the CB block, ASW block, and DS block in the non-volatile memory of the control unit.

[0038] Traditional vehicle OTA updates lack support for rollback mechanisms, so if the OTA update fails and the vehicle control unit cannot work properly, the vehicle or control unit will have to be returned to the factory for repair to restore its normal function. A basic feature of today's vehicle OTA updates is to ensure that rollback can be achieved in the event of a failure during the update process, that is, if the previous version of the software / data is not successfully updated to the new version, it should be ensured that the previous version of the software / data can be restored to avoid affecting the normal use of the vehicle. OTA updates mentioned in this article, unless otherwise specified, refer to OTA updates that support rollback mechanisms. To support rollback, the content in the block to be updated needs to be backed up during the update process. Therefore, in addition to the above-mentioned CB blocks, ASW blocks, and DS blocks, the non-volatile memory of the vehicle control unit typically also includes a CB backup block corresponding to the CB block, an ASW backup block corresponding to the ASW block, and a DS backup block corresponding to the DS block, which are used to store the backup content of the corresponding blocks, respectively.

[0039] However, a large number of existing vehicle control units do not have corresponding backup areas in their storage space divisions. For example, the storage space of the non-volatile memory of such control units may be divided into CB blocks, ASW blocks, and DS blocks, but does not include backup blocks corresponding to these blocks. Figure 1 FIG. 1 is a schematic diagram of the storage space division of the non-volatile memory of the vehicle control unit in the prior art. Figure 1 As shown, the storage space of the non-volatile memory of the control unit is divided into three blocks, namely: CB block 110, ASW block 120, and DS block 130. Such a control unit does not support a backup / rollback mechanism, and therefore cannot support OTA updates.

[0040] For this type of control unit, in order to implement OTA updates, existing solutions usually require the vehicle to be returned to the factory and a control unit that meets the requirements to be replaced, or the storage space layout of the current control unit's non-volatile memory to be reconfigured with the help of special tools, which significantly increases the cost of the solution.

[0041] In other scenarios, when some vehicles are initially designed, the corresponding control units may not plan to support OTA updates due to customer requirements and other reasons. Therefore, the storage space division of the non-volatile memory of these control units usually adopts the above-mentioned traditional settings. When the vehicle is in the test stage, customer requirements are adjusted to require support for OTA updates, and the use of the aforementioned existing solutions will also incur additional costs.

[0042] The present disclosure proposes a mechanism for adjusting the storage space division of a control unit of a vehicle. With the help of this mechanism, the corresponding process can be directly executed on the vehicle side to adjust the existing storage space layout of the non-volatile memory of the vehicle control unit. The adjusted storage space division includes not only the CB block, the ASW block, and the DS block, but also the backup blocks corresponding to one or more of these blocks. Therefore, the adjusted storage space division supports backup / rollback, and accordingly makes it possible to perform OTA updates.

[0043] Figure 2 FIG. 1 is a schematic diagram of an adjusted storage space partition of a non-volatile memory of a vehicle control unit according to some implementations of the present disclosure. Figure 2 As shown, as an example but not limitation, after adjustment, the storage space of the non-volatile memory can be divided into six blocks, namely: CB block 210, ASW block 220, DS block 230, CB backup block 240, ASW backup block 250, and DS backup block 260. Generally, the backup block has the same size as the original block, that is, the CB block 210 is the same size as the CB backup block 240, the ASW block 220 is the same size as the ASW backup block 250, and the DS block 230 is the same size as the DS backup block 260.

[0044] Accordingly, if one of the CB block 210, ASW block 220, and DS block 230 is to be updated, the content of the block can be backed up in the corresponding backup block first. If a problem occurs during the subsequent update process and the update cannot be completed smoothly, the rollback can be achieved by reading the backed-up content from the backup block and rewriting it into the block where the update failed.

[0045] Reference below Figure 3, which shows a flow chart of an exemplary method 300 according to some implementations of the present disclosure. The exemplary method 300 may be performed by a control unit of a vehicle to implement the mechanism described herein for adjusting the storage space partitioning of the control unit of the vehicle.

[0046] According to some implementations of the present disclosure, before the adjustment is performed, the non-volatile memory of the control unit is divided into a plurality of blocks, including a CB block (e.g. Figure 1 CB block 110 shown in FIG. 1 ), ASW block (such as Figure 1 ), and DS blocks (such as Figure 1 DS block 130 shown in ), wherein CB block 110 is used to store a first boot program, ASW block 120 is used to store a first application program, and DS block 130 is used to store a first data set. In some implementations, the non-volatile memory may be a flash memory, but the present disclosure is not limited thereto.

[0047] like Figure 3 As shown, the exemplary method 300 starts at step 310, in which the CB block is erased and a second boot program different from the first boot program is written into the CB block. The erase operation is a precursor to the write operation. Through the write operation, the old version of the first boot program in the CB block is replaced with the new version of the second boot program, that is, the update of the CB block is achieved. In some implementations according to the present disclosure, step 310 can be executed by a processor of a control unit (e.g., ECU) in response to an instruction from a host computer.

[0048] In some implementations of the present disclosure, the execution of step 310 does not change the address range of the CB block. In other words, the start address and the end address of the CB block do not change before and after the CB block is updated. Figure 1 and Figure 2 In the example of , the address range of CB block 210 is the same as that of CB block 110.

[0049] In some implementations according to the present disclosure, unlike the old version of the first boot program which only indicates the ASW block 120 and the DS block 130, the newly written second boot program knows the address range of each block in the adjusted non-volatile memory storage space division, so it can indicate not only the adjusted ASW block 220 and the adjusted DS block 230, but also the backup blocks corresponding to one or more of the CB block 210, the adjusted ASW block 220, and the adjusted DS block 230. More specifically, in Figure 2In the example shown, the backup blocks include a CB backup block 240 corresponding to the CB block 210, an ASW backup block 250 corresponding to the ASW block 220, and a DS backup block 260 corresponding to the DS block 230. In some implementations according to the present disclosure, the adjusted address range of the ASW block 220 is different from that of the ASW block 120, and the adjusted address range of the DS block 230 is different from that of the DS block 130.

[0050] In addition, in some implementations according to the present disclosure, the backup block has at least the same size as the original block. For example, the CB backup block 240, the ASW backup block 250, and the DS backup block 260 have at least the same size as the corresponding CB block 210, the adjusted ASW block 220, and the adjusted DS block 230, respectively.

[0051] The method 300 then proceeds to step 320, in which the execution of the second boot program copied to the random access memory of the control unit is activated. In some implementations of the present disclosure, step 320 may include copying the second boot program that has been stored in the CB block 210 of the non-volatile memory of the control unit through the operation of the aforementioned step 310 to the random access memory (e.g., dynamic random access memory (DRAM)) of the control unit, and activating the execution of the second boot program in the random access memory. Through this operation, the executing second boot program replaces the first boot program that was originally running in the random access memory of the control unit. As previously described, the first boot program only indicates Figure 1 The ASW block 120 and the DS block 130 shown in the figure are known by the second boot program and can therefore indicate not only the adjusted ASW block 220 and the adjusted DS block 230, but also the corresponding backup block. The execution of the second boot program makes the subsequent adjustment operation possible. In some implementations of the present disclosure, step 320 can be executed by a processor of the control unit in response to an instruction from a host computer.

[0052] After the operation of step 320 is completed, the method 300 proceeds to step 330, in which the adjusted ASW block indicated by the second boot program is erased by the second boot program and the second application is written into the adjusted ASW block. In some implementations according to the present disclosure, the operation of step 330 is performed by a flash driver of the second boot program, and the flash driver has the ability to read, write and erase the flash memory as a non-volatile memory. Figure 1 and Figure 2For example, in some implementations according to the present disclosure, the second boot program can indicate the address range of the adjusted ASW block 220, which is different from the address range of the ASW block 120 before the adjustment. In addition, in some implementations according to the present disclosure, the second application written to the adjusted ASW block 220 is different from the first application originally stored in the ASW block 120; while in other implementations, the second application can be the same as the first application.

[0053] Then, the method 300 executes step 340, erasing the adjusted DS block indicated by the second boot program and writing the second data set into the adjusted DS block through the second boot program. Similarly, in some implementations according to the present disclosure, the operation of step 340 is performed by the flash driver of the second boot program. Figure 1 and Figure 2 For example, in some implementations according to the present disclosure, the second boot program can indicate the address range of the adjusted DS block 230, which is different from the address range of the DS block 130 before the adjustment. In addition, in some implementations according to the present disclosure, the second data set written into the adjusted DS block 230 is different from the first data set originally stored in the DS block 130; while in other implementations, the second data set may be the same as the first data set.

[0054] By combining the above Figure 3 The described exemplary operation can realize the adjustment of the storage space division of the vehicle control unit. The second boot program written into the CB block can not only indicate the adjusted ASW block and the adjusted DS block, but also indicate the corresponding backup block, thereby supporting the backup / rollback mechanism of OTA update.

[0055] Figure 4 FIG. 1 is a schematic diagram of an adjusted storage space partition of a non-volatile memory of a vehicle control unit according to some implementations of the present disclosure. Figure 4 As shown, as an example but not limitation, after adjustment, the storage space of the non-volatile memory can be divided into five blocks, namely: a CB block 410, an ASW block 420, a DS block 430, an ASW backup block 450, and a DS backup block 460. Figure 4 The exemplary storage space division shown is Figure 2 Different from the exemplary storage space division shown in FIG. 1 , in some implementations according to the present disclosure, a separate CB backup block (such as CB backup block) is not provided for the CB block in the non-volatile memory. Figure 2 CB backup block 240 shown in ).

[0056] In addition, in some implementations according to the present disclosure, the method 300 may further include: before performing the erase operation of step 310, clearing the validity flag for the CB block, and after the write operation of step 310 is completed, setting the validity flag for the CB block. The validity flag is used to indicate the data integrity of the content written to the CB block 210, 410. In some implementations, the validity flag may be a flag bit stored in a specific location (e.g., at the head of the CB block) in a non-volatile memory of the vehicle control unit, but the present disclosure is not limited thereto.

[0057] In some implementations according to the present disclosure, the method 300 may further include: after the write operation of step 330 is completed, setting the validity mark for the adjusted ASW block; and after the write operation of step 340 is completed, setting the validity mark for the adjusted DS block to indicate the data integrity of the content written to the adjusted ASW blocks 320, 420 and the adjusted DS blocks 330, 430, respectively. Similarly, in some implementations, such a validity mark may be a mark bit stored in a specific location (e.g., at the head of the adjusted ASW block and the adjusted DS block) in the non-volatile memory of the vehicle control unit, but the present disclosure is not limited thereto. In addition, in some implementations according to the present disclosure, the method 300 may further include: before performing the erase operation of step 330, clearing the validity mark for the ASW block; and before performing the erase operation of step 340, clearing the validity mark for the DS block.

[0058] By means of the mechanism for adjusting the storage space division of the control unit of the vehicle proposed in the present disclosure, the above process can be directly performed on the vehicle side to adjust the existing storage space layout of the non-volatile memory of the vehicle control unit. The adjusted storage space division supports backup / rollback and accordingly enables OTA updates. Compared with the prior art that requires the vehicle or control unit to be returned to the factory to complete the adjustment, the mechanism proposed in the present disclosure effectively reduces the solution cost.

[0059] Reference below Figure 5 , which shows a block diagram of an exemplary apparatus 500 according to some implementations of the present disclosure. The apparatus 500 may be implemented, for example, in a control unit of a vehicle to implement the mechanism described herein for adjusting the storage space partitioning of the control unit of the vehicle.

[0060] like Figure 5As shown, the device 500 may include a unit 510 for erasing the CB block and writing a second boot program different from the first boot program into the CB block. The device 500 may also include a unit 520 for activating the execution of the second boot program copied to the random access memory of the control unit. The device 500 may also include a unit 530 for erasing the adjusted ASW block indicated by the second boot program through the second boot program and writing a second application program into the adjusted ASW block, wherein the adjusted ASW block has a different address range from the ASW block. In addition, the device 500 may also include a unit 540 for erasing the adjusted DS block indicated by the second boot program through the second boot program and writing a second data set into the adjusted DS block, wherein the adjusted DS block has a different address range from the DS block, and wherein the second boot program also indicates a backup block in the non-volatile memory corresponding to one or more of the CB block, the adjusted ASW block, and the adjusted DS block.

[0061] In some implementations, the apparatus 500 may further include additional units for performing other operations described in the specification, such as combining Figure 3 The operations described in the flowchart of the exemplary method and its variations are shown in FIG. 5 . In addition, in some implementations, the various units of the device 500 may be combined or split depending on actual needs. It will be appreciated by those skilled in the art that the exemplary device 500 may be implemented using software, hardware, firmware, or any combination thereof.

[0062] Figure 6 A block diagram of an exemplary computing device 600 according to some implementations of the present disclosure is shown. The computing device 600 may be implemented, for example, in a control unit of a vehicle to implement the mechanism described herein for adjusting the storage space partitioning of the control unit of the vehicle.

[0063] like Figure 6 As shown, the computing device 600 may include at least one processor 610. The processor 610 may include any type of general-purpose processing unit, special-purpose processing unit, core, circuit, controller, etc. In addition, the computing device 600 may also include a memory 620. The memory 620 may include any type of medium that can be used to store data. In some implementations, the memory 620 is configured to store instructions that, when executed, cause the at least one processor 610 to perform the operations described herein, for example, in conjunction with Figure 3 The operations are described in conjunction with flowcharts of exemplary methods and variations thereof.

[0064] Furthermore, in some implementations, the computing device 600 is also equipped with a communication interface, which can support various types of wired / wireless communication protocols to communicate with a communication network.

[0065] Those skilled in the art will appreciate that the above description of the structure of the computing device 600 is merely exemplary and not restrictive, and devices with other structures are also feasible as long as they can be used to implement the functions described herein.

[0066] Various implementations of the present disclosure may include or operate multiple components, parts, units, modules, instances or mechanisms, which may be implemented in hardware, software, firmware, or any combination thereof. Examples of hardware may include, but are not limited to: devices, processors, microprocessors, circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, etc.), integrated circuits, application specific integrated circuits (ASICs), programmable logic devices (PLDs), digital signal processors (DSPs), field programmable gate arrays (FPGAs), storage units, logic gates, registers, semiconductor devices, chips, microchips, chipsets, etc. Examples of software may include, but are not limited to: software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, software modules, routines, subroutines, functions, methods, processes, software interfaces, application programming interfaces (APIs), instruction sets, computer codes, computer code segments, words, values, symbols, or any combination thereof. Determining whether an implementation is implemented using hardware, software, and / or firmware can vary depending on a variety of factors, such as desired computational rates, power levels, thermal tolerances, processing cycle budgets, input data rates, output data rates, memory resources, data bus speeds, and other design or performance constraints as desired for a given implementation.

[0067] Some implementations described herein may include articles of manufacture. Articles of manufacture may include storage media. Examples of storage media may include volatile and non-volatile, removable and non-removable media implemented by any method or technology to store information (e.g., computer-readable instructions, data structures, program modules, or other data). Storage media may include, but are not limited to: random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk (CD), digital versatile disk (DVD) or other optical storage, cassette, tape, disk storage or other magnetic storage device, or any other medium capable of storing information. In some implementations, articles of manufacture may store executable computer program instructions that, when executed by one or more processing units, cause the processing units to perform the operations described herein. Executable computer program instructions may include any suitable type of code, for example, source code, compiled code, interpreted code, executable code, static code, dynamic code, and the like. Executable computer program instructions may be implemented using any suitable high-level, low-level, object-oriented, visual, compiled and / or interpreted programming language.

[0068] Some exemplary implementations of the present disclosure are described below.

[0069] Example 1 may include a method for adjusting the storage space division of a control unit of a vehicle, wherein a non-volatile memory of the control unit is divided into a plurality of blocks, the plurality of blocks including a customer boot program (CB) block storing a first boot program, an application program (ASW) block storing a first application program, and a data set (DS) block storing a first data set, the method comprising: erasing the CB block and writing a second boot program different from the first boot program into the CB block; activating the execution of the second boot program copied to a random access memory of the control unit; erasing the data stored in the first boot program by the second boot program; The invention relates to a method for erasing an adjusted ASW block indicated by the second boot program and writing a second application program into the adjusted ASW block, wherein the address range of the adjusted ASW block is different from that of the ASW block; and erasing the adjusted DS block indicated by the second boot program and writing a second data set into the adjusted DS block, wherein the address range of the adjusted DS block is different from that of the DS block, wherein the second boot program also indicates a backup block in the non-volatile memory corresponding to one or more of the CB block, the adjusted ASW block, and the adjusted DS block.

[0070] Example 2 may include the subject matter described in Example 1, wherein the backup blocks indicated by the second boot program include a CB backup block corresponding to the CB block, an ASW backup block corresponding to the adjusted ASW block, and a DS backup block corresponding to the adjusted DS block.

[0071] Example 3 may include the subject matter of Example 1, wherein the backup blocks indicated by the second boot program include an ASW backup block corresponding to the adjusted ASW block and a DS backup block corresponding to the adjusted DS block.

[0072] Example 4 may include the subject matter of any one of Examples 1-3, wherein the method further includes: clearing a validity mark for the CB block before erasing the CB block; and setting a validity mark for the CB block after writing the second boot program into the CB block.

[0073] Example 5 may include the subject matter of any one of Examples 1-4, wherein the method further includes: after writing the second application into the adjusted ASW block, setting a validity mark for the adjusted ASW block; and after writing the second data set into the adjusted DS block, setting a validity mark for the adjusted DS block.

[0074] Example 6 may include the subject matter of any of Examples 1-5, wherein the second application is the same as the first application and / or the second data set is the same as the first data set.

[0075] Example 7 may include the subject matter of any one of Examples 1-6, wherein the CB backup block, the ASW backup block, and the DS backup block have at least the same size as the corresponding CB block, the adjusted ASW block, and the adjusted DS block, respectively.

[0076] Example 8 may include the subject matter of any one of Examples 1-7, wherein the non-volatile memory is flash memory, and wherein erasing the adjusted ASW block indicated by the second boot program and writing the second application to the adjusted ASW block, and erasing the adjusted DS block indicated by the second boot program and writing the second data set to the adjusted DS block are performed by a flash driver of the second boot program.

[0077] Example 9 may include a device for adjusting the storage space division of a control unit of a vehicle, wherein a non-volatile memory of the control unit is divided into a plurality of blocks, the plurality of blocks including a customer boot program (CB) block storing a first boot program, an application program (ASW) block storing a first application program, and a data set (DS) block storing a first data set, the device including: a unit for erasing the CB block and writing a second boot program different from the first boot program into the CB block; a unit for activating the execution of the second boot program copied to the random access memory of the control unit; a unit for erasing the second boot program by the second boot program A unit for erasing the adjusted DS block indicated by the second boot program and writing a second application program into the adjusted ASW block, wherein the address range of the adjusted ASW block is different from that of the ASW block; and a unit for erasing the adjusted DS block indicated by the second boot program and writing a second data set into the adjusted DS block, wherein the address range of the adjusted DS block is different from that of the DS block, wherein the second boot program further indicates a backup block in the non-volatile memory corresponding to one or more of the CB block, the adjusted ASW block, and the adjusted DS block.

[0078] Example 10 may include the subject matter of Example 9, wherein the backup blocks indicated by the second boot program include a CB backup block corresponding to the CB block, an ASW backup block corresponding to the adjusted ASW block, and a DS backup block corresponding to the adjusted DS block.

[0079] Example 11 may include the subject matter of Example 9, wherein the backup blocks indicated by the second boot program include an ASW backup block corresponding to the adjusted ASW block and a DS backup block corresponding to the adjusted DS block.

[0080] Example 12 may include the subject matter of any one of Examples 9-11, wherein the device further includes: a unit for clearing a validity mark for the CB block before erasing the CB block; and a unit for setting a validity mark for the CB block after writing the second boot program into the CB block.

[0081] Example 13 may include the subject matter of any one of Examples 9-12, wherein the apparatus further comprises: a unit for setting a validity mark for the adjusted ASW block after writing the second application into the adjusted ASW block; and a unit for setting a validity mark for the adjusted DS block after writing the second data set into the adjusted DS block.

[0082] Example 14 may include the subject matter of any of Examples 9-13, wherein the second application is the same as the first application and / or the second data set is the same as the first data set.

[0083] Example 15 may include the subject matter of any one of Examples 9-14, wherein the CB backup block, the ASW backup block, and the DS backup block have at least the same size as the corresponding CB block, the adjusted ASW block, and the adjusted DS block, respectively.

[0084] Example 16 may include the subject matter of any of Examples 9-15, wherein the non-volatile memory is flash memory, and wherein erasing the adjusted ASW block indicated by the second boot program and writing the second application to the adjusted ASW block, and erasing the adjusted DS block indicated by the second boot program and writing the second data set to the adjusted DS block are performed by a flash driver of the second boot program.

[0085] Example 17 may include a computing device comprising: at least one processor; and a memory coupled to the at least one processor and used to store instructions, wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform the method described in any one of the aforementioned Examples 1-8.

[0086] Example 18 may include a computer-readable storage medium having instructions stored thereon, which, when executed by at least one processor, cause the at least one processor to perform the method described in any one of the foregoing Examples 1-8.

[0087] Example 19 may include a computer program product comprising instructions that, when executed by at least one processor, cause the at least one processor to perform the method of any of the foregoing Examples 1-8.

[0088] What has been described above includes examples of the disclosed architecture. It is certainly not possible to describe every conceivable combination of components and / or methods, but those skilled in the art will appreciate that many other combinations and permutations are possible. Therefore, the novel architecture is intended to encompass all such substitutions, modifications, and variations that fall within the spirit and scope of the appended claims.

Claims

1. A method for adjusting the partitioning of a storage space of a control unit of a vehicle, in, The non-volatile memory of the control unit is divided into a plurality of blocks, the plurality of blocks including a client boot program (CB) block storing a first boot program, an application program (ASW) block storing a first application program, and a data set (DS) block storing a first data set, the method comprising: Erasing the CB block and writing a second boot program different from the first boot program into the CB block; activating execution of the second boot program copied into the random access memory of the control unit; erasing, by the second boot program, the adjusted ASW block indicated by the second boot program and writing a second application program into the adjusted ASW block, wherein the adjusted ASW block has a different address range from the ASW block; and erasing the adjusted DS block indicated by the second boot program and writing the second data set into the adjusted DS block through the second boot program, wherein the adjusted DS block has a different address range from the DS block, The second boot program further indicates a backup block in the non-volatile memory corresponding to one or more of the CB block, the adjusted ASW block, and the adjusted DS block.

2. The method according to claim 1, in, The backup blocks indicated by the second boot program include a CB backup block corresponding to the CB block, an ASW backup block corresponding to the adjusted ASW block, and a DS backup block corresponding to the adjusted DS block.

3. The method according to claim 1, in, The backup blocks indicated by the second boot program include an ASW backup block corresponding to the adjusted ASW block and a DS backup block corresponding to the adjusted DS block.

4. The method according to any one of claims 1 to 3, further comprising: include: Before erasing the CB block, clearing the validity flag for the CB block; as well as After writing the second boot program into the CB block, a validity flag for the CB block is set.

5. The method according to claim 4, further comprising: include: After writing the second application into the adjusted ASW block, setting a validity flag for the adjusted ASW block; as well as After writing the second data set into the adjusted DS block, a validity flag for the adjusted DS block is set.

6. The method according to any one of claims 1 to 3, in, The second application is the same as the first application, and / or the second data set is the same as the first data set.

7. The method according to claim 2, in, The CB backup block, the ASW backup block, and the DS backup block have at least the same size as the corresponding CB block, the adjusted ASW block, and the adjusted DS block, respectively.

8. The method according to any one of claims 1 to 3, in, The non-volatile memory is a flash memory, and wherein erasing the adjusted ASW block indicated by the second boot program and writing the second application into the adjusted ASW block, and erasing the adjusted DS block indicated by the second boot program and writing the second data set into the adjusted DS block are performed by a flash memory driver of the second boot program.

9. A device for adjusting the division of storage space of a control unit of a vehicle, in, The non-volatile memory of the control unit is divided into a plurality of blocks, the plurality of blocks including a client boot program (CB) block storing a first boot program, an application program (ASW) block storing a first application program, and a data set (DS) block storing a first data set, the device comprising: a unit for erasing the CB block and writing a second boot program different from the first boot program into the CB block; means for activating execution of said second boot program copied into a random access memory of said control unit; a unit for erasing, by the second boot program, an adjusted ASW block indicated by the second boot program and writing a second application program into the adjusted ASW block, wherein the adjusted ASW block has a different address range from the ASW block; and a unit for erasing, by the second boot program, an adjusted DS block indicated by the second boot program and writing a second data set into the adjusted DS block, wherein the adjusted DS block has a different address range from the DS block, The second boot program further indicates a backup block in the non-volatile memory corresponding to one or more of the CB block, the adjusted ASW block, and the adjusted DS block.

10. A computer-readable storage medium having instructions stored thereon, wherein when the instructions are executed by at least one processor, the at least one processor executes the method according to any one of claims 1-8.