Method, apparatus and article to load new instructions on processor based devices, for example, automatic data collection devices
First Claim
Patent Images
1. A method of loading new instructions on target devices, the method comprising:
- receiving a new instruction loading executable at a target device during a first period of time;
executing the new instruction loading executable on a processor of the target device during a second period of time subsequent to the first period of time, and wherein for a time span extending from a start of the first period of time to a start of the second period of time, the processor of the target device is not booted;
receiving at least a portion of a set of new instructions at the target device;
disabling an interrupt function at the target device based on executing the new instruction loading executable;
erasing a first block of a nonvolatile programmable memory of the target device; and
loading at least a first portion of the set of new instructions to the erased first block of the nonvolatile programmable memory on the target device based on the execution of the new instruction loading executable.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, apparatus and articles facilitate the loading of a set of new instructions to replace set of existing instructions on a processor based device, for example an automatic data collection device. For example, a new operating system may replace an existing operating system using an executable that disables interrupts and/or exceptions. The new operating system may execute with, or without booting. The set of new instructions may be fragmented to fit the block size of a nonvolatile programmable memory, and/or may be compressed. Validation values such as check sums and/or error correction may be employed.
143 Citations
43 Claims
-
1. A method of loading new instructions on target devices, the method comprising:
-
receiving a new instruction loading executable at a target device during a first period of time; executing the new instruction loading executable on a processor of the target device during a second period of time subsequent to the first period of time, and wherein for a time span extending from a start of the first period of time to a start of the second period of time, the processor of the target device is not booted; receiving at least a portion of a set of new instructions at the target device; disabling an interrupt function at the target device based on executing the new instruction loading executable; erasing a first block of a nonvolatile programmable memory of the target device; and loading at least a first portion of the set of new instructions to the erased first block of the nonvolatile programmable memory on the target device based on the execution of the new instruction loading executable. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of loading new instructions on a target device, the method comprising:
-
providing a new instruction loading executable that includes a new instruction disable interrupt executable having at least one instruction to disable a respective interrupt function of a processor of a target device to the target device, wherein an existing operating system stored in a nonvolatile programmable memory and executed by the processor of the target device is suspended in response to the processor of the target device executing the least one instruction to disable a respective interrupt function of the processor of the target device; and providing a set of new instructions comprising the new operating system at the target device in at least three fragments, each respective fragment of the at least three fragments having a respective uncompressed size selected to fit into a respective block of the nonvolatile programmable memory of the target device, wherein the nonvolatile programmable memory of the target device is comprised of at least three blocks of equal size, and wherein each respective fragment is loaded into a respective block of the nonvolatile programmable memory of the target device. - View Dependent Claims (16, 17, 18)
-
-
19. A computing device, comprising:
-
a nonvolatile programmable memory comprising a plurality of blocks having an existing operating system stored therein; a volatile memory capable of storing instructions and not having the existing operating system stored therein; a processor operable to execute instructions stored in at least one of the volatile memory and the nonvolatile programmable memory; wherein the nonvolatile programmable memory stores a new instruction loading executable that causes the processor to load a set of new instructions on the computing device, by; disabling an interrupt function of the processor; and concurrently while the interrupt function is disabled and while the volatile memory does not have the existing operating stored therein, and for at least three times, sequentially, erasing a respective block of the nonvolatile programmable memory of the computing device, and loading a respective portion of the set of new instructions to the respective erased block of the nonvolatile programmable memory on the computing device, and wherein the processor sequentially erases a respective block of the nonvolatile programmable memory and then loads a respective portion of the set of new instructions to the most currently erased respective block of the nonvolatile programmable memory prior to erasing a subsequent block of the of the nonvolatile programmable memory of the computing device. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
-
26. A system for loading new instructions on target devices, the system comprising:
-
at least one memory storing at least one new instruction loading executable and at least one set of new instructions for loading onto target devices, the at least one new instruction loading executable includes a new instruction disable interrupt executable having at least one instruction to disable a respective interrupt function of a respective processor of a respective target device; at least one communications port coupleable to provide communications with target devices; and a processor operable to provide the set of new instructions in at least three fragments, each respective fragment of the at least three fragments having a respective uncompressed size selected to fit into a respective block of a nonvolatile programmable memory of an identified target device, wherein the nonvolatile programmable memory of the target device is comprised of at least three blocks of equal size. - View Dependent Claims (27, 28)
-
-
29. A computer-readable recordable medium storing instructions for causing a processor of a computing device to facilitate loading new instructions on the computing device by:
-
disabling an interrupt function of the processor of the computing device; and for at least three blocks of a flash memory of the computing device and at least three portions of a set of new instructions, sequentially, erasing a respective block of the flash memory of the computing device, and loading a respective portion of the set of new instructions to the respective erased block of the flash memory on the computing device. - View Dependent Claims (30, 31, 32, 33, 34)
-
-
35. A computer-readable recordable medium storing instructions for causing a computer to facilitate loading new instructions on target devices by:
-
providing a new instruction loading executable to a target device having a nonvolatile programmable memory with an existing operating system of the target device stored therein, a volatile memory, a processor, and at least one bus that communicatively couples the nonvolatile programmable memory, the volatile memory and processor, the new instruction loading executable being such that when executed the new instruction loading executable loads a new operating system into the nonvolatile memory of the target device while the existing operating system is not copied into the volatile memory; and providing a set of new instructions at the target device in at least three fragments, each respective fragment of the at least three fragments having a respective uncompressed size selected to fit into a respective block of a flash memory of the target device, wherein the flash memory is comprised of at least three blocks of equal size, and wherein each respective fragment is loaded into a respective block of the flash memory of the target device. - View Dependent Claims (36, 37, 43)
-
-
38. A method of loading new instructions on a target device having a nonvolatile memory, the method comprising:
-
executing an existing operation system of a target device with a processor of the target device, the target device including a nonvolatile programmable memory having the existing operating system stored therein, a volatile memory being free of the existing operating system while the existing operating system is executed by the processor, the processor communicatively coupled to the nonvolatile programmable memory and the volatile memory; receiving a new instruction loading executable at the target device; receiving a number (N) of fragments of a set of new instructions comprising a new operating system of the target device at the target device, where N is at least three; executing the new instruction loading executable on the processor of the target device; suspending execution of the existing operating system at the target device based at least on disablement of an interrupt function at the target device via execution of the new instruction loading executable; and for N times sequentially, erasing a respective block of the nonvolatile programmable memory of the target device that stores a respective portion of the existing operating system of the target device, and loading a respective portion of the new operating system to a respective erased block of the nonvolatile programmable memory on the target device. - View Dependent Claims (39, 40, 41, 42)
-
Specification