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 PDF

Info

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
Application number
PCT/US2001/015656
Other languages
French (fr)
Inventor
Grady Lambert
Thomas Mccormick
Original Assignee
Smart Modular Technologies, (Ma) Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Smart Modular Technologies, (Ma) Inc. filed Critical Smart Modular Technologies, (Ma) Inc.
Priority to AU2001261616A priority Critical patent/AU2001261616A1/en
Publication of WO2001088732A1 publication Critical patent/WO2001088732A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software 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

WHAT IS CLAIMED IS:
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 .
PCT/US2001/015656 2000-05-17 2001-05-15 Programming a memory based on information obtained from a remote location WO2001088732A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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