METHOD AND DEVICE FOR UPDATING A PROGRAM
20200026509 ยท 2020-01-23
Inventors
- Axel Aue (Korntal-Muenchingen, DE)
- Hans-Walter Schmitt (Weissach/Flacht, DE)
- Matthias Schreiber (Vaihngen/Enz, DE)
Cpc classification
G06F8/654
PHYSICS
International classification
G06F8/654
PHYSICS
G06F9/32
PHYSICS
Abstract
A method updating a program in a flash memory includes executing a first image of the program while an address space of the program is imaged onto the memory blocks, which are operated in a single-level mode; copying part of the first image from a range within the address space, which is imaged onto one of the blocks, into a backup block; setting the one of the blocks to a multi-level mode; while the address range is imaged onto the backup block, programming the one of the blocks with part of the second image besides for the part of the first image; switching the address range back to the block while the block remains in the multi-level mode; as long as the second image is incomplete, repeating the copying, programming, and switching with further parts of the second image; and subsequently executing the second image instead of the first image.
Claims
1-12. (canceled)
13. A method for updating a program in a memory, the memory including a plurality of blocks, the method comprising: executing a first image of the program while an address space of the program is imaged onto the blocks and the blocks are operated in a single level mode; processing a second image of the program by executing a plurality of iterations of a series of steps, wherein the iterations are executed until an entirety of the second image is processed and the steps of the iterations include: copying a part of the first image, which was formed from the imaging of an address range within the address space onto one of the blocks, to a backup block of the memory; setting the one of the blocks to a multi-level mode; while the one of the blocks is set to the multi-level mode and the address range is temporarily imaged onto the backup block, programming the one of the blocks with a respective part of the second image; and switching the address range back to the one of the blocks while the one of the blocks remains in the multi-level mode; and subsequent to the execution of the iterations of the processing of the entirety of the second image, executing the second image in place of the first image.
14. The method of claim 13, further comprising: monitoring a functional capability of the second image during the execution of the second image; and resetting the blocks to the single level mode when the functional capability is determined in the monitoring to be ensured.
15. The method of claim 13, further comprising: increasing an access time with which the memory is operated to allow for an evaluation of information of the multi-level cells.
16. The method of claim 13, wherein: the control unit is operable in a normal single level cell (SLC) mode; and the control unit is operable in a multi-level cell (MLC) mode, in which an access time is longer, and a performance is therefore lower, than when the control unit is operated in the SLC mode.
17. The method of claim 13, wherein the program, when executed, causes control of a field device in a motor vehicle.
18. The method of claim 17, wherein the second image is transmitted via an air interface to the motor vehicle prior to the programming.
19. The method of claim 13, wherein the program, when executed, causes control of a combustion engine in a motor vehicle.
20. The method of claim 13, wherein the memory is non-volatile.
21. The method of claim 20, wherein the memory is a flash EEPROM.
22. The method of claim 21, wherein the memory is a NAND flash.
23. The memory of claim 21, wherein the memory is a NOR flash.
24. A non-transitory computer-readable medium on which are stored instructions that are executable by a processor and that, when executed by the processor, causes the processor to perform a method for updating a program in a memory, the memory including a plurality of blocks, the method comprising: executing a first image of the program while an address space of the program is imaged onto the blocks and the blocks are operated in a single level mode; processing a second image of the program by executing a plurality of iterations of a series of steps, wherein the iterations are executed until an entirety of the second image is processed and the steps of the iterations include: copying a part of the first image, which was formed from the imaging of an address range within the address space onto one of the blocks, to a backup block of the memory; setting the one of the blocks to a multi-level mode; while the one of the blocks is set to the multi-level mode and the address range is temporarily imaged onto the backup block, programming the one of the blocks with a respective part of the second image; and switching the address range back to the one of the blocks while the one of the blocks remains in the multi-level mode; and subsequent to the execution of the iterations of the processing of the entirety of the second image, executing the second image in place of the first image.
25. A device comprising a processor, wherein the processor is configured to perform a method for updating a program in a memory, the memory including a plurality of blocks, the method comprising: executing a first image of the program while an address space of the program is imaged onto the blocks and the blocks are operated in a single level mode; processing a second image of the program by executing a plurality of iterations of a series of steps, wherein the iterations are executed until an entirety of the second image is processed and the steps of the iterations include: copying a part of the first image, which was formed from the imaging of an address range within the address space onto one of the blocks, to a backup block of the memory; setting the one of the blocks to a multi-level mode; while the one of the blocks is set to the multi-level mode and the address range is temporarily imaged onto the backup block, programming the one of the blocks with a respective part of the second image; and switching the address range back to the one of the blocks while the one of the blocks remains in the multi-level mode; and subsequent to the execution of the iterations of the processing of the entirety of the second image, executing the second image in place of the first image.
26. The device of claim 25, wherein the device is a microcontroller.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
DETAILED DESCRIPTION
[0020]
[0021]
[0022]
[0023] As illustrated in
[0024] Then, the MLC block is able to be superimposed again in the above sense at the original address 14 while remaining in the multi-level mode, so that the first image can continue to be executed as in
[0025] In this final state 16, the first or second image of the program can optionally be executed. Once the functional capability of the second image 17 has been ensuredfor instance in conjunction with different control units of a vehicle updated in this mannerthe blocks can also be sequentially reset to the single level mode according to the reverse method in an effort to maximize the reliability of the program in a continuous operation.
[0026] For example, this method 10 can be implemented in software or hardware or in a mixed form of software and hardware, e.g., in a control unit 20, as illustrated by the schematic representation of