Method of remotely upgrading firmware in field-deployed devices
First Claim
1. A method of remotely upgrading an application program in a field-deployed device connected to an upgrade server via a network, the device having a non-volatile memory including an application program memory area containing the application program and an upgrade program memory area containing an upgrade program, the method comprisingtransferring control of the device to the upgrade program in the upgrade program memory area to control execution of the updating of the application program;
- andupdating the application program by;
copying from the server a new application program directly to the application program memory area over at least a part of the application program memory area containing the application program; and
transferring control of the device to the new application program stored in the application program memory area;
after transferring control of the device to the upgrade program, updating the update program by;
transferring control of the device to the copy of the update program in the application program memory area;
copying from a new update program from the server to the application program memory area over at least a part of the upgrade program memory area containing the upgrade program;
copying from the new update program from the application program memory area to the upgrade program memory area containing the upgrade program; and
transferring control of the device to the new upgrade program in the upgrade program memory area,whereinthe upgrade program memory area is comprised of base layers;
programs are stored in separate layers of the base layers;
the separate layers are copied from the server to the application program memory area on a layer-by-layer basis; and
the separate layers are subseguently copied from the application program memory area to the upgrade program memory area on a layer-by-layer basis.
2 Assignments
0 Petitions
Accused Products
Abstract
The method is used for downloading firmware upgrades to a non-volatile memory (NVM) of a targeted remote programmable embedded field-deployed device over a communication network. The device is connected to the network and requires no human intervention at the remote site. The firmware includes a small upgrade program which performs programming tasks on the device according to commands received by the server. The method carried out by the upgrade program allows to upgrade the application program, the communication protocol stack, a set of mutable interrupt vector table or itself without the need of additional memory. It also has a bootstrap function which is responsible for verifying the integrity of the firmware upon reset of a device before transferring control to or back to the application program. Upgrades can be either server-initiated (the firmware provider pushes the new version out to the field) or device-initiated (the device pulls the latest firmware version from the server).
92 Citations
22 Claims
-
1. A method of remotely upgrading an application program in a field-deployed device connected to an upgrade server via a network, the device having a non-volatile memory including an application program memory area containing the application program and an upgrade program memory area containing an upgrade program, the method comprising
transferring control of the device to the upgrade program in the upgrade program memory area to control execution of the updating of the application program; - and
updating the application program by; copying from the server a new application program directly to the application program memory area over at least a part of the application program memory area containing the application program; and transferring control of the device to the new application program stored in the application program memory area; after transferring control of the device to the upgrade program, updating the update program by; transferring control of the device to the copy of the update program in the application program memory area; copying from a new update program from the server to the application program memory area over at least a part of the upgrade program memory area containing the upgrade program; copying from the new update program from the application program memory area to the upgrade program memory area containing the upgrade program; and transferring control of the device to the new upgrade program in the upgrade program memory area, wherein the upgrade program memory area is comprised of base layers; programs are stored in separate layers of the base layers; the separate layers are copied from the server to the application program memory area on a layer-by-layer basis; and the separate layers are subseguently copied from the application program memory area to the upgrade program memory area on a layer-by-layer basis. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
- and
-
21. A remotely-upgradeable device storing an application program of a firmware, the device comprising:
-
a non-volatile memory including an application program memory area storing the application program and an upgrade program memory area storing an upgrade application which controls aspects of an upgrade process for the application program; a communication connection to a server via a network; an upgrade control module for initiating and controlling the upgrade process; a data transfer module for obtaining from the server a new application program and storing it in the application program memory area of the device; and an application control module to control transfer of operation of the device to the new application program, wherein when processing the upgrade process, the upgrade control module transfers control of the device to the upgrade program; the data transfer module copies from the server the new application program directly to the application program memory area over at least a part of the application program memory area containing the application program; the application control module transfers control of the device to the new application program stored in the application program memory area; after transferring control of the device to the upgrade program, the update control module; transfers control of the device to the copy of the update program in the application program memory area; copies from a new update program from the server to the application program memory area over at least a part of the upgrade program memory area containing the upgrade program; copies the new update program from the application program memor area to the upgrade program memory area containing the upgrade program; and transfers control of the device to the new upgrade program in the upgrade program memory area, and wherein the upgrade program memory area is comprised of base layers; programs are stored in separate layers of the base layers; the separate layers are copied from the server to the application program memory area on a layer-by-layer basis; and the separate layers are subseguently copied from the application program memory area to the upgrade program memory area on a layer-by-layer basis. - View Dependent Claims (22)
-
Specification