Claims
- 1. In a wireless communications device, a method for managing system software download operations, the method comprising:
executing system software; launching a run-time engine; processing dynamic instruction sets; and, in response to processing the dynamic instruction sets, managing the downloading of system software updates received via an airlink interface.
- 2. The method of claim 1 further comprising:
executing updated system software.
- 3. The method of claim 1 further comprising:
forming the system software into symbol libraries, each symbol library comprising symbols having related functionality; arranging the symbol libraries into code sections stored in a code storage section of nonvolatile memory; and, receiving patch manager run time instructions (PMRTIs) in a file system section (FSS) nonvolatile memory, the patch manger run time instructions including dynamic instruction sets and new code sections.
- 4. The method of claim 3 wherein managing the downloading of system software updates received via an airlink interface includes processing dynamic instruction set management functions selected from the group including recovery status monitoring, back up, compacting, and update ordering.
- 5. The method of claim 4 wherein processing recovery status monitoring dynamic instruction sets includes:
maintaining a recovery status table cross-referencing new code section identifiers with their update status; in response to rebooting the wireless communications device, reading the recovery status table to determine if new code sections have been stored in permanent storage; if the new code sections have not been stored, storing the new code section in permanent storage; and, when the new code sections have been stored, updating the recovery status table.
- 6. The method of claim 5 wherein processing recovery status monitoring dynamic instruction sets further includes:
determining the risk associated with storing each new code section; and, if the risk of storing new code sections is high, taking safety precautions.
- 7. The method of claim 6 wherein taking safety precautions includes taking safety precautions selected from the group of checking the battery for sufficient power to complete the new code storing process, warning the user of high-risk code storing operations, using prompts to verify user-initiated power downs, and preventing user-initiated power downs.
- 8. The method of claim 7 wherein determining the risk associated with storing each new code section includes determining the risk associated with new code sections selected from the group including a boot code section, a patch manager code section, a code section address table, a symbol offset address table, read-write data, and symbol accessor code addresses.
- 9. The method of claim 8 wherein forming the system software into symbol libraries includes forming a patch manager code section with a patch library for moving code sections in the file system section into permanent storage;
wherein receiving the patch manager run time instructions in a file system section nonvolatile memory includes receiving a new patch manager code section; wherein processing recovery status monitoring dynamic instruction sets further includes:
maintaining a spare patch library in the file system section; in response to rebooting the wireless communications device, reading the recovery status table to determine if the new patch manager code section has been successfully stored in the code storage section; and, using the spare patch library to move the new patch manager code section from the file system section to code storage section, if the new patch manager code section has not been successfully stored in the code storage section.
- 10. The method of claim 4 wherein receiving new code sections includes receiving an updated first code section to replace a first code section in the code storage section;
wherein processing back up management dynamic instruction sets includes:
moving the first code section from the code storage section to the file system section; determining if the updated first code section in the code storage section operates with the system software within predetermined constraints; and, replacing the updated first code section in the code storage section with the first code section from the file system section, if the updated first code section is determined to not operate with the system software within the predetermined constraints.
- 11. The method of claim 10 wherein receiving new code sections includes receiving a test code section with predetermined constraints;
wherein determining if the updated first code section in the code storage section operates with the system software within predetermined constraints includes:
executing the test code section with the updated code section; recording the results of executing the test code section; and, comparing the recorded results with the predetermined constraints.
- 12. The method of claim 11 wherein receiving new code sections includes receiving an updated code section with a test code library; and,
wherein determining if the updated first code section in the code storage section operates with the system software within predetermined constraints includes executing the test code library from the updated code section.
- 13. The method of claim 11 wherein receiving new code sections includes receiving a test code section with predetermined constraints from a source selected from the group including an airlink interface, a user operated keyboard interface, and a test port interface.
- 14. The method of claim 4 wherein receiving new code sections includes receiving an updated first code section, having an updated code section size, to replace a first code section having a first size smaller than the updated first code section size;
wherein processing compaction management dynamic instruction sets includes:
accessing a compaction library in a patch manager code section; and, resizing code sections in the code storage section to accommodate the updated first code section.
- 15. The method of claim 14 wherein processing compaction management dynamic instruction sets further includes:
determining the risk associated with compacting code sections in the code storage section; and, if the risk of compacting code sections is high, taking safety precautions.
- 16. The method of claim 15 wherein taking safety precautions includes taking safety precautions selected from the group of checking the battery for sufficient power to complete the new code storing process, warning the user of high-risk code storing operations, using prompts to verify user-initiated power downs, and preventing user-initiated power downs.
- 17. The method of claim 4 wherein receiving dynamic instruction sets includes receiving an update ordering instruction, and wherein receiving new code sections includes receiving a plurality of new code sections; and,
wherein processing update ordering management dynamic instruction sets includes moving the new code sections from the file system storage to the code storage section in an order dictated by the ordering instruction.
- 18. The method of claim 17 wherein processing update ordering dynamic instruction sets further includes:
determining the risk associated with storing each new code section; and, ordering the high risk code sections to be moved after lower risk storage sections.
- 19. In a wireless communications device, a method for managing system software download operations, the method comprising:
executing system software; launching a run-time engine; processing dynamic instruction sets; and, in response to processing the dynamic instruction sets, managing the downloading of system software updates received via an airlink interface using management functions selected from the group including recovery status monitoring, back up, compacting, and update ordering.
- 20. In a wireless communications device, a system for managing system software download operations, the system comprising:
an airlink interface; executable system software and system data differentiated into code sections stored in nonvolatile memory permanent storage; dynamic instruction sets for managing the downloading of system software updates received via the airlink interface; and, a run-time engine for processing the dynamic instruction sets.
- 21. The system of claim 20 wherein the executable system software and system data are updated in response to processing the dynamic instruction sets.
- 22. The system of claim 20 wherein the executable system software is formed into symbol libraries, each symbol library comprising symbols having related functionality, arranged into code sections stored in a code storage section; and,
the system further comprising:
a file system section of nonvolatile memory receiving patch manager run time instructions (PMRTIs) including dynamic instruction sets and new code sections.
- 23. The system of claim 22 wherein the dynamic instruction sets include functional managers selected from the group including recovery status monitoring, back up, compacting, and update ordering.
- 24. The system of claim 23 further comprising:
a recovery status table cross-referencing new code section identifiers with their update status; and, wherein the dynamic instruction set recovery status monitoring manager reads the recovery status table in response to rebooting the wireless communications device, to determine if new code sections have been stored in permanent storage, wherein the dynamic instruction set recovery status monitoring manager stores the new code section in permanent storage if the new code sections have not been stored and updates the recovery status table when the new code sections have been stored.
- 25. The system of claim 24 wherein the dynamic instruction set recovery status monitoring manager further determines the risk associated with storing each new code section and, if the risk of storing new code sections is high, takes safety precautions.
- 26. The system of claim 25 wherein the dynamic instruction set recovery status monitoring manager takes safety precautions selected from the group of checking the battery for sufficient power to complete the new code storing process, warning the user of high-risk code storing operations, using prompts to verify user-initiated power downs, and preventing user-initiated power downs.
- 27. The system of claim 26 wherein the file system section receives new code sections selected from the group including a boot code section, a patch manager code section, a code section address table, a symbol offset address table, read-write data, and symbol accessor code addresses; and,
wherein the dynamic instruction set recovery status monitoring manager determines the risk associated with storing each of the new code sections in the file system section.
- 28. The system of claim 27 wherein the executable system software includes a patch manager code section with a patch library for moving code sections in the file system section into permanent storage;
wherein the file system section receives patch manager run time instructions including a new patch manager code section; and, wherein the dynamic instruction set recovery status monitoring manager maintains a spare patch library in the file system section, reads the recovery status table to determine if the new patch manager code section has been successfully stored in the code storage section in response to rebooting the wireless communications device, and uses the spare patch library to move the new patch manager code section from the file system section to code storage section, if the new patch manager code section has not been successfully stored in the code storage section.
- 29. The system of claim 23 wherein the file system section receives an updated first code section to replace a first code section in the code storage section; and,
wherein the dynamic instruction set back up manager moves the first code section from the code storage section to the file system section, determines if the updated first code section in the code storage section operates with the system software within predetermined constraints, and replaces the updated first code section in the code storage section with the first code section from the file system section, if the updated first code section is determined to not operate with the system software within the predetermined constraints.
- 30. The system of claim 29 wherein the file system section receives a test code section with predetermined constraints; and,
wherein the dynamic instruction set back up manager determines if the updated first code section in the code storage section operates with the system software within predetermined constraints by executing the test code section with the updated code section, recording the results of executing the test code section, and comparing the recorded results with the predetermined constraints.
- 31. The system of claim 30 wherein the file system section receives an updated code section with a test code library; and,
wherein the dynamic instruction set back up manager executes the test code library from the updated code section.
- 32. The system of claim 30 wherein the file system section receives the test code section from a source selected from the group including the airlink interface, a user operated keyboard interface, and a test port interface.
- 33. The system of claim 23 wherein the file system section receives an updated first code section, having an updated code section size, to replace a first code section having a first size smaller than the updated first code section size; and,
wherein the dynamic instruction set compaction manager accesses a compaction library in a patch manager code section and resizes code sections in the code storage section to accommodate the updated first code section.
- 34. The system of claim 33 wherein the dynamic instruction set compaction manager determines the risk associated with compacting code sections in the code storage section and, if the risk of compacting code sections is high, takes safety precautions.
- 35. The system of claim 34 wherein the dynamic instruction set compaction manager takes safety precautions selected from the group of checking the battery for sufficient power to complete the new code storing process, warning the user of high-risk code storing operations, using prompts to verify user-initiated power downs, and preventing user-initiated power downs.
- 36. The system of claim 23 wherein the file system section receives a plurality of new code sections with the update ordering dynamic instruction sets; and,
wherein the dynamic instruction set update ordering manager moves the new code sections from the file system storage to the code storage section in an order dictated by the ordering instruction.
- 37. The system of claim 36 wherein the dynamic instruction set update ordering manager determines the risk associated with storing each new code section and orders the high risk code sections to be moved after lower risk storage sections.
- 38. In a wireless communications device, a system for managing system software download operations, the system comprising:
an airlink interface; executable system software and system data differentiated into code sections stored in nonvolatile memory permanent storage and updated in response to processing the dynamic instruction sets; dynamic instruction sets for managing the downloading of system software updates received via the airlink interface using functional managers selected from the group including recovery status monitoring, back up, compacting, and update ordering; a run-time engine for processing the dynamic instruction sets; and, a file system section of nonvolatile memory receiving patch manager run time instructions (PMRTIs) including dynamic instruction sets and new code sections.
Parent Case Info
[0001] This application claims priority to U.S. patent application Ser. No. 09/927,131, filed on Aug. 10, 2001, and entitled “System and Method for Executing Wireless Communications Device Dynamic Instruction Sets;” and is related to U.S. patent application Ser. No. 09/916,900, filed on Jul. 26, 2001 and entitled “System and Method for Field Downloading a Wireless Communications Device Software Code Section,” and Ser. No. 09/9169,460, filed on Jul. 26, 2001, and entitled “System and Method for Compacting Field Upgradeable Wireless Communication Device Software Code Sections,” all of which are incorporated herein by reference.