Method, medium, and apparatus for re-programming flash memory of a computing device
First Claim
1. A method of re-programming flash memory of a computing device with software content comprising a plurality of software modules, the method comprising:
- identifying, from the plurality of software modules, a first set of software modules to be programmed by delta programming and a second set of software modules to be programmed by non-delta programming;
assigning a first set of sectors of the flash memory for re-programming with the first set of software modules using delta programming, and a second set of sectors of the flash memory for re-programming with the second set of software modules using non-delta programming, wherein each of the first set of sectors and the second set of sectors is already programmed with existing software modules;
determining a maximum sector size to be programmed using delta programming;
designating at least some of the second set of sectors as temporary backup memory space, wherein the designating includes allocating an amount of the flash memory equal to at least the maximum sector size for use as the temporary backup memory space;
copying at least some program code of the existing software modules from the first set of sectors to the designated temporary backup memory space;
after the copying, re-programming the first set of sectors with the first set of software modules, using delta programming and using the designated temporary backup memory space to preserve the copied program code of the existing software modules in a recoverable form during the re-programming of the first set of sectors; and
after re-programming the first set of sectors, re-programming the second set of sectors with the second set of software modules, using non-delta programming, wherein re-programming the second set of sectors replaces the copied program code of the existing software modules with new program code that represents the second set of software modules.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of re-programming flash memory of a computing device is presented here. Software content having a plurality of software modules can be re-programmed by identifying, from the software modules, a first set of software modules to be programmed by delta programming and a second set of software modules to be programmed by non-delta programming. A first set of sectors of the flash memory is assigned for programming the first set of software modules, and a second set of sectors is assigned for programming the second set of software modules. At least some of the second set of sectors are designated as temporary backup memory space. The first set of sectors is programmed with the first set of software modules, using delta programming and the designated temporary backup memory space. After programming the first set of sectors, the second set of sectors is programmed with the second set of software modules, using non-delta programming.
46 Citations
12 Claims
-
1. A method of re-programming flash memory of a computing device with software content comprising a plurality of software modules, the method comprising:
-
identifying, from the plurality of software modules, a first set of software modules to be programmed by delta programming and a second set of software modules to be programmed by non-delta programming; assigning a first set of sectors of the flash memory for re-programming with the first set of software modules using delta programming, and a second set of sectors of the flash memory for re-programming with the second set of software modules using non-delta programming, wherein each of the first set of sectors and the second set of sectors is already programmed with existing software modules; determining a maximum sector size to be programmed using delta programming; designating at least some of the second set of sectors as temporary backup memory space, wherein the designating includes allocating an amount of the flash memory equal to at least the maximum sector size for use as the temporary backup memory space; copying at least some program code of the existing software modules from the first set of sectors to the designated temporary backup memory space; after the copying, re-programming the first set of sectors with the first set of software modules, using delta programming and using the designated temporary backup memory space to preserve the copied program code of the existing software modules in a recoverable form during the re-programming of the first set of sectors; and after re-programming the first set of sectors, re-programming the second set of sectors with the second set of software modules, using non-delta programming, wherein re-programming the second set of sectors replaces the copied program code of the existing software modules with new program code that represents the second set of software modules. - View Dependent Claims (2, 3)
-
-
4. A non-transitory computer readable medium having computer executable instructions stored thereon and capable of performing a method when executed by a processor, the method comprising:
-
identifying, from a plurality of software modules, a first set of software modules to be programmed into a flash memory by delta programming and a second set of software modules to be programmed into the flash memory by non-delta programming; assigning a first set of sectors of the flash memory for re-programming with the first set of software modules using delta programming, and a second set of sectors of the flash memory for re-programming with the second set of software modules using non-delta programming, wherein each of the first set of sectors and the second set of sectors is already programmed with existing software modules; determining a maximum sector size to be programmed using delta programming; designating at least some of the second set of sectors as temporary backup memory space, wherein the designating includes allocating an amount of the flash memory equal to at least the maximum sector size for use as the temporary backup memory space; copying at least some program code of the existing software modules from the first set of sectors to the designated temporary backup memory space; after the copying, re-programming the first set of sectors with the first set of software modules, using delta programming and using the designated temporary backup memory space to preserve the copied program code of the existing software modules in a recoverable form during the re-programming of the first set of sectors; and after re-programming the first set of sectors, re-programming the second set of sectors with the second set of software modules, using non-delta programming, wherein re-programming the second set of sectors replaces the copied program code of the existing software modules with new program code that represents the second set of software modules. - View Dependent Claims (5, 6)
-
-
7. An electronic control unit for a vehicle, the electronic control unit comprising:
-
a processor architecture having at least one processor device; a flash memory to store program code representing a plurality of software modules; and computer readable media having computer-executable instructions stored thereon that, when executed by the processor architecture, cause the electronic control unit to; initiate re-programming of the flash memory with a first software module and a second software module; obtain a delta program file associated with the first software module; assign a first set of sectors of the flash memory for re-programming with the first software module using delta programming, and a second set of sectors of the flash memory for re-programming with the second software module using non-delta programming, wherein each of the first set of sectors and the second set of sectors is already programmed with existing software modules; determining a maximum sector size to be programmed using delta programming; designating at least some of the second set of sectors as temporary backup memory space, wherein the designating includes allocating an amount of the flash memory equal to at least the maximum sector size for use as the temporary backup memory space; copy program code of the existing software modules from the first set of sectors to the second set of sectors; after the copying, delta program the first set of sectors of the flash memory with the first software module, using the delta program file and using the second set of sectors as the temporary backup memory space to preserve the copied program code of the existing software modules in a recoverable form during delta programming of the first set of sectors; and after delta programming the first set of sectors, program the second set of sectors with the second software module, using non-delta programming, wherein programming the second set of sectors replaces the copied program code of the existing software modules with new program code that represents the second software module. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification