GB2320592A - Upgrading firmware in a microprocessor controlled appliance - Google Patents

Upgrading firmware in a microprocessor controlled appliance Download PDF

Info

Publication number
GB2320592A
GB2320592A GB9626573A GB9626573A GB2320592A GB 2320592 A GB2320592 A GB 2320592A GB 9626573 A GB9626573 A GB 9626573A GB 9626573 A GB9626573 A GB 9626573A GB 2320592 A GB2320592 A GB 2320592A
Authority
GB
United Kingdom
Prior art keywords
data
microprocessor
external source
software
electronic appliance
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
GB9626573A
Other versions
GB9626573D0 (en
GB2320592B (en
Inventor
Kwong Heng Kwok
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Technicolor SA
Original Assignee
Thomson Multimedia SA
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 Thomson Multimedia SA filed Critical Thomson Multimedia SA
Priority to GB9626573A priority Critical patent/GB2320592B/en
Publication of GB9626573D0 publication Critical patent/GB9626573D0/en
Publication of GB2320592A publication Critical patent/GB2320592A/en
Application granted granted Critical
Publication of GB2320592B publication Critical patent/GB2320592B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Microcomputers (AREA)

Abstract

Electronic appliance incorporating a microprocessor 1 for controlling the working of the appliance, the microprocessor having firmware stored on an internal read only memory (ROM), input and output terminals, 5, 6, the improvement comprising an external source 2 of data coupled to one input terminal of the microprocessor, at least one set of instructions in the ROM being used to read data from said external source of data when a control signal on one or more input terminals, 6, has a predetermined value. The external source may be an EEPROM, the external data being used to correct or upgrade the firmware.

Description

Improved microprocessor control appliance The invention pertains to the field of electronic appliance that includes an internal microprocessor to control functions of the appliance.
Such microprocessor are fitted with internal read only memory (ROM) masked to implement data and software. Appliances including such microprocessors can be television sets, video recorder and player, or any audio or video receivers.
Generally the microprocessor of such appliance is delivered to the maker of the appliance with masked software and data. Software and data are implemented in the ROM of the microprocessor according to the requirement of the maker of the appliance. Deliveries are generally made in quantities necessary for production for three or four months.
It happens that even a small bug can render a mask useless and hence efforts, time and money are wasted.
The invention is intended to save the situation, at least in some cases when a batch of microprocessors is delivered, that includes a bug.
The invention can also be used to change data or software of an already masked microprocessor. The use of the invention can then, avoid scrapping of microprocessors including a bug or including data or software to be modified, for instance for updating. The invention can be used in factory on production, line or outside factory, for instance at customer premises.
According to the invention it is proposed to prepare the software so that it includes instructions to read an external source of data if a condition is fulfilled. The condition may be whether a level of a terminal of the microprocessor is high or not, which is simple, or any other condition. In case an operator will see that data or software included in the ROM of the microprocessor are to be amended, he will settle, with appropriate means said terminal to high. The microprocessor will then read the external source of data. Said source is implemented with data and instructions to solve the bug and/or bring upgrading that are needed. To sum up the invention is in the more general case about an electronic appliance incorporating a microprocessor for controlling the appliance, the microprocessor having an internal software stored on an internal read only memory (ROM), input and output terminals, the improvement comprising an external source of data coupled to one input terminal of the microprocessor, at least one set of instructions to read under condition external data from said external source of data, and means to command the implementation of the condition.
The condition may be whether a combination of values is or not present on predetermined terminals of the microprocessor or may be for instance a result to be reached by any combination of those values. It could be as well the state of several terminals, or any other condition, for instance the state of a particular component of the appliance. The condition need not to be present full time, it may also be present part time. For instance if the condition is that a terminal has to be settled to high, then it could applied to said terminal a succession of low and high level for instance in a periodic way. In this last case the duration of the high level is preferably superior to the duration of the time needed to perform the main loop of the software embedded in the microprocessor.
The terminal can also be linked to any desired hardware signals so as to activate the run from an external stored code. For instance if the need is for reading external source only in a standby mode of the appliance, then if there is a hardware line that is indicating that the system is in standby mode when this line is settled to high, then this line can be joint directly to the terminal. This will activate a run of the software to read the external source, only in standby mode. But if the line indicates that the system is in standby mode with low, then an inverter or a transistor switch can be added to invert the signal before joining the terminal. The main feature for the condition to be fulfilled is that whether or not it is fulfilled is depending under an order coming from an operator or from means or component which are independent from microprocessor.
When the appliance is fitted with the feature of the invention the embedded software can be modified after sales if it appears to be needed by a change in external conditions of use of the appliance. An example of such a modification will be given later on.
Examples of embodiment of the invention will now be described in accordance with the appended drawings in which: figure 1 is an electrical diagram of a part of an appliance including a microprocessor according to the invention figure 2 is an example of a part of a software masked in a ROM of a microprocessor included in an appliance according to the invention Figure 1 is an electrical diagram of a part of an electronic appliance fitted with a microprocessor 1 connected to an external source of data 2 for instance as represented an electrically erasable programmable ROM (EEPROM). The EEPROM is linked to the microprocessor 1 by a clock bus 3 and a data bus 4. The microprocessor is fitted with input output terminals 5 to be connected to other parts of the appliance. Said other part are not shown. One of those terminals numbered 6 is connected to commendable means 8 that can receive a command 7 or a signal that will modify the state of terminal 6. The microprocessor 1 is embedded with data and software to run the appliance. According to the invention said software comprises instructions to check the level of input terminal 6 and to read EEPROM 2 if said terminal 6 is for instance settled to high. An example of such a part of a software is shown figure 2. In figure 2, 9 is for the main loop of the software. When arriving at 9 other instructions may have been executed. Module 9 is a return point in the main loop. Module 10 is to symbolise other instructions to be executed in the main loop of the software. Then module 11 is to check the state of terminal 6. In this embodiment the check is for only one state of one terminal, it could be also any other condition as explained above. If the answer to module 11 is no that means that there is no need to modify the embedded software of microprocessor 1 and microprocessor 1 is ordered to come back to the main loop of the software and to perform what is still to be done. If the answer to module 11 is yes, then microprocessor 1 is ordered in a module 1 2 to read data that are present in the external source 2 and to store them in a random access memory (RAM) normally present in every microprocessor. When module 1 2 is performed microprocessor 1 is ordered in a module 1 3 to execute instructions stored in said RAM. Instruction and data stored in said RAM may remedy a bug in the embedded software of the microprocessor. To increase the likelihood of a possible bug to be overcome according to the invention a set of instructions as the one represented figure 2 can be present several time in the whole set of instructions embedded in the software. The software can also provide for a loading of the data stored in the external source 2 to be done in several time. Such a software may be needed in case the RAM of the microprocessor is too small to store all the data included in the EEPROM. In said case the loading is made in several blows.
An example of such a use will be thereafter given in a detailed way, in the case where the appliance is a video cassette recorder (VCR). In such a case the external source 2 can be loaded from a tape on which are written the data to be loaded. The operator, who may be either in production line or after sale will put in said tape in the VCR.
The data encoding of the tape is made preferably in a format that is currently being used in order to reduce cost of an additional integrated circuit which is needed, in a known way, to extract data out of a video signal. For example the data could be encoded according to US standard EIA-608 for television extended data service (EDS) VCR able to use EDS are fitted with an extractor of data often in the form of an integrated circuit (XDS data slicer IC). EDS format is also practical in this case as it is one of the format whose frequency of the data carrier can be stored on a VCR tape. The VCR being connected in a known way to a television set , the user can activate a command for instance through an on screen display menu or some particular key presses. For instance the command could be activated by pressing play key for six seconds in playback mode, the safety tab of the tape being off. Let us assume that data to be included in external source 2 have been written in lieu of program titles of the EDS. When the user activates the command, the microprocessor can start to read program title using the XDS data slicer integrated circuit. Once reading has started the microprocessor of the VCR can generate on screen, an indication to the user so that he knows that reading is on progress, for instance cc processing can appear on screen.
In an other mode still for a VCR the embedded software of microprocessor 1 may be written in such a way that the loading of the external source is self activated if the EDS title contains a predetermined control word or succession of words. In such a case software of microprocessor 1 is fitted with instructions to compare words of the tittle with said predetermined word or succession of words and to start loading if said word or succession of words is found. As in the commanded case an indication on screen can be displayed that the process of loading is in progress.
As the EDS data are in a 7 bits format, that may represent a loss of room in the EEPROM if said EDS data were used directly as they are. It is the reason why in an embodiment of the invention using EDS standard the useful data are included only in the lower nibble of each byte. Using the lower nibble of each EDS byte, two EDS data bytes can be combine to form one byte to be loaded in the EEPROM. The EDS tittle can be, according to standard EIA-608, 32 characters long. If six bytes are used as control bytes the other 26 bytes present on the tape can then form 1 3 data bytes to be loaded in the EEPROM. The control byte are preferably two bytes long repeated two times in order to eliminate unwanted commands. These control bytes can be used to indicate start and end of process of loading. For the other 1 3 data bytes to be loaded from said title in the EEPROM, the first byte can be used to indicate the address of the external source 2 in which data coming from the tape are to be written, the second byte can indicate the first address in said external source where to write the first data to be read out from the tape and third byte can indicate the number of bytes to be written in said external source. The software is preferably embedded with instructions to eject the tape and run a reset start when data have been read and stored in said external source and when the microprocessor has received, taken out of the tape, an end of process command. When the operation is completed the VCR runs with the bug solved or a feature modified or added.
It will be thereafter given a full example of a modification of a software using the invention. In this example, the system corrects the channel number to 05 when the system is in recording mode. This example also touches on how to do a multiple RUN (read from EEPROM and execute) so as to reduce the number of RAM needed in the microprocessor for this function. An EEPROM coupled on a bus, a microprocessor with built in codes are two of the components used here.
First the number of RAM available is determined to be, for instance, 40.
This will allow approximately 10 lines of assembly codes per run. Then the starting address of the first codes is determined to be, for instance 290h (h stand for c < hexadecimal ) in an 8 kilobytes EEPROM 2 having a device address of AOh to A6h (depending on the subaddress page of the EEPROM). For subaddress of 200h to 2FFh, the device address is A4h and from subaddress of 300h to 3ffh, the device address is A6h. Table in an appendix to this specification shows the format for data that is stored in the EEPROM.
40 bytes of codes are stored in the EEPROM from address 290h to address 2B7h; the first two bytes of the last four bytes stored in this example at address 2B4 and 2B5 are the device address (A6h) and sub-address (20h) of the next set of stored assembly codes. The two last bytes are check sum of the data. 2 bytes at least is recommended here as an uninitialised EEPROM has very random data and 2 bytes check sum reduces the chance of having unintended codes.
By indicating the next device and sub-addresses of stored codes, the system can have access to more than 40 bytes codes. It can also have access to other EEPROMs with different device and subaddresses on the same bus or have EEPROMs on an other bus if the software and hardware have been prepared for.
In figure 3, an example of such a software flowchart is shown.
9 is as in figure 2 to design the main loop, then 1 4 is for other functions to be done in normal routine. Using the same hardware configuration as in figure 1, the software checks in 1 5 at port 6 if it is needed to read some codes stored externally, and in this case it is assumed that port 6 is HIGH.
Next in routine 1 6 the following functions are done: -Load bus device address to A4h - this give access to page 2 of the EEPROM -Load bus sub address to 90h - this give access to final address of 290h in the EEPROM This being done the system will read in module 1 7 the 40 bytes of data from the EEPROM and store them into RAM starting from location INBUFFER. After which in module 1 8 the check sum for the data is calculated and compared to that stored in the EEPROM in sub address 2B6h and 2B7h.
If the check sum is found in a next module 1 9 to be correct, the system will call RAM location INBUFFER as a routine, in 20 and the data becomes assembly instructions performing the following function; -check if the system is in record mode.
-If it is in record mode, then load channel number to 05, else exit the system.
After the routine has been performed and returning from the routine in R3 20, the software checks in 21 if there is more codes stored in other location of the EEPROM by comparing, in R4, the address of the device and sub- address stored in 2B4h and 2B5h of the EEPROM with, for instance OOh.to determine whether a new reading is necessary.
If the data does not equal to OOh as in table 1, the software reads the data from the newly specified address, device address = A6h and sub-address=20h, and repeats the task from module 1 7 onwards.
This loop will allow more functions to be performed from the assembly codes stored in various addresses and devices externally. If it is found in module 21 that there is no more codes to read from external source then the software goes on its execution by returning to main loop in 9.
Appendix
address --0 --1 --2 --3 --4 --5 --6 -7 --8 -9 --A --B --C --D --E --F 00- to Other data -- -- -- -- - - -- -- -- -- -2829- 37 CF 20 EF 81 6F OB CE 02 36 27 EF DO 26 A6 05 2A- 1E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2B- 00 00 00 00 device sub addr c. sum c. sum -- -- -- -- -- -- -- -addr A 6h 20h lower upper EBh 06h 2C- to Other data -- -- -- -- -- -- -- -- -- -- -3132- 36 26 AE C6 CE 02 36 27 EF 00 00 00 00 00 00 00 33- 1E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 34- 00 00 00 00 device sub addr check sum check sum -- -- -- -- -- -- -- -addr 00H lower upper 00

Claims (1)

  1. CLAIMS 1 Electronic appliance incorporating a microprocessor for controlling the working of the appliance, the microprocessor having an internal software stored on an internal read only memory (ROM), input and output terminals, the improvement comprising an external source of data coupled to one input terminal of the microprocessor, at least one set of instructions to read under condition external data from said external source of data, and means to provide for an execution of said condition.
    2) Electronic appliance according to claim 1 wherein the condition is whether or not at least one of the terminals is settled to a predetermined values.
    3) Electronic appliance according to claim 1 wherein said condition is whether or not a combination of values is or not present on predetermined terminals of the microprocessor
    4) Electronic appliance according to claim 3 wherein the combination of values is the value applied to one terminal only.
    5) Electronic appliance according to any one of claim 1 to 4, wherein the external source of data is an electrically erasable programmable POM (EEPROM) 61 Electronic appliance according to claim í wherein the dava coming rom the external source are stored n a random access memory (RAM) of the microprocessor, wherein the external source store a quantity of data too important to be stored in said RAM and wherein the software of the microprocessor provides for a sequential reading of said external source
    7) An electronic appliance substantially as herein described with reference to the accompanying drawings.
