Claims
- 1. A method of remotely upgrading an application program of a firmware 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 and an upgrade program memory area in which are respectively located the application program and an upgrade program, the method comprising:
transferring control of the device to the upgrade program in the upgrade program memory area; copying from the server a new application program in the application program memory area; and transferring control of the device to the new application program.
- 2. A method according to claim 1, further comprising:
verifying the new application program in the application program memory area before transferring control of the device thereto.
- 3. A method according to claim 2, wherein verifying the new application program includes performing a cyclic redundancy check (CRC) thereof.
- 4. A method according to claim 1, wherein the new application program is copied from the server following a lock step process, the lock step process comprising:
sending a confirmation message from the device to the server once a data packet is successfully received.
- 5. A method according to claim 1, further comprising:
initiating an upgrade process by sending an escape message from the server to the device, the control of the device being transferred to the upgrade program as a results of the escape message.
- 6. A method according to claim 1, wherein the firmware further comprises a firmware header stored in a firmware header memory area included in the non-volatile memory of the device, the act of copying the new application program from the server comprising:
updating the firmware header in the firmware header memory area prior to receiving data for the new application program to be stored in the application program memory area.
- 7. A method according to claim 6, wherein the firmware header comprises data indicative of the length of the new application program.
- 8. A method according to claim 1, further comprising:
forcing the device to reset before transferring control of the device to the new application program.
- 9. A method of remotely upgrading an application program and at least one of the base layers of a firmware 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 and base layers memory areas in which are respectively located the application program and the base layers, the base layers including an upgrade program, the method comprising:
transferring control of the device to the upgrade program; copying from the server at least one new base layer in the application program memory area; copying the new base layer from the application program memory area to the corresponding base layers memory area; when the at least one new base layer includes the upgrade program, transferring control of the device to the new upgrade program in the base layers memory areas; copying from the server a new application program in the application program memory area; and transferring control of the device to the new application program.
- 10. A method according to claim 9, further comprising:
verifying the new base layer after being copied in the corresponding base layers memory area.
- 11. A method according to claim 10, wherein verifying the new base layer includes performing a cyclic redundancy check (CRC) thereof.
- 12. A method according to claim 9, further comprising:
verifying the new application program in the application program memory area before transferring control of the device thereto.
- 13. A method according to claim 12, wherein verifying the new application program includes performing a cyclic redundancy check (CRC) thereof.
- 14. A method according to claim 9, wherein the new base layer and the new application program are copied from the server following a lock step process, the lock step process comprising:
sending a confirmation message from the device to the server once a data packet is successfully received.
- 15. A method according to claim 9, further comprising the act of initiating an upgrade process by sending an escape message from the server to the device, the control of the device being initially transferred to the upgrade program as a results of the escape message.
- 16. A method according to claim 9, wherein the firmware further comprises a firmware header stored in a firmware header memory area included in the non-volatile memory of the device, the act of copying from the server at least one new base layer comprising:
updating the firmware header in the firmware header memory area prior to receiving data for the new base layer.
- 17. A method according to claim 16, wherein the firmware header comprises data indicative of the length of the base layer and data indicative of the length of the application program.
- 18. A method according to claim 16, wherein the firmware header comprises variable indicative of the last page of each base layer of the base layers and a variable indicative of the last page of the application program.
- 19. A method according to claim 9, further comprising:
forcing the device to reset before transferring control of the device to the new application program.
- 20. A method according to claim 9, further comprising the act of initiating a self-upgrade process by sending a self-upgrade request message from the device to the server, the new base layer being copied from the server to the device as a results of the self-upgrade request message.
- 21. A method according to claim 9, wherein the new base layer includes a new mutable interrupt vector table, the method further comprising:
re-referencing an immutable interrupt vector table in the firmware to the new mutable interrupt vector table once copied in the in the corresponding base layer memory area.
- 22. A method of remotely upgrading an application program and the base layers of a firmware 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 and base layers memory areas in which are respectively located the application program and the base layers, the base layers including an upgrade program, the method comprising:
transferring control of the device to the upgrade program; copying from the server new base layers into the application program memory area, the new base layers including a new upgrade program; copying the new base layers from the application program memory area to the base layers memory areas; transferring control of the device to the new upgrade program in the base layers memory areas; copying from the server a new application program in the application program memory area; and transferring control of the device to the new application program.
- 23. A method according to claim 22, further comprising:
verifying the new base layers in the base layers memory areas before transferring control of the device to the new upgrade program therein.
- 24. A method according to claim 23, wherein verifying the new base layers includes performing a cyclic redundancy check (CRC) thereof.
- 25. A method according to claim 24, wherein the new base layers and the new application program are copied from the server following a lock step process, the lock step process comprising:
sending a confirmation message from the device to the server once a data packet is successfully received.
- 26. A method according to claim 22, further comprising the act of initiating an upgrade process by sending an escape message from the server to the device, the control of the device being initially transferred to the upgrade program as a results of the escape message.
- 27. A method according to claim 22, wherein the firmware further comprises a firmware header stored in the non-volatile memory area included in the non-volatile memory of the device, the method further comprising:
updating data in the firmware header in the firmware header memory area prior to receiving data for the new base layers.
- 28. A method according to claim 22, further comprising:
forcing the device to reset before transferring control of the device to the new application program.
- 29. A method according to claim 22, further comprising the act of initiating a self-upgrade process by sending a self-upgrade request message from the device to the server, the new base layers being copied from the server to the device as a results of the self-upgrade request message.
- 30. A method according to claim 22, wherein the new base layers include a new mutable interrupt vector table, the method further comprising:
re-referencing an immutable interrupt vector table in the firmware to the new mutable interrupt vector table once copied in the in the corresponding base layer memory area.
- 31. A system for remotely upgrading an application program of a firmware in a field-deployed device, the device having a non-volatile memory including an application program memory area in which is located the application program, the system comprising:
means for providing a connection to a server via a network; means for taking over control of the device and initiating an upgrade process; means for copying from the server a new application program in the application program memory area of the device; and means for transferring control of the device to the new application program.
- 32. A system for remotely upgrading a firmware in a field-deployed device, the firmware including an application program and base layers, the system comprising:
a non-volatile memory provided in the device, the non-volatile memory including an application program memory area and base layers memory areas in which are respectively located an application program and the base layers, the base layers including an upgrade program; means for providing a connection to a server via a network; means for transferring control of the device to the upgrade program; means for copying from the server new base layers in the application program memory area; means for copying the base layers from the application program memory area to the base layers memory areas; means for transferring control of the device to the new upgrade program in the base layers memory areas; means for copying from the server a new application program in the application program memory area; and means for transferring control of the device to the new application program.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present application claims the benefits of U.S. provisional patent application No. 60/284,209 filed Apr. 18, 2001, which is hereby incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60284209 |
Apr 2001 |
US |