The present invention relates to a method for upgrading software in a product and also to an apparatus configured to employ such a method.
Many consumer products employ software in order to provide a broader range of features at a given price than is possible using hardware alone. The Consumer Electronics marketplace is increasingly competitive and lowest price solutions have to be sought—for example storage provided for software programs must be both low cost and utilised in flexible ways to accommodate functional variations. In addition, products are becoming increasingly dependent on upgrading, for example to fix bugs or perhaps to offer customisation to the end user.
Software programs are typically stored in non-volatile memory within a product, for example Read Only Memory (ROM) this generally having a lower cost per unit memory size than other forms of non-volatile memory.
As standard ROM is non-reprogrammable, silicon manufacturers have developed a variety of electrically reprogrammable non-volatile memory devices to supplement ROM including EEPROM and Flash® RAM. These types of devices allow the original software in ROM to be updated in the field. A disadvantage of such technologies is their relatively high cost; it is therefore desirable to minimise the amount of such memory used in products.
A further typical drawback of field upgradable products is the requirement that the upgrade software code be configured to be compatible with the specific hardware of the product. This can result in the need for several versions of the same upgrade code, each configured for a particular product hardware platform.
It is an object of the present invention to combat these and other problems through an improved method and apparatus to upgrade software in a product.
In accordance with the present invention there is provided a method for upgrading software held within a product, the method being supported by means for program file management and program file calling, the method comprising the steps of:
The method allows program code which is not upgraded to still be executed from within non-reprogrammable storage whilst also accessing upgrade software modules residing in the reprogrammable storage (in place of original modules resident in non-reprogrammable storage). This has an added advantage that the original updatable software remains intact within the non-reprogrammable storage allowing the product to revert to the outdated original (but still functional) software in case of problems (for example in the case where the upgrade software is corrupted).
A further advantage is that the upgrade software is generally file based and therefore independent of any specific target hardware architecture. This may allow the same software update source code file to be useable by all products, irrespective of manufacturer, hardware design or implementation provided the program file management and program file calling means within a product supports the storage and linking of files so that the upgraded software functions correctly in the product itself.
Alternatively, implementations in which the program files are tailored to a particular hardware platform are also possible whilst still employing the method of the invention.
One example of a suitable program file management and program file calling means is Embedded Linux which utilises hard links and soft links (symlinks) to access by reference one file via another file or files. In addition, other suitable embedded systems based on Unix are available.
Acquisition of upgrade program files may be via any suitable means including, but not limited to, a network connection and a physical record carrier. In particular, networks available to the home consumer including terrestrial, satellite, cable and modem connections may be used for the distribution of upgrade files. Typically the Internet is also a convenient means to obtain upgrade files. Upgrade files may also be distributed on physical media such as floppy disk and CD-ROM.
Also in accordance with the invention there is provided an apparatus containing upgradable software comprising:
a data processor operable to support the execution of a program to perform program file management and program file calling, to support the access of a file located within non-reprogrammable storage and to support the access of a file located within reprogrammable storage;
non-reprogrammable storage operable to store the program for program file management and program file calling, to store a first program file and to store a second program file; and
reprogrammable storage operable to store a reference file and to store a third program file,
wherein the second program file or third program file is accessed by the first program file according to the content of the reference file.
A product may utilise any suitable means of non-reprogrammable and reprogrammable storage. Examples of non-reprogrammable storage include, but are not limited to, solid state memory such as mask ROM and one time programmable (OTP) ROM and also data carriers such as CD-ROM. Examples of reprogrammable storage include, but are not limited to, solid state memory such as EEPROM, Flash® RAM and also data carriers such as CD-R/W, floppy disk and hard disk. In addition, the reprogrammable storage of a particular product may be volatile or non-volatile as appropriate, according to the functional needs of the product.
A product may combine the economy of non-reprogrammable storage (for example read-only memory, ROM) to store non-upgradable software code with reprogrammable storage (for example Flash® RAM) to store the upgradable code. This may result in a cost saving compared to prior art schemes by avoiding duplicate sets of code residing in both non-reprogrammable and reprogrammable storage of the product.
A product according to the present invention also has advantages over prior art split storage solutions which utilise a mix of non-reprogrammable storage and reprogrammable storage, for example a combined ROM/Flash® RAM solution. Prior art solutions might reserve memory address space for particular upgrade modules; this may also imply that the size of upgrade modules is limited. In the present invention the source software module upgrades are hardware independent—therefore utilisation of available reprogrammable storage capacity, for example Flash® RAM memory, is more efficient in that upgrade files are loaded and stored as determined by the file manager, for example on a first come first served basis or perhaps based on user preferences. A manufacturer is therefore free to design his product to meet cost/functional needs without being constrained by a particular hardware implementation or cost, for example by needing to reserve memory address ranges for possible upgrade modules, or building in more (expensive) upgrade memory than in practice will actually be used.
Further features and advantages will now be described, by way of example only, with reference to the accompanying drawings in which:
In the following description of the present invention the term ‘reprogrammable’ refers to a storage entity which has been programmed with data (for example program code) and which is capable of being reprogrammed with replacement data (for example upgrade program code); the term ‘non-reprogrammable’ refers to a storage entity which has been programmed with data but which is not capable of being reprogrammed. The term ‘reference file’ refers to a file whose contents may reference a data file, a program file or another reference file.
b illustrates the product software after upgrading. Non-reprogrammable read-only memory 116 comprises storage for a file manager program 120, program file A 122 and program file B 124, all equivalent to the corresponding items of
In summary, file A always accesses file X (since file A is located in non-reprogrammable read-only memory); file X is modifiable by the file manager to refer to any file. It will be readily noted that the original file B 124 is always retained, and can be re-deployed following a product reset or for other default reasons by the file manager re-initialising file X to refer to file B.
The foregoing description of a set top box apparatus is presented by way of example only and represents one of a range of implementations that can readily be defined by a person skilled in the art to exploit the advantages of the method as disclosed in the present invention.
The foregoing method is presented by way of example only and represents one of a range of methods that can readily be defined by a person skilled in the art.
In the description above and with reference to
| Number | Date | Country | Kind |
|---|---|---|---|
| 0120594.7 | Aug 2001 | GB | national |
| Number | Name | Date | Kind |
|---|---|---|---|
| 5857204 | Lordi et al. | Jan 1999 | A |
| 6611957 | Ebisawa | Aug 2003 | B1 |
| 6625668 | Sato | Sep 2003 | B1 |
| 6637023 | Ginsberg | Oct 2003 | B1 |
| 6639544 | Yamada et al. | Oct 2003 | B1 |
| 6640335 | Ebisawa | Oct 2003 | B1 |
| 6640336 | Ebisawa | Oct 2003 | B1 |
| 6782533 | Ebisawa | Aug 2004 | B1 |
| Number | Date | Country | |
|---|---|---|---|
| 20030041323 A1 | Feb 2003 | US |