GB9626573A 1996-12-20 1996-12-20 Updating software in a microprocessor controlled appliance Expired - Fee Related GB2320592B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB9626573A GB2320592B (en) 1996-12-20 1996-12-20 Updating software in a microprocessor controlled appliance

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9626573A GB2320592B (en) 1996-12-20 1996-12-20 Updating software in a microprocessor controlled appliance

Publications (3)

Publication Number Publication Date
GB9626573D0 GB9626573D0 (en) 1997-02-05
GB2320592A true GB2320592A (en) 1998-06-24
GB2320592B GB2320592B (en) 2002-02-13

Family

ID=10804809

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9626573A Expired - Fee Related GB2320592B (en) 1996-12-20 1996-12-20 Updating software in a microprocessor controlled appliance

Country Status (1)

Country Link
GB (1) GB2320592B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2400194A (en) * 2003-03-31 2004-10-06 Matsushita Electric Ind Co Ltd Upgrading software in a consumer product
EP1962183B1 (en) * 2007-02-22 2011-07-13 Broadcom Corporation Method and apparatus for fast ethernet controller operation using a virtual CPU

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
WO2004021626A2 (en) 2002-08-30 2004-03-11 Broadcom Corporation System and method for handling out-of-order frames

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4488257A (en) * 1981-01-12 1984-12-11 Nissan Motor Company, Limited Method for confirming incorporation of a memory into microcomputer system
US4542453A (en) * 1982-02-19 1985-09-17 Texas Instruments Incorporated Program patching in microcomputer
EP0347484A1 (en) * 1988-06-24 1989-12-27 Robert Bosch Gmbh Microcomputer having selectable datestorage
US4905200A (en) * 1988-08-29 1990-02-27 Ford Motor Company Apparatus and method for correcting microcomputer software errors
EP0464433A2 (en) * 1990-06-29 1992-01-08 National Semiconductor Corporation Microcontroller device having remotely programmable EPROM & method of programming
WO1993010492A1 (en) * 1991-11-12 1993-05-27 Microchip Technology Inc. Self-programming microcontroller with stored instruction to command program from external memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4488257A (en) * 1981-01-12 1984-12-11 Nissan Motor Company, Limited Method for confirming incorporation of a memory into microcomputer system
US4542453A (en) * 1982-02-19 1985-09-17 Texas Instruments Incorporated Program patching in microcomputer
EP0347484A1 (en) * 1988-06-24 1989-12-27 Robert Bosch Gmbh Microcomputer having selectable datestorage
US4905200A (en) * 1988-08-29 1990-02-27 Ford Motor Company Apparatus and method for correcting microcomputer software errors
EP0464433A2 (en) * 1990-06-29 1992-01-08 National Semiconductor Corporation Microcontroller device having remotely programmable EPROM & method of programming
WO1993010492A1 (en) * 1991-11-12 1993-05-27 Microchip Technology Inc. Self-programming microcontroller with stored instruction to command program from external memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2400194A (en) * 2003-03-31 2004-10-06 Matsushita Electric Ind Co Ltd Upgrading software in a consumer product
EP1962183B1 (en) * 2007-02-22 2011-07-13 Broadcom Corporation Method and apparatus for fast ethernet controller operation using a virtual CPU

