Updating flash memory
First Claim
1. A method of selectively updating, with corresponding replacement images, any combination of one or more images of a plurality of binary images recorded on a memory medium having a plurality of continuous memory sectors that are erased before being rewritten, the method comprising the steps of:
- a) determining whether an updating operation is to be performed;
b) determining memory addresses of the memory medium at which a corresponding replacement image can be recorded;
c) erasing said determined memory addresses; and
d) writing said corresponding replacement image to the determined memory addresses of the memory medium, wherein said one or more binary images comprise;
at least one kernel image, at least one file-system image, a boot-loader image, an update logic image and a scratch area image, wherein update logic performs determining step b) responsive to start addresses and sizes of memory medium resident images stored in the scratch area image, and wherein the writing in step d) includes writing replacement data for the replacement image only in respective sectors where the replacement data does not match original data of the replacement image in the respective sectors.
2 Assignments
0 Petitions
Accused Products
Abstract
Embedded devices typically have an operating system, one or more file-systems, as well as a bootloader and other data components resident in flash memory. During software development and testing, there is frequently a need to selectively update a combination of such images. The described technique organizes the images in the flash memory such that one can speed up the update process by eliminating relocation of existing images. A command-driven update mechanism provides a flexible process—eg, one can upload the images back to a host, one can update the update code itself, etc. A start handshake is used that enables auto-detection of the embedded serial port that is used for the update.
-
Citations
31 Claims
-
1. A method of selectively updating, with corresponding replacement images, any combination of one or more images of a plurality of binary images recorded on a memory medium having a plurality of continuous memory sectors that are erased before being rewritten, the method comprising the steps of:
-
a) determining whether an updating operation is to be performed; b) determining memory addresses of the memory medium at which a corresponding replacement image can be recorded; c) erasing said determined memory addresses; and d) writing said corresponding replacement image to the determined memory addresses of the memory medium, wherein said one or more binary images comprise;
at least one kernel image, at least one file-system image, a boot-loader image, an update logic image and a scratch area image, wherein update logic performs determining step b) responsive to start addresses and sizes of memory medium resident images stored in the scratch area image, and wherein the writing in step d) includes writing replacement data for the replacement image only in respective sectors where the replacement data does not match original data of the replacement image in the respective sectors. - View Dependent Claims (2, 3, 7, 8, 9, 10, 11, 12, 13, 14, 20)
-
-
4. A method of selectively updating, with corresponding replacement images, any combination of one or more images of a plurality of binary images recorded on a memory medium having a plurality of contiguous memory sectors that are erased before being rewritten, the method comprising the steps of:
-
determining whether an updating operation is to be performed; determining memory addresses of the memory medium at which a corresponding replacement image can be recorded; erasing said determined memory addresses; and writing said corresponding replacement image to the determined memory addresses of the memory medium, wherein said one or more binary images comprise;
at least one kernel image, at least one file-system image, a boot-loader image, an update logic image and a scratch area image, wherein said boot-loader image and said update logic image are recorded at different ends of a first predetermined portion of the memory medium at the start of the memory medium, wherein said scratch area image is recorded directly following said predetermined portion of the memory medium, and wherein said kernel image and said file system image are recorded at different ends of a second predetermined portion of the memory medium, following the scratch area image. - View Dependent Claims (5, 6)
-
-
15. A method of selectively updating, with corresponding replacement images, any combination of one or more images of a plurality of binary images recorded on a memory medium having plurality of contiguous memory sectors that are erased before being rewritten, the method comprising the steps of:
-
determining whether an updating operation is to be performed; determining memory addresses of the memory medium at which a corresponding replacement image can be recorded; erasing said determined memory addresses; and writing said corresponding replacement image to the determined memory addresses of the memory medium determining whether the size of the replacement image is less than or equal to the size of the selected image; and
, if not;determining whether said replacement image can be accommodated by free capacity in the memory medium; determining whether the replacement image can be accommodated by memory addresses of the selected image and any free memory addresses that directly follow the selected image, if the size of the replacement image is greater than the size of the corresponding replacement image; revising the recorded end address of the selected image to take into account any free memory addresses directly following the selected image, if the size of replacement image is greater than the size of the corresponding replacement image; successively identifying free memory fragments of the memory medium that can each individually accommodate part of the replacement image until the replacement image can be accommodated by the successively identified free fragments in combination; and identifying one or more memory fragments for the replacement image such that portions of the replacement image can be recorded across a minimum number of memory fragments, wherein said memory fragments that do not have the end address of another image directly preceding the respective fragment are used in preference to fragments that do have the end of another image directly preceding the respective fragment. - View Dependent Claims (16, 17, 18, 19)
-
-
21. A method of selectively updating, with corresponding replacement images, any combination of one or more images of a plurality of binary images recorded on a memory medium having a plurality of contiguous memory sectors that are erased before being rewritten, the method comprising the steps of:
-
determining whether an updating operation is to be performed; determining memory addresses of the memory medium at which a corresponding replacement image can be recorded; erasing said determining memory addresses; writing said corresponding replacement image to the determined memory addresses of the memory medium, wherein said one or more binary images comprise at least one kernel image, at least one file-system image, a boot-loader image, an update logic image and a scratch area image; erasing the scratch area image recorded on the memory medium; and writing a replacement scratch area image to replace the scratch area image, after said step of writing the replacement image; wherein the replacement scratch area image reflects the replacement of the selected image with the replacement image, and is performed after the selected image is replaced with the corresponding selected image. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. An update logic image recorded on a memory medium for selectively updating, with corresponding replacement images, any combination of one or more images of a plurality of binary images recorded on the memory medium having a plurality of contiguous memory sectors that are erased before being rewritten, the update logic image comprising:
-
code means for determining whether an updating operation is to be performed; code means for determining memory addresses of the memory medium at which a corresponding replacement image can be recorded;
code means for erasing said determined memory addresses; andcode means for writing said corresponding replacement image to the determined memory addresses of the memory medium, wherein the code means for determining memory addresses of the memory medium at which a corresponding replacement image can be recorded includes code means responsive to start addresses and sizes of memory medium resident images stored in the scratch area image, and wherein the code means for writing said corresponding replacement image to the determined memory addresses of the memory medium includes code means for writing replacement data for the replacement image only in respective sectors where the replacement data does not match original data of the replacement image in the respective sectors.
-
-
31. A memory medium for selectively updating, with corresponding replacement images, any combination of images of a plurality of binary images recorded on the memory medium having a plurality of contiguous memory sectors that are erased before being rewritten, the memory medium comprising;
-
one or more binary images recorded on the memory medium; update logic recorded on the memory medium, the update logic comprising; code means for determining whether an updating operation is to be performed; code means for determining memory addresses of the memory medium at which said corresponding replacement image can be recorded; code means for erasing said determined memory addresses; and code means for writing said corresponding replacement image to the determined memory addresses of the memory medium, wherein the code means for determining memory addresses of the memory medium at which a corresponding replacement image can be recorded includes code means responsive to start addresses and sizes of memory medium resident images stored in the scratch area image, and wherein the code means for writing said corresponding replacement image to the determined memory addresses of the memory medium includes code means for writing replacement data for the replacement image only in respective sectors where the replacement data does not match original data of the replacement image in the respective sectors.
-
Specification