WO2001088732A1 - Programming a memory based on information obtained from a remote location - Google Patents
Programming a memory based on information obtained from a remote location Download PDFInfo
- Publication number
- WO2001088732A1 WO2001088732A1 PCT/US2001/015656 US0115656W WO0188732A1 WO 2001088732 A1 WO2001088732 A1 WO 2001088732A1 US 0115656 W US0115656 W US 0115656W WO 0188732 A1 WO0188732 A1 WO 0188732A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- computer
- data
- executable file
- instructions
- file
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 claims description 41
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Definitions
- the present invention relates to the programming of memories used in electronic devices based on information received from a remote server.
- Certain devices are designed so that their programs and/or data can be upgraded by inserting a PCMCIA card (or another type of plug-in module) into a mating slot in the device.
- PCMCIA card or another type of plug-in module
- these upgrades have been implemented by distributing new PCMCIA cards to end users of the device, and asking the end-user to unplug the old PCMCIA card, replace it with the new one, and to return the old PCMCIA card.
- Due to the relatively high cost of the PCMCIA cards it can be expensive when an end user fails to return the old card for reprogramming .
- the end user may be disadvantaged by using outdated data.
- the inventors have recognized a need for an improved way to upgrade PCMCIA cards.
- PalmTM handheld organizers are sold with a utility program (which runs on the computer) for transferring files into the handheld.
- the user selects a file that resides on the computer (e.g., by double-clicking on an icon or by typing in the file's name) and the utility program on the computer sends the file into the handheld.
- the files that are ultimately transferred into the handheld are downloaded via the Internet from a web site such as www.zdnet.com/downloads.
- a web site such as www.zdnet.com/downloads.
- the file to be transferred which is obtained via the Internet
- the utility program that resides on the local computer.
- the utility program is not installed on the borrowed computer, the user will not be able to transfer the file into his handheld.
- the inventors have recognized a need for simplifying the downloading and data-transferring process to avoid this shortcoming.
- the present invention relates to writing data into memories in plug-in modules or in other target devices.
- One aspect of the present invention is directed to a method of using a computer to write data into a memory in a device.
- an executable file is downloaded from a remote file server into the computer.
- the executable file contains instructions that, when executed by the computer, will cause the computer to write predetermined data into the memory.
- the computer is interfaced with the device so that the computer can send signals to the device that will cause the computer to write the predetermined data into the memory.
- the downloaded executable file is run on the computer so that the instructions are executed by the computer. Then, under control of the running executable file, signals are sent from the computer to the device. These signals cause the predetermined data to be written into the memory.
- Another aspect of the present invention is directed to a method of using a computer to write data into a memory in a device.
- a first executable file is downloaded from a remote file server into the computer.
- the first executable file contains first instructions that, when executed by the computer, will cause the computer to create a second executable file that contains second instructions. These second instructions are selected so that when the second instructions are executed by the computer, the second instructions will cause the computer to write predetermined data into the memory.
- the first executable file is then run on the computer so that the first instructions are executed by the computer. Under control of the running first executable file, the second executable file is created.
- the computer is interfaced with the device so that the computer can send signals to the device that will cause the computer to write the predetermined data into the memory.
- the second executable file is then run on the computer so that the second instructions are executed by the computer. Under control of the running second executable file, signals are sent from the computer to the device. These signals cause the predetermined data to be written into the memory.
- Another aspect of the present invention is directed to a method of using a computer to write data into a memory in a device.
- a first executable file is downloaded from a remote file server into the computer.
- the first executable file contains first instructions that, when executed by the computer, will cause the computer to create a data file and a second executable file.
- the second executable file contains second instructions that are selected so that when the second instructions are executed by the computer, the second instructions will cause the computer to write predetermined data into the memory based on data contained in the data file.
- the first executable file is run on the computer so that the first instructions are executed by the computer. Under control of the running first executable file, the second executable file and the data file are created.
- the computer is interfaced with the device so that the computer can send signals to the device that will cause the computer to write the predetermined data into the memory.
- the second executable file is then run on the computer so that the second instructions are executed by the computer. Under control of the running second executable file, signals are sent from the computer to the device. These signals cause the predetermined data to be written into the memory based on the data contained in the data file.
- FIG. 1 is a schematic hardware block diagram for first and second embodiments of the present invention.
- FIG. 2A is a flowchart of processes implemented in a first embodiment of the present invention.
- FIG. 2B is a data flow diagram for the first embodiment of the present invention.
- FIG. 3A is a flowchart of processes implemented in a second embodiment of the present invention.
- FIG. 3B is a data flow diagram for the second embodiment of the present invention.
- FIG. 3C is a data flow diagram for a variant of the second embodiment of the present invention.
- FIG. 4 is a schematic hardware block diagram of an alternative context for implementing the present invention.
- FIG. 1 is a schematic hardware block diagram for first and second embodiments of the present invention.
- a computer 10 includes a modem 13, which enables the computer to establish a communication link with a remote server 11 via the Internet 12.
- the computer 10 also includes a PCMCIA card interface 14 that enables the computer to write data onto a PCMCIA card 15 that has been inserted into a PCMCIA slot (not shown) in the computer 10.
- the PCMCIA slot includes a connector that mates with terminals on the PCMCIA card 15. After data has been written onto the PCMCIA card 15, the PCMCIA card 15 may be removed from the computer 10 and inserted into the target device 16.
- the hardware for the illustrated computer 10 is widely available off-the- shelf from a variety of computer manufacturers including HP, IBM, Compaq, and Apple.
- plug-in cards or modules may be substituted for the PCMCIA card 15, as long as the interface 14 is modified to match the card or module.
- These alternative plug-in cards or modules may be custom-designed to interface with a particular piece of hardware, or may be designed to comply with an industry- standard interface.
- Alternative communication links may also be used in place of the Internet 12 link between the computer 10 and the remote server 11.
- a direct dial-up modem link may be established between the computer 10 and the remote server 11 via the modem 13, or a hardwired connection (using, e.g., wire or fiber optic cable) may be established between the computer 10 and the remote server 11.
- a hardwired connection using, e.g., wire or fiber optic cable
- FIG. 2A is a flowchart that depicts the processes implemented in the computer 10 in the first embodiment, and FIG. 2B shows the data flow that accompanies the implementation of those processes. These figures are best understood when viewed in connection with FIG. 1. Reference numbers preceded by an S can be found in FIG. 2A, and the numeric reference numbers can be found in FIGS. 1 and 2B.
- an executable file 20 is downloaded from the remote server 11 to the computer 10 via the Internet 12.
- the download process is preferably implemented using any conventional technique (including, for example, the downloading routines built in to NetscapeTM Navigator and MicrosoftTM Internet Explorer) .
- Selection of a particular executable file for downloading may be accomplished using any suitable user interface technique.
- a user may be invited to visit a web page (e.g., www. cent- tech, com/download/file2000152.html) that is set up for the specific purpose of downloading one particular file.
- users may be invited to visit a web page (e.g., www.cent-tech.com/downloadmenu. html) that is set up for accessing any of a plurality of files.
- Any suitable user interface may then be used to select the desired executable file, including, for example, listing the available files on a menu, or requesting a user input using a dialog box.
- the executable file 20 that is downloaded from the remote server 11 is designed so that it can be executed on the computer 10.
- the executable file 20 contains program instructions, and when the computer 10 executes these program instructions, the program will cause the computer 10 to write predetermined data into the PCMCIA card 15 via the PCMCIA interface 14.
- the specific format of the executable file 20 will usually depend on the particular operating system that runs on the computer 10 (e.g., MicrosoftTM Windows or MacOSTM) .
- the desired data that will ultimately be written into the PCMCIA card 15 is either stored as or derived from data 21 embedded within the executable file 20 itself.
- data 21 may be interspersed with the program instructions of the executable file 20, or incorporated in one or more tables that are included within the executable file 20.
- the data 21 is the same as the desired data that will ultimately be written into the PCMCIA card. In these embodiments, the data 21 is read from the executable file 20, and signals to write the data 21 into the memory are generated. In other embodiments, the data 21 is not the same as the desired data that will ultimately be written into the PCMCIA card. In these embodiments the data 21 is read from the executable file 20, the desired data (not shown) is determined based on the data 21, and signals to write the desired data into the memory are generated. For example, the data 21 may be a compressed version of the desired data that will ultimately be written into the PCMCIA card. In this case, the executable file 20 would include instructions for decompressing the data 21.
- step S26 where the executable file is run.
- Running of the executable file 20 is preferably handled by the operating system of the computer 10, and may be initiated using any conventional program-launching technique, preferably in response to a user input (e.g., double clicking on an icon or typing in a program name and pressing enter) .
- Running the executable file 20 causes the computer 10 to read and execute the instructions contained in the executable file 20.
- the executable file 20 for writing the write data into the PCMCIA card could include, for example, instructions for: (1) configuring the PCMCIA card; (2) checking that the PCMCIA card 15 is blank; (3) erasing the PCMCIA card 15; (4) programming the PCMCIA card 15; and (5) verifying that the PCMCIA card 15 has been properly programmed.
- the computer 10 executes the instructions for programming the PCMCIA card 15, it reads the data 21 contained within the executable file 20, and generates output signals based on the data 21 to write the desired data into the PCMCIA card 15.
- the required sequence of output signals that must be sent into the PCMCIA card 15 to implement card programming is conventional, and is usually specified by the manufacturers of the PCMCIA cards themselves.
- FIG. 3A is a flowchart that depicts processes implemented in the computer 10 in the second embodiment, and FIG. 3B shows the data flow that accompanies the implementation of those processes.
- an executable file 30 is downloaded from the remote server 11 to the computer 10 via the Internet 12 in a manner similar to the first embodiment discussed above.
- the executable file 30 of this embodiment is also designed so that it can be executed on the computer 10.
- the program contained in the file 30 causes the computer 10 to create a secondary set of files. This secondary set of files will subsequently be used to write predetermined data into the PCMCIA card 15 via the PCMCIA interface 14.
- step S36 where the first executable file 30 is run.
- Running of the first executable file 30 is preferably initiated by the operating system on the computer 10 in any conventional manner, as described above in connection with the FIG. 2B embodiment .
- the first executable file 30 includes information that is used to create both a data transfer program 32 and a data file 33.
- the first executable file relies on conventional file decompression software such as WinZipTM (available from WinZip Computing, Inc.).
- the executable file 30 in these embodiments may be a self- extracting zipped file that, when executed, unzips itself into the data transfer program 32 and the data file 33.
- the executable file may rely on a conventional installation program such as InstallShieldTM
- step S37 where the data transfer program 32 is run.
- Launching of the data transfer program 32 may be accomplished using any conventional program-launching technique in response to a user input (e.g., double clicking on an icon or typing in a program name and pressing enter) .
- launching may be initiated automatically by the operating system as soon as step S36 has finished.
- the operating system of the computer 10 launches the data transfer program 32, and runs it. Operation of this data transfer program 32 is similar to the operation of the executable file 20 of the first embodiment, except that the data is obtained from the data file 33 instead of from within the executable file itself.
- this embodiment also enables any computer with a connection to the Internet and a PCMCIA slot to be used as a PCMCIA card programmer .
- FIG. 3C is a variation of the FIG. 3B embodiment. It is similar to the FIG. 3B embodiment in that a second executable output file 32' is created when the first executable file 30' is executed in step S36. However, unlike the FIG. 3B embodiment, a distinct data file is not created. Instead, when the second executable file 32' is created in step S36 (under control of the first executable file), the second executable file 32' is configured to include embedded data 33'. This second executable file 32' therefore resembles the executable file 20 of the first embodiment described above in connection with FIGS. 2A and 2B.
- the second executable file 32' After the second executable file 32' has been created, it is run. Launching of the data transfer program 32' may be accomplished using any of the techniques described above in connection with the FIG. 3B embodiment. Operation of this executable file 32' is similar to the operation of the executable file 20 of the first embodiment, and results in the writing of the desired data into the PCMCIA card 15.
- a scripting language e.g., a Java or VB script
- a Java component e.g., Java Bean
- the script may be implemented on the web page that is visited by the user when the user wishes to program a PCMCIA card.
- a web page component e.g., ActiveX Control
- Such components can access the operating system functions that are needed to communicate with device drivers.
- This approach would require downloading a device driver that allows the control component (e.g., the ActiveX control) to communicate with the card and socket service drives on the user's system.
- This approach provides a simplified interface for the users,, who can simply visit the page with the ActiveX control and click a "Go" button. In response, the ActiveX control would download any needed device drivers, and then make use of those drivers to program the device while the user is connected to the Internet.
- FIG. 4 is a schematic hardware block diagram of an alternative context for implementing the present invention. Its operation is similar to FIG. 1, described above, except that the computer 10 in the FIG. 4 embodiment interfaces with a target device 5& via a data port 54 (instead of with a PCMCIA card) .
- the target device 56 contains a memory 55.
- target devices 56 Any number of different types of target devices 56 may be used. Examples include handheld organizers (such as the PalmTM Vx and the Handspring VisorTM) , MP3 players (such as the Diamond RioTM and the Creative Labs NomadTM) , and other types of stand-alone electronic devices.
- the specifics of the hardware interface between the computer 10 and the target device 56 will depend on the particular device being used. For example, many devices communicate with the computer via a cradle (not shown) that mates with the device at one end and plugs into a port on the computer 10 at the other end (e.g., an RS232, USB, or Centronics port) .
- Other devices communicate with the computer via infrared (IR) signals that are transmitted between an IR port (not shown) on the computer 10 and a corresponding IR port on the target device 56.
- IR infrared
- the computer writes information into the memory 55 in the target device 56 by sending instructions to the target device 56 via the hardware interface (e.g., the RS232, USB, Centronics, or IR port).
- the target device 56 is pre-programmed (e.g., by a firmware routine) to accept these instructions via the hardware interface, and to write to its own data or program memory 55 based on these instructions. Once the write operation is completed, the target device can be operated using the newly written data or program file.
Abstract
Data is downloaded into a computer (10) from a remote server (11), preferably via the Internet (12), and written into a memory in a plug-in module or in another target device (16). First, an executable file is downloaded into the computer (10). When the executable file is run, the computer (10) either writes predetermined data into the memory, or installs files that enable subsequent writing of the predetermined data into the memory. Preferably, everything needed for programming the memory is included in one download, so that the only preinstalled software application needed on the computer (10) is a conventional web browser.
Description
PROGRAMMING A MEMORY BASED ON INFORMATION OBTAINED FROM A REMOTE LOCATION
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to the programming of memories used in electronic devices based on information received from a remote server.
2. Background
Certain devices are designed so that their programs and/or data can be upgraded by inserting a PCMCIA card (or another type of plug-in module) into a mating slot in the device. Traditionally, these upgrades have been implemented by distributing new PCMCIA cards to end users of the device, and asking the end-user to unplug the old PCMCIA card, replace it with the new one, and to return the old PCMCIA card. However, due to the relatively high cost of the PCMCIA cards, it can be expensive when an end user fails to return the old card for reprogramming . In addition, should the end user fail to upgrade their program or data on the device, they may be disadvantaged by using outdated data. The inventors have recognized a need for an improved way to upgrade PCMCIA cards.
Other devices are designed to accept programs and/or data upgrades from a computer that communicates with the device via a suitable cable, cradle, or other interface. For example, Palm™ handheld organizers are sold with a utility program (which runs on the computer) for
transferring files into the handheld. The user selects a file that resides on the computer (e.g., by double-clicking on an icon or by typing in the file's name) and the utility program on the computer sends the file into the handheld.
In some instances, the files that are ultimately transferred into the handheld are downloaded via the Internet from a web site such as www.zdnet.com/downloads. But with this arrangement, in order to transfer a file from the Internet into the handheld device, two things are required: the file to be transferred (which is obtained via the Internet) , and the utility program that resides on the local computer. As a result, when a user borrows another person's computer, the user will usually still be able to access the Internet. However, if the utility program is not installed on the borrowed computer, the user will not be able to transfer the file into his handheld. The inventors have recognized a need for simplifying the downloading and data-transferring process to avoid this shortcoming.
SUMMARY OF THE INVENTION The present invention relates to writing data into memories in plug-in modules or in other target devices.
One aspect of the present invention is directed to a method of using a computer to write data into a memory in a device. In this method, an executable file is downloaded from a remote file server into the computer. The executable file contains instructions that, when executed by the computer, will cause the computer to write predetermined data into the memory. The computer is interfaced with the device so that the computer can send signals to the device that will cause the computer to write the predetermined data into the memory. The downloaded executable file is run on
the computer so that the instructions are executed by the computer. Then, under control of the running executable file, signals are sent from the computer to the device. These signals cause the predetermined data to be written into the memory.
Another aspect of the present invention is directed to a method of using a computer to write data into a memory in a device. In this method, a first executable file is downloaded from a remote file server into the computer. The first executable file contains first instructions that, when executed by the computer, will cause the computer to create a second executable file that contains second instructions. These second instructions are selected so that when the second instructions are executed by the computer, the second instructions will cause the computer to write predetermined data into the memory. The first executable file is then run on the computer so that the first instructions are executed by the computer. Under control of the running first executable file, the second executable file is created. The computer is interfaced with the device so that the computer can send signals to the device that will cause the computer to write the predetermined data into the memory. The second executable file is then run on the computer so that the second instructions are executed by the computer. Under control of the running second executable file, signals are sent from the computer to the device. These signals cause the predetermined data to be written into the memory.
Another aspect of the present invention is directed to a method of using a computer to write data into a memory in a device. In this method, a first executable file is downloaded from a remote file server into the computer. The
first executable file contains first instructions that, when executed by the computer, will cause the computer to create a data file and a second executable file. The second executable file contains second instructions that are selected so that when the second instructions are executed by the computer, the second instructions will cause the computer to write predetermined data into the memory based on data contained in the data file. The first executable file is run on the computer so that the first instructions are executed by the computer. Under control of the running first executable file, the second executable file and the data file are created. The computer is interfaced with the device so that the computer can send signals to the device that will cause the computer to write the predetermined data into the memory. The second executable file is then run on the computer so that the second instructions are executed by the computer. Under control of the running second executable file, signals are sent from the computer to the device. These signals cause the predetermined data to be written into the memory based on the data contained in the data file.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a schematic hardware block diagram for first and second embodiments of the present invention.
FIG. 2A is a flowchart of processes implemented in a first embodiment of the present invention.
FIG. 2B is a data flow diagram for the first embodiment of the present invention.
FIG. 3A is a flowchart of processes implemented in a second embodiment of the present invention.
FIG. 3B is a data flow diagram for the second embodiment of the present invention.
FIG. 3C is a data flow diagram for a variant of the second embodiment of the present invention.
FIG. 4 is a schematic hardware block diagram of an alternative context for implementing the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIG. 1 is a schematic hardware block diagram for first and second embodiments of the present invention. A computer 10 includes a modem 13, which enables the computer to establish a communication link with a remote server 11 via the Internet 12. The computer 10 also includes a PCMCIA card interface 14 that enables the computer to write data onto a PCMCIA card 15 that has been inserted into a PCMCIA slot (not shown) in the computer 10. The PCMCIA slot includes a connector that mates with terminals on the PCMCIA card 15. After data has been written onto the PCMCIA card 15, the PCMCIA card 15 may be removed from the computer 10 and inserted into the target device 16. The hardware for the illustrated computer 10 is widely available off-the- shelf from a variety of computer manufacturers including HP, IBM, Compaq, and Apple.
In alternative embodiments, other types of plug-in cards or modules may be substituted for the PCMCIA card 15, as long as the interface 14 is modified to match the card or module. These alternative plug-in cards or modules may be custom-designed to interface with a particular piece of hardware, or may be designed to comply with an industry- standard interface. Alternative communication links may also be used in place of the Internet 12 link between the
computer 10 and the remote server 11. For example, a direct dial-up modem link may be established between the computer 10 and the remote server 11 via the modem 13, or a hardwired connection (using, e.g., wire or fiber optic cable) may be established between the computer 10 and the remote server 11. Of course, when substitutions for any of the components illustrated in FIG. 1 are made, appropriate modifications to the description that follows may be required, as will be appreciated by persons skilled in the relevant arts. •
FIG. 2A is a flowchart that depicts the processes implemented in the computer 10 in the first embodiment, and FIG. 2B shows the data flow that accompanies the implementation of those processes. These figures are best understood when viewed in connection with FIG. 1. Reference numbers preceded by an S can be found in FIG. 2A, and the numeric reference numbers can be found in FIGS. 1 and 2B.
First, in step S25, an executable file 20 is downloaded from the remote server 11 to the computer 10 via the Internet 12. The download process is preferably implemented using any conventional technique (including, for example, the downloading routines built in to Netscape™ Navigator and Microsoft™ Internet Explorer) . Selection of a particular executable file for downloading may be accomplished using any suitable user interface technique. For example, a user may be invited to visit a web page (e.g., www. cent- tech, com/download/file2000152.html) that is set up for the specific purpose of downloading one particular file. Alternatively, users may be invited to visit a web page (e.g., www.cent-tech.com/downloadmenu. html) that is set up for accessing any of a plurality of files. Any suitable user interface may then be used to select the desired
executable file, including, for example, listing the available files on a menu, or requesting a user input using a dialog box.
The executable file 20 that is downloaded from the remote server 11 is designed so that it can be executed on the computer 10. The executable file 20 contains program instructions, and when the computer 10 executes these program instructions, the program will cause the computer 10 to write predetermined data into the PCMCIA card 15 via the PCMCIA interface 14. The specific format of the executable file 20 will usually depend on the particular operating system that runs on the computer 10 (e.g., Microsoft™ Windows or MacOS™) .
In this embodiment, the desired data that will ultimately be written into the PCMCIA card 15 is either stored as or derived from data 21 embedded within the executable file 20 itself. A variety of different approaches may be used for embedding this data 21 within the executable file 20. For example, the data 21 may be interspersed with the program instructions of the executable file 20, or incorporated in one or more tables that are included within the executable file 20.
In some embodiments, the data 21 is the same as the desired data that will ultimately be written into the PCMCIA card. In these embodiments, the data 21 is read from the executable file 20, and signals to write the data 21 into the memory are generated. In other embodiments, the data 21 is not the same as the desired data that will ultimately be written into the PCMCIA card. In these embodiments the data 21 is read from the executable file 20, the desired data
(not shown) is determined based on the data 21, and signals to write the desired data into the memory are generated. For example, the data 21 may be a compressed version of the desired data that will ultimately be written into the PCMCIA card. In this case, the executable file 20 would include instructions for decompressing the data 21.
Once the executable file 20 has been transferred into the computer 10, processing proceeds at step S26, where the executable file is run. Running of the executable file 20 is preferably handled by the operating system of the computer 10, and may be initiated using any conventional program-launching technique, preferably in response to a user input (e.g., double clicking on an icon or typing in a program name and pressing enter) . Running the executable file 20 causes the computer 10 to read and execute the instructions contained in the executable file 20.
The executable file 20 for writing the write data into the PCMCIA card could include, for example, instructions for: (1) configuring the PCMCIA card; (2) checking that the PCMCIA card 15 is blank; (3) erasing the PCMCIA card 15; (4) programming the PCMCIA card 15; and (5) verifying that the PCMCIA card 15 has been properly programmed. When the computer 10 executes the instructions for programming the PCMCIA card 15, it reads the data 21 contained within the executable file 20, and generates output signals based on the data 21 to write the desired data into the PCMCIA card 15. The required sequence of output signals that must be sent into the PCMCIA card 15 to implement card programming is conventional, and is usually specified by the manufacturers of the PCMCIA cards themselves. Conventional software routines that generate the proper sequence of
output signals from a block of data are well known to persons skilled in the art. When the computer 10 executes the instructions for verifying the PCMCIA card, it may use the same data 21, or an alternative set of data derived from the data 21 and stored on the computer 10.
Because the data 21 is embedded within the executable file 20 itself, everything needed to program the PCMCIA card 15 arrives from the Internet 12 in a single bundle. This arrangement enables any computer with a connection to the Internet and a PCMCIA slot (which includes virtually all laptop computers) to be used as a PCMCIA card programmer. This is a significant improvement over the prior art arrangements that only downloaded the data file from the Internet, and relied on a separate programming utility that had to be installed on a computer in order to get the downloaded data file into the target device.
FIG. 3A is a flowchart that depicts processes implemented in the computer 10 in the second embodiment, and FIG. 3B shows the data flow that accompanies the implementation of those processes. These figures are best understood when viewed in connection with FIG. 1. First, in step S35, an executable file 30 is downloaded from the remote server 11 to the computer 10 via the Internet 12 in a manner similar to the first embodiment discussed above. The executable file 30 of this embodiment is also designed so that it can be executed on the computer 10. However, unlike the executable file 20 of the first embodiment, when the computer 10 eventually executes the executable file 30, the program contained in the file 30 causes the computer 10 to create a secondary set of files. This secondary set of
files will subsequently be used to write predetermined data into the PCMCIA card 15 via the PCMCIA interface 14.
Once the first executable file 30 has been downloaded into the computer 12, processing continues at step S36, where the first executable file 30 is run. Running of the first executable file 30 is preferably initiated by the operating system on the computer 10 in any conventional manner, as described above in connection with the FIG. 2B embodiment .
In the FIG. 3B embodiment, the first executable file 30 includes information that is used to create both a data transfer program 32 and a data file 33. In some preferred embodiments, the first executable file relies on conventional file decompression software such as WinZip™ (available from WinZip Computing, Inc.). Optionally, the executable file 30 in these embodiments may be a self- extracting zipped file that, when executed, unzips itself into the data transfer program 32 and the data file 33. In some embodiments, the executable file may rely on a conventional installation program such as InstallShield™
(available from InstallShield Software Corp.) to create the data transfer program 32 and the data file 33.
Once the data transfer program 32 and the data file 33 have been installed onto the computer 10, processing proceeds to step S37, where the data transfer program 32 is run. Launching of the data transfer program 32 may be accomplished using any conventional program-launching technique in response to a user input (e.g., double clicking on an icon or typing in a program name and pressing enter) . Alternatively, launching may be initiated automatically by
the operating system as soon as step S36 has finished. In either case, the operating system of the computer 10 launches the data transfer program 32, and runs it. Operation of this data transfer program 32 is similar to the operation of the executable file 20 of the first embodiment, except that the data is obtained from the data file 33 instead of from within the executable file itself.
Because everything necessary to get the desired data into the PCMCIA card 15 is provided to the computer 10 via the Internet 12 in step S35 of this embodiment, this embodiment also enables any computer with a connection to the Internet and a PCMCIA slot to be used as a PCMCIA card programmer .
FIG. 3C is a variation of the FIG. 3B embodiment. It is similar to the FIG. 3B embodiment in that a second executable output file 32' is created when the first executable file 30' is executed in step S36. However, unlike the FIG. 3B embodiment, a distinct data file is not created. Instead, when the second executable file 32' is created in step S36 (under control of the first executable file), the second executable file 32' is configured to include embedded data 33'. This second executable file 32' therefore resembles the executable file 20 of the first embodiment described above in connection with FIGS. 2A and 2B.
After the second executable file 32' has been created, it is run. Launching of the data transfer program 32' may be accomplished using any of the techniques described above in connection with the FIG. 3B embodiment. Operation of this executable file 32' is similar to the operation of the
executable file 20 of the first embodiment, and results in the writing of the desired data into the PCMCIA card 15.
In alternative embodiments (not shown) , a scripting language (e.g., a Java or VB script) or a Java component (e.g., Java Bean) may be used to implement the programming instead of a downloaded executable file. The script may be implemented on the web page that is visited by the user when the user wishes to program a PCMCIA card.
If the security requirements of such scripts prevent them from communicating with the device drivers required to program a PC card, a web page component (e.g., ActiveX Control) may be used to implement the programming. Such components can access the operating system functions that are needed to communicate with device drivers. This approach would require downloading a device driver that allows the control component (e.g., the ActiveX control) to communicate with the card and socket service drives on the user's system. This approach provides a simplified interface for the users,, who can simply visit the page with the ActiveX control and click a "Go" button. In response, the ActiveX control would download any needed device drivers, and then make use of those drivers to program the device while the user is connected to the Internet.
Any of the above-described embodiments may also be used to program memories in devices other than the PCMCIA card 15 illustrated in FIG. 1. FIG. 4 is a schematic hardware block diagram of an alternative context for implementing the present invention. Its operation is similar to FIG. 1, described above, except that the computer 10 in the FIG. 4 embodiment interfaces with a target device 5& via a data
port 54 (instead of with a PCMCIA card) . The target device 56 contains a memory 55.
Any number of different types of target devices 56 may be used. Examples include handheld organizers (such as the Palm™ Vx and the Handspring Visor™) , MP3 players (such as the Diamond Rio™ and the Creative Labs Nomad™) , and other types of stand-alone electronic devices. The specifics of the hardware interface between the computer 10 and the target device 56 will depend on the particular device being used. For example, many devices communicate with the computer via a cradle (not shown) that mates with the device at one end and plugs into a port on the computer 10 at the other end (e.g., an RS232, USB, or Centronics port) . Other devices communicate with the computer via infrared (IR) signals that are transmitted between an IR port (not shown) on the computer 10 and a corresponding IR port on the target device 56.
The specifics of the software interface between the computer 10 and the target device 56 will also depend on the particular device being used. Typically, the computer writes information into the memory 55 in the target device 56 by sending instructions to the target device 56 via the hardware interface (e.g., the RS232, USB, Centronics, or IR port). The target device 56 is pre-programmed (e.g., by a firmware routine) to accept these instructions via the hardware interface, and to write to its own data or program memory 55 based on these instructions. Once the write operation is completed, the target device can be operated using the newly written data or program file.
While the present invention has been explained in the context of the preferred embodiments described above, it is to be understood that various changes may be made to those embodiments, and various equivalents may be substituted, without departing from the spirit or scope of the invention, as will be apparent to persons skilled in the relevant art.
Claims
1. A method of using a computer to write data into a memory in a device, the method comprising the steps of: downloading an executable file from a remote file server into the computer, the executable file containing instructions that, when executed by the computer, will cause the computer to write predetermined data into the memory; interfacing the computer with the device so that the computer can send signals to the device that will cause the computer to write the predetermined data into the memory; running the executable file downloaded in the downloading step on the computer so that the instructions are executed by the computer; and sending, under control of the executable file being run in the running step, signals from the computer to the device that cause the predetermined data to be written into the memor .
2. The method of claim 1, wherein the executable file downloaded in the downloading step further contains at least one block of data, and wherein the instructions contained in the executable file, when executed by the computer, cause the computer to write the predetermined data into the memory based on the at least one block of data.
3. The method of claim 2, wherein the at least one block of data is compressed, and the instructions contained in the executable file include instructions for decompressing the at least one block of data.
4. The method of claim 1, wherein the device comprises a PCMCIA card.
5. The method of claim 1, wherein the device comprises a stand-alone electronic device.
6. The method of claim 5, wherein the signals sent in the sending step comprise instructions that instruct the standalone electronic device to write the data into the memory.
7. The method of claim 1, wherein the interfacing step comprises the step of establishing at least one electrical connection, via a connector, between the computer and the device .
8. A method of using a computer to write data into a memory in a device, the method comprising the steps 'of: downloading a' first executable file from a remote file server into the computer, the first executable file containing first instructions that, when executed by the computer, will cause the computer to create a second executable file that contains second instructions, wherein the second instructions are selected so that when the second instructions are executed by the computer, the second instructions will cause the computer to write predetermined data into the memory; running the first executable file on the computer so that the first instructions are executed by the computer; creating, under control of the first executable file being run in the first-executable-file running step, the second executable file; interfacing the computer with the device so that the computer can send signals to the device that will cause the computer to write the predetermined data into the memory; running the second executable file on the computer so that the second instructions are executed by the computer; and sending, under control of the second executable file being run in the second-executable-file running step, signals from the computer to the device that cause the predetermined data to be written into the memory.
9. The method of claim 8, wherein the first instructions contained in the first executable file, when executed by the computer, cause the computer to include at' least one block of data in the second executable file, and wherein the second instructions contained in the second executable file, when executed by the computer, cause the computer to write the predetermined data into the memory based on the at least one block of data.
10. The method of claim 9, wherein the at least one block of data is compressed, and the second instructions contained in the second executable file include instructions for decompressing the at least one block of data.
11. The method of claim 8, wherein the device comprises a PCMCIA card.
12. The method of claim 8, wherein the device comprises a stand-alone electronic device.
13. The method of claim 12, wherein the signals sent in the sending step comprise instructions that instruct the standalone electronic device to write the data into the memory.
14. The method of claim 8, wherein the interfacing step comprises the step of establishing at least one electrical connection, via a connector, between the computer and the device.
15. A method of using a computer to write data into a memory in a device, the method comprising the steps of: downloading a first executable file from a remote file server into the computer, the first executable file containing first instructions that, when executed by the computer, will cause the computer to (a) create a data file, and (b) create a second executable file that contains second instructions, wherein the second instructions are selected so that when the second instructions are executed by the computer, the second instructions will cause the computer to write predetermined data into the memory based on data contained in the data file; running the first executable file on the computer so that the first instructions are executed by the computer; creating, under control of the first executable file being run in the first-executable-file running step, the second executable file and the data file; interfacing the computer with the device so that the computer can send signals to the device that will cause the computer to write the predetermined data into the memory; running the second executable file on the computer so that the second instructions are executed by the computer; and sending, under control of the second executable file being run in the second-executable-file running step, signals from the computer to the device that cause the predetermined data to be written into the memory based on the data contained in the data file.
16. The method of claim 15, wherein the data file is compressed, and the second instructions contained in the second executable file include instructions for decompressing the data contained in the data file.
17. The method of claim 15, wherein the device comprises a PCMCIA card.
18. The method of claim 15, wherein the device comprises a stand-alone electronic device.
19. The method of claim 18, wherein the signals sent in the sending step comprise instructions that instruct the standalone electronic device to write the data into the memory.
20. The method of claim 15, wherein the interfacing step comprises the step of establishing at least one electrical connection, via a connector, between the computer and the device .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2001261616A AU2001261616A1 (en) | 2000-05-17 | 2001-05-15 | Programming a memory based on information obtained from a remote location |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US20468600P | 2000-05-17 | 2000-05-17 | |
US60/204,686 | 2000-05-17 | ||
US80555201A | 2001-03-13 | 2001-03-13 | |
US80555101A | 2001-03-13 | 2001-03-13 | |
US09/805,552 | 2001-03-13 | ||
US09/805,551 | 2001-03-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2001088732A1 true WO2001088732A1 (en) | 2001-11-22 |
Family
ID=27394689
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2001/015656 WO2001088732A1 (en) | 2000-05-17 | 2001-05-15 | Programming a memory based on information obtained from a remote location |
PCT/US2001/015672 WO2001088817A1 (en) | 2000-05-17 | 2001-05-15 | Fee management for programming of electronic devices |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2001/015672 WO2001088817A1 (en) | 2000-05-17 | 2001-05-15 | Fee management for programming of electronic devices |
Country Status (2)
Country | Link |
---|---|
AU (2) | AU2001263140A1 (en) |
WO (2) | WO2001088732A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1588259A2 (en) * | 2003-01-30 | 2005-10-26 | Epocrates, Inc. | System and method for automatically installing data on a handheld computer |
WO2010040411A1 (en) * | 2008-10-09 | 2010-04-15 | Tomtom International B.V. | Electronic apparatus, content data transfer apparatus and method of transferring content data |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060130033A1 (en) * | 2003-03-03 | 2006-06-15 | Snap-On Technologies, Inc. | Method for providing a software module to an automotive vehicle control unit, and computer program for executing the method |
US7324473B2 (en) | 2003-10-07 | 2008-01-29 | Accenture Global Services Gmbh | Connector gateway |
US7239877B2 (en) | 2003-10-07 | 2007-07-03 | Accenture Global Services Gmbh | Mobile provisioning tool system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6023585A (en) * | 1997-05-02 | 2000-02-08 | Webtv Networks, Inc. | Automatically selecting and downloading device drivers from a server system to a client system that includes one or more devices |
US6135887A (en) * | 1996-02-12 | 2000-10-24 | International Game Technology | Peripheral device download method and apparatus |
US6216152B1 (en) * | 1997-10-27 | 2001-04-10 | Sun Microsystems, Inc. | Method and apparatus for providing plug in media decoders |
US6240459B1 (en) * | 1997-04-15 | 2001-05-29 | Cddb, Inc. | Network delivery of interactive entertainment synchronized to playback of audio recordings |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004077300A1 (en) * | 1992-01-22 | 2004-09-10 | Yoshimasa Kadooka | Ic memory card and protection therefor |
US5319705A (en) * | 1992-10-21 | 1994-06-07 | International Business Machines Corporation | Method and system for multimedia access control enablement |
NO302388B1 (en) * | 1995-07-13 | 1998-02-23 | Sigurd Sigbjoernsen | Procedure and apparatus for protecting software against unauthorized use |
US5761306A (en) * | 1996-02-22 | 1998-06-02 | Visa International Service Association | Key replacement in a public key cryptosystem |
-
2001
- 2001-05-15 WO PCT/US2001/015656 patent/WO2001088732A1/en active Application Filing
- 2001-05-15 AU AU2001263140A patent/AU2001263140A1/en not_active Abandoned
- 2001-05-15 WO PCT/US2001/015672 patent/WO2001088817A1/en active Application Filing
- 2001-05-15 AU AU2001261616A patent/AU2001261616A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6135887A (en) * | 1996-02-12 | 2000-10-24 | International Game Technology | Peripheral device download method and apparatus |
US6240459B1 (en) * | 1997-04-15 | 2001-05-29 | Cddb, Inc. | Network delivery of interactive entertainment synchronized to playback of audio recordings |
US6023585A (en) * | 1997-05-02 | 2000-02-08 | Webtv Networks, Inc. | Automatically selecting and downloading device drivers from a server system to a client system that includes one or more devices |
US6216152B1 (en) * | 1997-10-27 | 2001-04-10 | Sun Microsystems, Inc. | Method and apparatus for providing plug in media decoders |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1588259A2 (en) * | 2003-01-30 | 2005-10-26 | Epocrates, Inc. | System and method for automatically installing data on a handheld computer |
EP1588259A4 (en) * | 2003-01-30 | 2006-09-20 | Epocrates Inc | System and method for automatically installing data on a handheld computer |
WO2010040411A1 (en) * | 2008-10-09 | 2010-04-15 | Tomtom International B.V. | Electronic apparatus, content data transfer apparatus and method of transferring content data |
Also Published As
Publication number | Publication date |
---|---|
WO2001088817A1 (en) | 2001-11-22 |
AU2001263140A1 (en) | 2001-11-26 |
AU2001261616A1 (en) | 2001-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6275931B1 (en) | Method and apparatus for upgrading firmware boot and main codes in a programmable memory | |
KR100520058B1 (en) | System for upgrading device driver and method for upgrading the same | |
US7146609B2 (en) | Method, system and article of manufacture for a firmware image | |
EP1566726B1 (en) | Detachable usb device comprising unit devices | |
US6594757B1 (en) | Remote BIOS upgrade of an appliance server by rebooting from updated BIOS that has been downloaded into service partition before flashing programmable ROM | |
US6892216B2 (en) | Common platform for use in automotive services | |
WO2002096058A2 (en) | Web-based file manipulating system | |
US20030217358A1 (en) | Method, system, and article of manufacture for firmware downloads | |
US20060047798A1 (en) | System and method for automated capture, editing, replication, and deployment of server configurations | |
CN101216773A (en) | Embedded Linux system firmware downloading method and device | |
US20130304939A1 (en) | Method and System for Integrated Circuit Card Device With Reprogrammability | |
US20040199911A1 (en) | Apparatus and method for upgrading execution code of the portable memory device | |
US20070028227A1 (en) | Code development system and method | |
WO2001088732A1 (en) | Programming a memory based on information obtained from a remote location | |
Cisco | Installing and Upgrading Cisco ICS 7750 System Software | |
JP4054626B2 (en) | Information terminal device and program | |
CN111522778B (en) | File migration method | |
CN114116027A (en) | Method, system, terminal and storage medium for automatically installing drive for PCIE equipment | |
Cisco | Installing Network Data Collector | |
US20090157908A1 (en) | Software Driver Device | |
KR20020010559A (en) | Portable Digital Device Application Software Run System using Virtual Machine in Internet, and the Method | |
KR20030016746A (en) | System and method for program upgrade | |
AU2013200859B2 (en) | Method and system for managing data and a corresponding computer program and a corresponding computer-readable storage medium | |
US7440949B1 (en) | System and method for configuring a host for operationally cooperating with data storage system | |
JP4051711B2 (en) | How to install the software |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
122 | Ep: pct application non-entry in european phase | ||
NENP | Non-entry into the national phase |
Ref country code: JP |