Also Published As

Publication number Publication date
GB9626573D0 (en) 1997-02-05
GB2320592B (en) 2002-02-13

Similar Documents

Publication Publication Date Title
US4680731A (en) Reprogrammable cartridge memory with built-in identification circuitry and programming method
US5542082A (en) Data storage system connected to a host computer system and having removable data storage media and equipped to read a control program from the removable media into storage employing ID comparison scheme
US6295053B1 (en) System for reprogramming monitor function
US20040049617A1 (en) Method of firmware update by USB interface
GB2320592A (en) Upgrading firmware in a microprocessor controlled appliance
JPH05217361A (en) Memory card
US6990575B2 (en) Apparatus and process for a starting a data processing installation
US5590303A (en) Memory designation control device
USRE47206E1 (en) Display controller device and method for reprogramming the function of a display system
US6697058B2 (en) Device and method for repeatedly updating the function of a LCD monitor
KR19980054349A (en) Optional automatic setting circuit
CA1212767A (en) Reprogrammable cartridge memory and method
JP3500100B2 (en) Display device program rewriting method
JP2002312186A (en) Information processing apparatus, firmware therefor, and method for rewriting the same firmware
US6625666B1 (en) Operation-recording type system for a DDC monitor and related method
KR100316584B1 (en) Flash Memory To Share With Booting And Main Operation Program In System And Upgrade Method In That Memory
JP3024597B2 (en) CPU device and method of using the same
JPH04321193A (en) Portable electronic equipment
US6889299B1 (en) Semiconductor integrated circuit
JPH1131068A (en) Reset vector switching method and information processor using the switching method
EP0551870A2 (en) Electronic apparatus
KR910006467B1 (en) Trunk station adress giving apparatus and method of two-way catv
JPH11224197A (en) Download system for program in digital signal receiver
JPH10177517A (en) Electronic equipment
JP2767794B2 (en) Microcomputer

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20131220