JP4879124B2 - Fault tolerance architecture for in-circuit programming - Google Patents

Fault tolerance architecture for in-circuit programming Download PDF

Info

Publication number
JP4879124B2
JP4879124B2 JP2007233332A JP2007233332A JP4879124B2 JP 4879124 B2 JP4879124 B2 JP 4879124B2 JP 2007233332 A JP2007233332 A JP 2007233332A JP 2007233332 A JP2007233332 A JP 2007233332A JP 4879124 B2 JP4879124 B2 JP 4879124B2
Authority
JP
Japan
Prior art keywords
circuit programming
code
processor
programming process
circuit
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.)
Expired - Lifetime
Application number
JP2007233332A
Other languages
Japanese (ja)
Other versions
JP2008033951A (en
Inventor
アルバート シー サン
チー エイチ リー
チャン エル チェン
Original Assignee
マクロニクス インターナショナル カンパニー リミテッド
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 マクロニクス インターナショナル カンパニー リミテッド filed Critical マクロニクス インターナショナル カンパニー リミテッド
Priority to JP2007233332A priority Critical patent/JP4879124B2/en
Publication of JP2008033951A publication Critical patent/JP2008033951A/en
Application granted granted Critical
Publication of JP4879124B2 publication Critical patent/JP4879124B2/en
Expired - Lifetime legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、コンピュータシステムにおけるプロセッサによって実行する一連の命令をストアするための不揮発性メモリを有するコンピュータシステムに関し、特に、不揮発性メモリにストアされた一連の命令を更新し、変更するためのインサーキット・プログラミングのための障害の許容技術に関する。   The present invention relates to a computer system having a non-volatile memory for storing a series of instructions to be executed by a processor in the computer system, and more particularly to an in-circuit for updating and changing a series of instructions stored in the non-volatile memory. -It relates to fault tolerance technology for programming.

マイクロ制御装置によって実行されるべき一連の命令をストアするための集積回路に不揮発性メモリのアレイを含む集積回路のマイクロ制御装置が開発されている。一連の命令は、デバイスの製造過程でプログラムされなければならず、更新することができないリードオンリーメモリ(ROM)にストアされる。また、一連の命令は、EPROMアレイにもストアされる。しかし、このアプローチは、デバイスが回路に配置される前にEPROMアレイをプログラムするために、特別のハードウェアを必要とする。他のシステムにおいては、EEPROMメモリが命令をストアするために用いられる。EEPROMは、EPROMより非常に早くプログラムすることができ、素早く変更することができるるという利点を有する。他のアプローチにおいて、フラッシュメモリが命令をストアするために用いられる。これは、不揮発性メモリの高密度化及び高スピードの再プログラミングを可能にする。デバイスが再プログラム可能な不揮発性メモリ、例えばEEPROMまたはフラッシュメモリとマイクロ制御装置を結合すると、そのデバイスは、それが回路中にある限り、再プログラムされ、相互作用アルゴリズムに基づいてインサーキット・プログラミングを可能にする。   Integrated circuit microcontrollers have been developed that include an array of non-volatile memory in an integrated circuit for storing a sequence of instructions to be executed by the microcontroller. The sequence of instructions must be programmed during the device manufacturing process and is stored in a read only memory (ROM) that cannot be updated. A series of instructions is also stored in the EPROM array. However, this approach requires special hardware to program the EPROM array before the device is placed in the circuit. In other systems, EEPROM memory is used to store instructions. EEPROM has the advantage that it can be programmed much faster than EPROM and can be changed quickly. In another approach, flash memory is used to store instructions. This allows for higher density and faster reprogramming of non-volatile memory. When a device combines a reprogrammable non-volatile memory, such as EEPROM or flash memory, with a microcontroller, the device is reprogrammed for as long as it is in the circuit and performs in-circuit programming based on an interaction algorithm. enable.

命令及びデータを離れたデバイスに相互にダウンロードする能力は、ネットワーク環境において非常に有用である。例えば、会社は、顧客に装置をサービスセンターに運ぶように要求することなく、顧客の装置をサービスすることができる。むしろ、会社は、インターネットや電話線のような通信チャネルを通して顧客の装置のインサーキット・プログラミング能力を用いて、診断機能を実行することができる。このように、ソフトウェアの修正が顧客の装置へダウンロードされ、そしてその装置は修正され、更新されたコードで再イネーブルされる。   The ability to mutually download instructions and data to distant devices is very useful in a network environment. For example, a company can service a customer's device without requiring the customer to transport the device to a service center. Rather, the company can perform diagnostic functions using the in-circuit programming capabilities of the customer's equipment over communication channels such as the Internet and telephone lines. In this way, software modifications are downloaded to the customer's device, and the device is modified and re-enabled with the updated code.

インサーキット・プログラミング中に、信頼性が問題となる。インサーキット・プログラミング・プロセスが10分間かかり、その時間中にデータ伝送エラーや記録エラーがあるかもしれない。これらのエラーは、外部世界(ハンドシェーキングコード)との通信を行なうコードがそれ自体インサーキット・プログラミング中に変化するならば、特に問題である。このコードが破損されるなら、インサーキット・プログラミングモジュールがそれ自体をリセットしたり、外部世界と通信したりすることなく残されることができる。
必要とされることは、外部世界と通信するために、たとえインサーキット・プログラミング・プロセスによって用いられるコードが正しくプログラムされなくても、インサーキット・プログラミング中に障害の許容度を与える方法である。
Reliability is an issue during in-circuit programming. The in-circuit programming process takes 10 minutes, during which time there may be data transmission errors or recording errors. These errors are particularly problematic if the code that communicates with the outside world (handshaking code) itself changes during in-circuit programming. If this code is broken, the in-circuit programming module can be left without resetting itself or communicating with the outside world.
What is needed is a way to provide fault tolerance during in-circuit programming, even if the code used by the in-circuit programming process is not correctly programmed to communicate with the outside world.

本発明は、インサーキット・プログラミング中に、障害の許容度を与えるための方法及び装置を提供する。本発明は、コンピュータシステムのブートコードの一部がインサーキット・プログラミングから保護されることを確実にすることによって動作する。その結果、コンピュータシステムのブートコードはインサーキット・プログラミング中に破損されることがない。本発明は、インサーキット・プログラミング・プロセスが進行しているとき不完全な値にセットされ、インサーキット・プログラミング・プロセスが終了した後完全な値にセットされる、インサーキット・プログラミング状態を維持する。もし、システムがインサーキット・プログラミング中にリセットされると、システムはブートコードの保護された部分からブートするであろう。さもなければ、システムは、インサーキット・プログラミング・プロセスによってプログラム可能である正規のブートコードをブートするであろう。本発明は、もし、インサーキット・プログラミング・プロセスがうまく終了するのに失敗したら、システムがそれ自体をリセットするウオッチドッグタイマーと共に動作する。   The present invention provides a method and apparatus for providing fault tolerance during in-circuit programming. The present invention operates by ensuring that a portion of the computer system boot code is protected from in-circuit programming. As a result, the boot code of the computer system is not corrupted during in-circuit programming. The present invention maintains an in-circuit programming state that is set to an incomplete value when the in-circuit programming process is in progress and is set to a complete value after the in-circuit programming process is completed. . If the system is reset during in-circuit programming, the system will boot from the protected part of the boot code. Otherwise, the system will boot regular boot code that is programmable by the in-circuit programming process. The present invention operates with a watchdog timer that resets itself if the in-circuit programming process fails to complete successfully.

したがって、本発明は、インシステム・プログラミング・プロセスが進行中であることを示して、インサーキット・プログラミング状態を不完全な値にセットするステップ;インサーキット・プログラミング・プロセスを開始するステップ;インサーキット・プログラミング・プロセスが終了したとき、インサーキット・プログラミング・プロセスが完全であることを示して、インサーキット・プログラミング状態を完全な値にセットするステップ;及びシステムの初期化中に、もし、インサーキット・プログラミング状態が完全な値を有するならば、第1のブートコードシーケンスがインサーキット・プログラミング・プロセスによってプログラム可能である第1のブートコードシーケンスを実行し、且つ、もし、インサーキット・プログラミング状態が不完全な値を有するならば、第2のブートコードシーケンスがインサーキット・プログラミング・プロセスから保護される第2のブートコードシーケンスを実行するステプを有する、コンピュータシステムのインサーキット・プログラミング中にエラー回復を与える方法として特徴付けられることができる。   Accordingly, the present invention indicates that an in-system programming process is in progress and sets the in-circuit programming state to an incomplete value; initiating the in-circuit programming process; When the programming process is finished, indicating that the in-circuit programming process is complete and setting the in-circuit programming state to a full value; and during system initialization, if If the programming state has a complete value, execute the first boot code sequence that is programmable by the in-circuit programming process and if the in-circuit program During in-circuit programming of a computer system having a step that executes a second boot code sequence where the second boot code sequence is protected from the in-circuit programming process if the timing state has an incomplete value Can be characterized as a way to give error recovery.

本発明の1つの特徴によれば、インサーキット・プログラミング・プロセスは、インサーキット・プログラミング・プロセスによってプログラムされるコードの一部をテストするステップを含む。   According to one aspect of the invention, the in-circuit programming process includes testing a portion of code programmed by the in-circuit programming process.

本発明の他の特徴によれば、インサーキット・プログラミング命令の伝送における遅延を検出するために、インサーキット・プログラミング・プロセスがモニターされる。もし、その遅延が特定のタイムアウト値を超えるならば、インサーキット・プログラミング・プロセスは再スタートされる。一つの実施形態においては、モニターは、遠隔ホストによって行なわれ、この遠隔ホストからインサーキット・プログラミング・コードがダウンロードされる。他の実施形態においては、モニターは、インサーキット・プログラミング・システムに結合されたウオッチドッグタイマーを用いて行なわれる。   According to another aspect of the invention, the in-circuit programming process is monitored to detect delays in the transmission of in-circuit programming instructions. If the delay exceeds a specific timeout value, the in-circuit programming process is restarted. In one embodiment, the monitoring is performed by a remote host from which in-circuit programming code is downloaded. In other embodiments, the monitoring is performed using a watchdog timer coupled to an in-circuit programming system.

本発明の他の特徴によれば、上述の方法は、遠隔ホストのアドレスをストアするステップを有し、この遠隔ホストからインサーキット・プログラミング・コードがダウンロードされる。   According to another aspect of the invention, the method described above includes storing a remote host address from which in-circuit programming code is downloaded.

本発明は、プロセッサ;前記プロセッサに結合された第1のブートコードシーケンス;前記プロセッサに結合された第2のブートコードシーケンス;前記プロセッサに結合されたインサーキット・プログラミングの状態インジケータ、前記状態インジケータは、インサーキット・プログラミング中に不完全な値にセットされ、インサーキット・プログラミングが完全になった後、完全な値にセットされる;且つ前記第1及び第2のブートコードシーケンスに結合され、コンピュータシステムの初期化のためのブートコードシーケンスを選択するためのセレクター機構を有し、前記セレクター機構は、もし、インサーキット・プログラミングの状態インジケータが完全な値にセットされるならば、第1のブートコードシーケンスを選択し、もし、インサーキット・プログラミングの状態インジケータが不完全な値にセットされるならば、第2のブートコードシーケンスを選択する、コンピュータシステムのインサーキット・プログラミング中にエラー回復を与えるための装置として特徴付けられることができる。   The present invention includes: a processor; a first boot code sequence coupled to the processor; a second boot code sequence coupled to the processor; an in-circuit programming status indicator coupled to the processor; Set to an incomplete value during in-circuit programming; set to a complete value after in-circuit programming is complete; and coupled to the first and second boot code sequences; A selector mechanism for selecting a boot code sequence for system initialization, wherein the selector mechanism includes a first boot if an in-circuit programming status indicator is set to a full value; Select a chord sequence and if Characterized as a device for providing error recovery during in-circuit programming of a computer system that selects a second boot code sequence if the in-circuit programming status indicator is set to an incomplete value Can do.

本発明は、遠隔ホストからインサーキット・プログラミング命令の伝送における遅延を検出するために、進行中のインサーキットプログラムをモニターするステップ、及び前記遅延がタイムアウト値を越えたならば、インサーキット・プログラミング・プロセスを再スタートするステップを有する、コンピュータシステムのインサーキット・プログラミング中にエラー回復を与えるための方法として特徴付けられることができる。 The present invention includes a step of monitoring an in-circuit program in progress to detect a delay in the transmission of an in-circuit programming command from a remote host, and an in-circuit programming program if the delay exceeds a timeout value. It can be characterized as a method for providing error recovery during in-circuit programming of a computer system having the step of restarting the process.

以下の説明は、この分野の通常の知識を有するものが本発明を作り、使用することができるように示され、特別な応用及びその要件のコンテクストに与えられる。好適な実施形態への種々の変更は、当業者に明らかであろう。また、ここに定義された一般原理は、本発明の精神及び請求の範囲から逸脱することなく他の実施形態及び応用に適用されよう。したがって、本発明は、ここに示された実施形態に限定されることを意図しないが、ここに開示された原理及び特徴と一致する最も広い範囲に及ぶべきである。   The following description is presented to enable a person with ordinary knowledge in the field to make and use the present invention and is given in the context of a particular application and its requirements. Various modifications to the preferred embodiment will be apparent to those skilled in the art. Also, the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Accordingly, the present invention is not intended to be limited to the embodiments shown herein, but is to be accorded the widest scope consistent with the principles and features disclosed herein.

図1は、本発明の特徴によるインサーキット・プログラミング用の障害の許容システムの主な機能の幾つかの要素を示す。インサーキット・プログラミング・システムは、不揮発性メモリ100、RAM108、CPU112、及び周辺機器114を含む。インサーキット・プログラミング・システムは、またジャンプブートベクトル116、マルチプレックサ(MUX)110、ICP状態レジスタ118、遠隔ホストアドレスレジスタ120及びICPウオッチドッグ122を含む障害の許容を具現化する要素も含む。   FIG. 1 illustrates some elements of the main functions of a fault tolerance system for in-circuit programming according to features of the present invention. The in-circuit programming system includes non-volatile memory 100, RAM 108, CPU 112, and peripheral device 114. The in-circuit programming system also includes elements that implement fault tolerance, including jump boot vector 116, multiplexer (MUX) 110, ICP status register 118, remote host address register 120, and ICP watchdog 122.

特に、CPU112は、マイクロ制御装置、マイクロプロセッサ、またはメインフレーム計算システムを含む全ての形式の処理システムである。CPU112は、CPU112によって実行されるコード及びデータを含むランダムアクセスメモリであるRAM108に接続される。更に、CPU112は、MUX110を介して不揮発性メモリ100に接続される。   In particular, the CPU 112 is any type of processing system including a microcontroller, microprocessor, or mainframe computing system. The CPU 112 is connected to a RAM 108 that is a random access memory including codes and data executed by the CPU 112. Further, the CPU 112 is connected to the nonvolatile memory 100 via the MUX 110.

不揮発性メモリ100は、電源がシステムから除かれたとき、持続する全ての形式のメモリで、フラッシュメモリ、EPROM、EEPROM、及びROMメモリを含む。不揮発性メモリ100は、ブートプログラム102、ユーティリティプログラム104、ICPハンドラー106、及びミニブートコード107を含む。ブートプログラム102は、システムのハードウェアやソフトウェア資源を初期化するために、システムの初期化中に実行されるプログラムの集合を含む。ブートプログラム102が、インサーキット・プログラミング・プロセス中に変更されることができるプログラム可能なメモリにストアされる。   Non-volatile memory 100 is any type of memory that persists when power is removed from the system, including flash memory, EPROM, EEPROM, and ROM memory. The nonvolatile memory 100 includes a boot program 102, a utility program 104, an ICP handler 106, and a mini boot code 107. The boot program 102 includes a set of programs that are executed during system initialization to initialize system hardware and software resources. The boot program 102 is stored in a programmable memory that can be modified during the in-circuit programming process.

また、不揮発性メモリ100は、システムの動作中にCPU112によって実行されるプログラムを含むユーティリティプログラム104を含む。また、ユーティリティプログラム104は、インサーキット・プログラミング・プロセスによってプログラムされることができるメモリ内に含まれる。また、不揮発性メモリ100は、システムのインサーキット・プログラミング機能を果たし、インサーキット・プログラミング・プロセスによってプログラムされることができるメモリ内に含まれるICPハンドラー106を含む。   The nonvolatile memory 100 also includes a utility program 104 that includes a program executed by the CPU 112 during system operation. Utility program 104 is also included in a memory that can be programmed by an in-circuit programming process. The non-volatile memory 100 also includes an ICP handler 106 included in the memory that performs the in-circuit programming function of the system and can be programmed by the in-circuit programming process.

更に、不揮発性メモリ100は、正規のブートプログラムの同じインサーキット・プログラミング・プロセス中に変更されることができない保護されたメモリ内に含まれるミニブートコード107を有する。ミニブートコード107は、ブートプログラム102の同じ機能の多くを行なうシステムの初期化命令の代わりのセットである。しかし、ブートプログラム102が、潜在的に破損され、使用することができないようにするインサーキット・プログラミング・プロセス中にエラーがあるとき、ミニブートコード107のみが働く。したがって、ミニブートコード107は、正規のブートプログラムの同じインサーキット・プログラミング・プロセス中に変更されることができないメモリにストアされなければならない。本発明の一つの実施形態では、ミニブートコード107は、マスクROMメモリにストアされ、一方、ブートプログラム102、ユーティリティプログラム104及びICPハンドラー106は、プログラム可能なフラッシュメモリにストアされる。   In addition, the non-volatile memory 100 has miniboot code 107 contained within protected memory that cannot be changed during the same in-circuit programming process of a regular boot program. The miniboot code 107 is an alternative set of system initialization instructions that perform many of the same functions of the boot program 102. However, only the miniboot code 107 works when there is an error during the in-circuit programming process that makes the boot program 102 potentially corrupted and unusable. Thus, the miniboot code 107 must be stored in memory that cannot be changed during the same in-circuit programming process of a regular boot program. In one embodiment of the invention, the miniboot code 107 is stored in a mask ROM memory, while the boot program 102, utility program 104, and ICP handler 106 are stored in a programmable flash memory.

CPU112は、更にインサーキット・プログラミング・プロセス中に障害の許容を容易にするハードウェア要素に接続される。CPU112は、ICP状態レジスタ118からの制御入力ばかりでなく、不揮発性メモリ100及びジャンプブートベクトル116を入力として取りこむMUX110に接続されている。MUX110は、ICP状態レジスタ118の状態に依存して、ジャンプブートベクター116と不揮発性メモリ100間でCPU112を選択的にスイッチする。もし、ICP状態レジスタ118がダーティであるなら、これは、前のインサーキット・プログラミング動作が完了しなかったことを示しており、CPU112は、システムの初期化中にミニブートコード107に指示するジャンプ命令を入力としてブートベクトル116へ取り込む。   The CPU 112 is further connected to hardware elements that facilitate fault tolerance during the in-circuit programming process. The CPU 112 is connected not only to the control input from the ICP status register 118 but also to the MUX 110 that takes the nonvolatile memory 100 and the jump boot vector 116 as inputs. The MUX 110 selectively switches the CPU 112 between the jump boot vector 116 and the non-volatile memory 100 depending on the state of the ICP state register 118. If the ICP status register 118 is dirty, this indicates that the previous in-circuit programming operation has not completed, and the CPU 112 will jump to the miniboot code 107 during system initialization. An instruction is input to the boot vector 116 as an input.

一方、ICP状態レジスタ118がクリーンであるなら、これはインサーキット・プログラミング動作が進行中でないことを示し、CPU112は、システムの初期化中に不揮発性メモリ100の最初の位置を入力として取りこむ。更に、CPU112は、システムがインサーキット・プログラミング中にリセットされる場合、遠隔ホストアドレスのバックアップコピーを含む遠隔ホストアドレスレジスタ120に接続される。また、CPU112は、読取り/書込みパス130及びリセットライン132を介してICPウオッチドッグ122に接続される。   On the other hand, if the ICP status register 118 is clean, this indicates that an in-circuit programming operation is not in progress, and the CPU 112 takes the first location of the non-volatile memory 100 as input during system initialization. In addition, the CPU 112 is connected to a remote host address register 120 that contains a backup copy of the remote host address when the system is reset during in-circuit programming. The CPU 112 is also connected to the ICP watchdog 122 via a read / write path 130 and a reset line 132.

ICPウオッチドッグ122は、整合ロジック128ばかりでなくタイムアウト期間レジスタ126とタイマー124を含む。タイムアウト期間レジスタ126とタイマー124は、読取り/書込みパス130を介してCPU112によって初期化されることができる。タイマー124の値がタイムアウト期間126と一致すると、整合ロジック128は、リセット信号がCPU112へ供給するリセットライン123を通って送られるようにする。一つの実施形態では、障害の許容を与える上述のハードウェア要素は、インサーキット・プログラミング・プロセスから保護されるプログラム可能なメモリ素子を含む。   ICP watchdog 122 includes a timeout period register 126 and a timer 124 as well as matching logic 128. The timeout period register 126 and the timer 124 can be initialized by the CPU 112 via the read / write path 130. When the value of timer 124 matches the timeout period 126, the matching logic 128 causes a reset signal to be sent through the reset line 123 that supplies the CPU 112. In one embodiment, the hardware elements described above that provide fault tolerance include programmable memory elements that are protected from the in-circuit programming process.

更に、CPU112は、周辺機器114の左側の二重矢印によって示されているシステムユーザと通信をするために用いられる入出力装置を含む周辺機器114に接続されている。周辺機器114は、周辺機器がインターネット134に結合されるインターフェースも有する。インターネット134は、それ自身遠隔ホスト136、138及び140に接続される。遠隔ホスト138は、インターネットを介してインサーキット・プログラミング・システムへダウンロードされるべき、新しいバージョンのブート及びユーティリティプログラムを含むディスクに接続される。   Further, the CPU 112 is connected to a peripheral device 114 that includes an input / output device used to communicate with the system user indicated by the double arrow on the left side of the peripheral device 114. Peripheral device 114 also has an interface through which the peripheral device is coupled to the Internet 134. Internet 134 is itself connected to remote hosts 136, 138 and 140. The remote host 138 is connected to a disk containing new versions of boot and utility programs to be downloaded to the in-circuit programming system via the Internet.

一般に、インサーキット・プログラミング・プロセスは、以下ように動作する。CPU112は、周辺機器114を介してユーザ144と通信する。ユーザ144は、CPU112がインサーキット・プログラミング・プロセスを始めるICPハンドラー106を実行し始めるようにする。ICPハンドラー106は、周辺機器114を介してインターネット134へ、及びインターネット134を介して遠隔ホスト138へ接続がなされるようにする。その後、遠隔ホスト138は、ディスク142からインターネット134を介して不揮発性メモリ100へデータをダウンローディングし始める。同時に、データ転送が開始され、ICPウオッチドッグ122内でタイムアウト期間が評価された値にセットされ、タイマー124が開始される。   In general, the in-circuit programming process operates as follows. The CPU 112 communicates with the user 144 via the peripheral device 114. User 144 causes CPU 112 to begin executing ICP handler 106 which begins the in-circuit programming process. The ICP handler 106 is connected to the Internet 134 via the peripheral device 114 and to the remote host 138 via the Internet 134. Thereafter, the remote host 138 starts downloading data from the disk 142 to the nonvolatile memory 100 via the Internet 134. At the same time, data transfer is started, the timeout period is set to the value evaluated in the ICP watchdog 122, and the timer 124 is started.

もし、インサーキット・プログラミング・プロセスがスムーズに進行するなら、本発明の障害の許容特徴は作動されない。一方、インサーキット・プログラミング・プロセスに過剰の遅延があると、タイマー124がタイムアウト期間126に最終的に一致し、リセット信号がリセットライン132を介してCPU112へ流れるようにする。これによって、CPU112がブートシーケンスを開始する。もし、システムがインサーキット・プログラミング・プロセス中に再ブートされるなら、ICP状態レジスタ118はダーティ値にセットされる。これによって、MUX110は、CPU112がブートプログラム102の代わりにミニブートコード107からブートするようにするCPU112へジャンプブートベクトル116を向けるようにする。もし、ICP状態118がクリーン値にセットされるなら、これは、インサーキット・プログラミング・プロセスが完全であったことを意味し、MUX110は、CPU112がブートプログラム102からブートするようにする。   If the in-circuit programming process proceeds smoothly, the fault tolerance feature of the present invention is not activated. On the other hand, if there is an excessive delay in the in-circuit programming process, the timer 124 eventually matches the timeout period 126 and causes the reset signal to flow to the CPU 112 via the reset line 132. Thereby, the CPU 112 starts a boot sequence. If the system is rebooted during the in-circuit programming process, ICP status register 118 is set to a dirty value. This causes the MUX 110 to direct the jump boot vector 116 to the CPU 112 that causes the CPU 112 to boot from the miniboot code 107 instead of the boot program 102. If ICP state 118 is set to a clean value, this means that the in-circuit programming process was complete and MUX 110 causes CPU 112 to boot from boot program 102.

ミニブートコード107は、CPUが遠隔ホストアドレスレジスタ120から値を先ず読取ることによってインサーキット・プログラミング・プロセスを再び開始するようにし、そのために、どの遠隔ホストを接続するかを決定する。その後、インサーキット・プログラミング・プロセスが再び開始する。   The miniboot code 107 causes the CPU to start the in-circuit programming process again by first reading the value from the remote host address register 120, and therefore determines which remote host to connect to. Thereafter, the in-circuit programming process begins again.

図2A、図2B、及び図2Cは、本発明の特徴による、インサーキット・プログラミング・システムのために障害の許容を与えるステップに含まれる動作のシーケンスを詳細に示すフローチャートである。このフローチャートは5つの欄(カラム)、即ち、ユーザ144、ブートプログラム102、ユーティリティプログラム104、ICPハンドラー106、及び遠隔ホスト138を有する。これらの欄のヘディングの下のボックスは、ユーザ144、ブートプログラム102、ユーティリティプログラム104、ICPハンドラー106、及び遠隔ホスト138の動作をそれぞれ示す。   2A, 2B, and 2C are flowcharts detailing the sequence of operations involved in providing fault tolerance for an in-circuit programming system in accordance with features of the present invention. This flowchart has five columns: user 144, boot program 102, utility program 104, ICP handler 106, and remote host 138. The boxes under the headings in these columns indicate the operation of the user 144, boot program 102, utility program 104, ICP handler 106, and remote host 138, respectively.

このシステムは、システムがユーザによって電源が入れられ、又はリセットされるステップ210において開始するか、或いはシステムは、システムがウオッチドッグタイマーによってセルフリセットされるステップ212において開始する。次に、システムは、ステップ214へ進み、そのステップにおいて、システムはICP状態レジスタがダーティ値にセットされているか否かを判断する。もし、ダーティ値にセットされているなら、システムはステップ218へ進む。もし、そうでないなら、システムはステップ216へ続く。   The system begins at step 210 where the system is powered on or reset by the user, or the system begins at step 212 where the system is self-reset by a watchdog timer. The system then proceeds to step 214 where the system determines whether the ICP status register is set to a dirty value. If it is set to a dirty value, the system proceeds to step 218. If not, the system continues to step 216.

ステップ216では、ICP状態レジスタはクリーンである。したがって、システムは、プログラムメモリのデフォルト位置から第1の命令をフェッチする。その後、システムはステップ220へ進む。ステップ220では、システムは、ブートプログラム102を実行することによって、システムのハードウェア及びソフトウェア資源を初期化する。次に、システムはステップ228へ進む。ステップ228では、システムは、要求されたユーティリティプログラムに対して必要なハードウェアとソフトウェアを割り付ける。   In step 216, the ICP status register is clean. Thus, the system fetches the first instruction from the default location in program memory. The system then proceeds to step 220. In step 220, the system initializes the hardware and software resources of the system by executing the boot program 102. The system then proceeds to step 228. In step 228, the system allocates the necessary hardware and software for the requested utility program.

次に、システムは、ステップ230へ進む。ステップ230では、システムは、インサーキット・プログラミングが発生すべきであるか否かを判断する。もし、発生すべきでないならば、システムは、ステップ232へ進む。もし、発生すべきならば、システムは、ステップ240へ進む。ステップ232では、インサーキット・プログラミングは、目下のところ必要とされず、システムは、停止するか否かを判断する。もし、そうなら、システムは、終了状態であるステップ234へ進む。もし、そうでないなら、システムは、ステップ222へ進む。ステップ222では、システムは、要求されたユーティリティプログラムを走らせる。   The system then proceeds to step 230. In step 230, the system determines whether in-circuit programming should occur. If not, the system proceeds to step 232. If so, the system proceeds to step 240. In step 232, in-circuit programming is not currently required and the system determines whether to stop. If so, the system proceeds to step 234, which is an end state. If not, the system proceeds to step 222. In step 222, the system runs the requested utility program.

その後、システムは、ステップ228へ戻って、要求されたユーティリティプログラムのためのハードウェアとソフトウェアを割り付ける。ステップ228において、システムは、割り付けるべき正しいハードウェアとソフトウェアを決めるために、ユーザ144と相互作用することができることに留意すべきである。   The system then returns to step 228 to allocate hardware and software for the requested utility program. It should be noted that in step 228, the system can interact with user 144 to determine the correct hardware and software to allocate.

ステップ218では、ICP状態レジスタがシステムブートアップに関してダーティであると判断された。レギュラーシステムのブートアップコードが破損される可能性があるので、システムは、インサーキット・プログラミング・プロセスによって変更されることができる保護されたメモリのデフォルト割付から第1の命令をフェッチする。次に、システムは、ステップ224へ進む。ステップ224では、システムは、保護されたメモリ内の特定のエントリーを指定するブートベクトルへのジャンプ命令を実行する。次に、システムはステップ226へ進む。ステップ226で、システムは、インサーキット・プログラミングのため最小限のシステム資源を初期化するミニブートコード107を実行する。次に、システムはステップ236へ進む。ステップ236では、システムは、遠隔ホストアドレスレジスタ120から遠隔ホストアドレスを再ストアする。次に、システムは、ステップ240へ進む。   In step 218, the ICP status register was determined to be dirty with respect to system bootup. Because the boot up code of the regular system can be corrupted, the system fetches the first instruction from the default allocation of protected memory that can be changed by the in-circuit programming process. The system then proceeds to step 224. In step 224, the system executes a jump instruction to the boot vector that specifies a particular entry in the protected memory. The system then proceeds to step 226. In step 226, the system executes the miniboot code 107 that initializes the minimum system resources for in-circuit programming. The system then proceeds to step 236. In step 236, the system restores the remote host address from the remote host address register 120. The system then proceeds to step 240.

ステップ240では、システムは、遠隔ホストとのリンクを開始し、遠隔ホストからインサーキット・プログラミング・コードがダウンロードされる。よって、ステップ242では、遠隔ホスト138はインサーキット・プログラミング・システムとリンクする。次に、システムはステップ244へ進む。ステップ244では、システムは遠隔ホストアドレスを遠隔ホストアドレスバッファ120へストアする。次に、システムは、ステップ246へ進む。ステップ246では、システムは評価されたタイムアウト値をタイムアウト期間レジスタ126へロードする。   In step 240, the system initiates a link with the remote host and in-circuit programming code is downloaded from the remote host. Thus, in step 242, remote host 138 links with the in-circuit programming system. The system then proceeds to step 244. In step 244, the system stores the remote host address in the remote host address buffer 120. The system then proceeds to step 246. In step 246, the system loads the estimated timeout value into the timeout period register 126.

次に、システムは、ステップ248へ進む。ステップ248で、システムは、ブートベクトルレジスタ116をセットして、ミニブートコード107の開始アドレスを指定する。次に、システムはステップ250へ進む。ステップ250では、システムは、ICP状態レジスタをインサーキット・プログラミングが現在アクティブであることを示す不完全状態へセットする。次に、システムは、ステップ252へ進む。ステップ252では、システムは転送されたバイトの数をゼロにセットする。次に、システムはステップ254へ進む。ステップ254では、システムは、新しいブート及び/又はユーティリティプログラムを不揮発性メモリ100へダウンロードするように続ける。   The system then proceeds to step 248. In step 248, the system sets the boot vector register 116 to specify the starting address of the miniboot code 107. The system then proceeds to step 250. In step 250, the system sets the ICP status register to an incomplete state indicating that in-circuit programming is currently active. The system then proceeds to step 252. In step 252, the system sets the number of bytes transferred to zero. The system then proceeds to step 254. In step 254, the system continues to download a new boot and / or utility program to the non-volatile memory 100.

よって、ステップ255で、遠隔ホスト138は、新しいバージョンのブート及び/又はユーティリティプログラムを供給する。次に、システムはステップ256へ進む。ステップ256では、システムは、ICPプロセスが終了したか否かを判断する。もし、終了していないなら、システムはステップ258へ進む。もし、終了しているなら、システムはステップ264へ進む。ステップ258では、ICPプロセスは停止しないで、システムは、転送されたバイトの数が転送ブロックサイズに等しいか否かを聞く。もし、等しくないなら、システムは、より多くのコードをダウンロードするためにステップ254へ戻る。もし、等しいなら、システムはステップ260へ進む。ステップ260では、システムは、進行しているブロックのインサーキット・プログラミング・コードの転送中に、性能に基づいてタイムアウト値を再計算する。その後、システムはタイマー124がリセットされるステップ262へ進む。次に、システムは転送されたバイトの数がゼロにリセットされるステップ252へ戻る。   Thus, at step 255, remote host 138 provides a new version of the boot and / or utility program. The system then proceeds to step 256. In step 256, the system determines whether the ICP process is complete. If not, the system proceeds to step 258. If so, the system proceeds to step 264. In step 258, the ICP process does not stop and the system asks whether the number of bytes transferred is equal to the transfer block size. If not, the system returns to step 254 to download more code. If equal, the system proceeds to step 260. In step 260, the system recalculates the timeout value based on performance during the transfer of in-circuit programming code for the ongoing block. Thereafter, the system proceeds to step 262 where the timer 124 is reset. The system then returns to step 252 where the number of bytes transferred is reset to zero.

ステップ264において、インサーキット・プログラミングのためのデータ転送が完全であり、タイマー124が停止される。次に、システムはステップ266へ進む。ステップ266では、システムはICP状態を完全な値にセットし、インサーキット・プログラミングが完全であることを示す。その後、システムはステップ270へ進む。ステップ270では、インサーキット・プログラミング・プロセスが完全であり、システムはリセットされる。   In step 264, the data transfer for in-circuit programming is complete and the timer 124 is stopped. The system then proceeds to step 266. In step 266, the system sets the ICP state to a complete value, indicating that in-circuit programming is complete. The system then proceeds to step 270. In step 270, the in-circuit programming process is complete and the system is reset.

本発明の1つの特徴によると、インサーキット・プログラミング・プロセスは、タイムアウト期間によって支配される。このタイムアウト期間の間、データの一定量が遠隔ホストからインサーキット・プログラミング・システムへ転送されなければならない。一つの実施形態において、このタイムアウト期間は、遠隔ホストからプロセッサへ2回ダウンロードされ、2つのダウンロード値が互いに比較され、その値がタイムアウト期間として使用される前に、その値が正しくクダウンロードされたことを保証する。他の実施形態において、タイムアウト期間はインサーキット・プログラミング・システムに永久にストアされ、ダウンロードされた値が永久にストアされた値と比較され、ダウンロード値が少なくとも永久にストアされた値と等しいことを保証する。もし、ダウンロード値が少なくとも永久にストアされた値と等しくないなら、永久にストアされた値が用いられる。 According to one feature of the invention, the in-circuit programming process is governed by a timeout period. During this timeout period, a certain amount of data must be transferred from the remote host to the in-circuit programming system. In one embodiment, this timeout period is downloaded twice from the remote host to the processor, the two downloaded values are compared to each other, and the value is correctly downloaded before it is used as the timeout period. Guarantee that. In other embodiments, the timeout period is stored permanently in the in-circuit programming system, the downloaded value is compared with the permanently stored value, and the downloaded value is at least equal to the permanently stored value. Guarantee. If the downloaded value is not at least equal to the permanently stored value, the permanently stored value is used.

本発明の好適な実施形態の上記の説明は、説明のみのためになされたものである。それらは、本発明を開示された正確な形状に限定されることを意図しない。
明らかに、多く変形や変更が所謂当業者には明らかであろう。本発明の範囲は、請求項によって定義され、それらの均等物に及ぶことを意図している。
The above description of preferred embodiments of the present invention has been made for the purpose of illustration only. They are not intended to limit the invention to the precise shape disclosed.
Obviously, many variations and modifications will become apparent to those skilled in the art. The scope of the present invention is defined by the claims, and is intended to cover their equivalents.

本発明の特徴によるインサーキット・プログラミング用の障害の許容システムの主な機能の幾つかの要素を示す。Figure 2 illustrates some elements of the main function of a fault tolerance system for in-circuit programming according to features of the present invention. 本発明の特徴による、インサーキット・プログラミング・システムのための障害の許容を与える動作のシーケンスを示すフローチャートである。6 is a flowchart illustrating a sequence of operations for providing fault tolerance for an in-circuit programming system in accordance with aspects of the present invention. 本発明の特徴による、インサーキット・プログラミング・システムのための障害の許容を与える動作のシーケンスを示すフローチャートである。6 is a flowchart illustrating a sequence of operations for providing fault tolerance for an in-circuit programming system in accordance with aspects of the present invention. 本発明の特徴による、インサーキット・プログラミング・システムのための障害の許容を与える動作のシーケンスを示すフローチャートである。6 is a flowchart illustrating a sequence of operations for providing fault tolerance for an in-circuit programming system in accordance with aspects of the present invention.

Claims (12)

再プログラム可能な不揮発性メモリと結合されたプロセッサを含むコンピュータシステムのインサーキット・プログラミング中にエラー回復を行なう方法であって、
ブートプログラムを、前記再プログラム可能な不揮発性メモリに与えるステップであって、前記再プログラム可能な不揮発性メモリは、インサーキット・プログラミング・プロセスによって、プログラム可能であり、且つ、前記ブートプログラムは、システムの初期化対象のハードウェア又はソフトウェアを初期化するための資源を有しているものであるステップと、
ミニブートコードを、前記インサーキット・プログラミング・プロセスから保護されるメモリに与えるステップであって、前記ミニブートコードは、前記ブートプログラムにおける前記システムの初期化対象のソフトウェアを初期化するための資源のサブセットとデータまたは命令をリモートソースから前記再プログラム可能な不揮発性メモリにロードするためのインサーキット・プログラミング・プロセスをサポートしている資源とを含んでいるものである、前記メモリに与えるステップと、
データまたは命令を、前記再プログラム可能な不揮発性メモリにロードするために、前記プロセッサによって、前記インサーキット・プログラミング・プロセスを実行するステップと、
前記インサーキット・プログラミング・プロセスを開始したときに、前記プロセッサによって、インサーキット・プログラミング状態レジスタに記憶され管理されるインサーキット・プログラミング状態を、前記インサーキット・プログラミング・プロセスが進行中であることを示す不完全な値にセットするステップと、
前記インサーキット・プログラミング・プロセスがデータまたは命令をロードするステップを完了したき、前記プロセッサによって、インサーキット・プログラミング状態を、前記インサーキット・プログラミング・プロセスが完了したことを示す完全な値にセットするステップと、
前記インサーキット・プログラミング・プロセスにおけるデータのブロックのダウンロードにおける遅延を検出するために、前記データまたは命令のソースの一方または前記プロセッサを用いて、前記インサーキット・プログラミング・プロセスの開始と同時にプロセッサに接続されたウォッチドッグタイマを起動し、前記インサーキット・プログラミング・プロセスのモニターを開始するステップと、
もし、前記遅延が前記ウォッチドッグタイマのタイムアウト値を越えたら、前記モニターに応答して、前記プロセッサにより前記コンピュータシステムを再び初期化するステップと、
前記コンピュータシステムを再び初期化する間に、もし、前記インサーキット・プログラミング状態が完全な値を有するなら、前記プロセッサにより、前記ブートプログラムをマルチプレクサで選択し、実行、もし、前記インサーキット・プログラミング状態が不完全な値を有するなら、前記プロセッサにより、前記ミニブートコードをマルチプレクサで選択し、実行、且つ、前記インサーキット・プログラミング・プロセスを再開始するステップとを含む
ことを特徴とする方法。
A method for performing error recovery during in-circuit programming of a computer system including a processor coupled to a reprogrammable non-volatile memory comprising:
Providing a boot program to the reprogrammable non-volatile memory, wherein the reprogrammable non-volatile memory is programmable by an in-circuit programming process, and the boot program is a system a step of initializing the target hardware or software is intended to have a resource for initializing,
Providing a miniboot code to a memory protected from the in-circuit programming process, wherein the miniboot code is a resource for initializing software to be initialized of the system in the boot program; are those containing a resource that supports in-circuit programming process for loading subset data or instructions from a remote source to said reprogrammable non-volatile memory, and providing in said memory,
Performing the in-circuit programming process by the processor to load data or instructions into the reprogrammable non-volatile memory;
The in-circuit programming process is in progress with an in-circuit programming state stored and managed by the processor in the in-circuit programming state register when the in-circuit programming process is started. Setting it to the incomplete value shown,
When the in-circuit programming process has completed the step of loading data or instructions, the processor sets the in-circuit programming state to a full value indicating that the in-circuit programming process is complete. Steps,
Connect to a processor simultaneously with the start of the in-circuit programming process using one of the data or instruction sources or the processor to detect delays in downloading blocks of data in the in-circuit programming process Starting a programmed watchdog timer and starting monitoring the in-circuit programming process;
If the delay exceeds a timeout value of the watchdog timer, in response to the monitor, reinitializing the computer system by the processor;
During the re-initializing the computer system, if, if the in-circuit programming state have a full value, by the processor, the boot program selected by the multiplexer, execute, if the in-circuit programming If the state has incomplete value, by the processor, wherein the mini-boot code selected by the multiplexer, execute, and, and a step of re-starting the in-circuit programming process,
A method characterized by that.
前記インサーキット・プログラミング・プロセスは、コードの一区分を前記再プログラム可能な不揮発性メモリにロードし、且つ、前記コードの一区分がロードされたことを検証するために、前記インサーキット・プログラミング・プロセスによってロードされたコードの一区分をテストするステップを含むことを特徴とする請求項1に記載の方法。   The in-circuit programming process loads the section of code into the reprogrammable non-volatile memory and verifies that the section of code has been loaded. The method of claim 1, comprising testing a section of code loaded by the process. 前記タイムアウト値が遠隔ホストから2回ダウンロードされ、タイムアウト値が正しくダウンロードされたことを保証するために、2つのタイムアウト値が互いに比較され、それらが一致していることを検証することを特徴とする請求項1に記載の方法。 The timeout value is downloaded twice from the remote host, and the two timeout values are compared with each other to verify that they match to ensure that the timeout value was downloaded correctly. The method of claim 1. 第1のタイムアウト値が遠隔ホストからダウンロードされ、前記第1のタイムアウト値が第2のタイムアウト値と等しいことを保証するために、コンピュータシステムに永久にストアされた第2のタイムアウト値と比較され、もし、前記第1のタイムアウト値が第2のタイムアウト値と等しくないなら、タイムアウト値として前記第2のタイムアウトを使用することを特徴とする請求項1に記載の方法。 A first timeout value is downloaded from a remote host and compared to a second timeout value permanently stored in the computer system to ensure that the first timeout value is equal to a second timeout value; The method of claim 1, wherein the second timeout value is used as a timeout value if the first timeout value is not equal to a second timeout value . ミニブートコードを実行するステップは、ミニブートコードの開始を指示するブートベクトルを示すアドレスへのジャンプをするステップを有することを特徴とする請求項1に記載の方法。 The method of claim 1, wherein executing the miniboot code comprises jumping to an address indicating a boot vector that indicates the start of the miniboot code. アドレスがインサーキット・プログラミング・プロセスから保護されるように、前記インサーキット・プログラミング・プロセスが遠隔ホストからデータをダウンロードする遠隔ホストのアドレスをストアするステップを有し、
前記ミニブートコードにあるインサーキット・プログラミングをサポートする資源が、前記ストアされたアドレスを用いて遠隔ホストとのリンクを開始することを特徴とする請求項1に記載の方法。
Storing the address of the remote host from which the in-circuit programming process downloads data from the remote host, such that the address is protected from the in-circuit programming process;
The method of claim 1, wherein a resource supporting in-circuit programming in the miniboot code initiates a link with a remote host using the stored address.
コンピュータシステムのインサーキット・プログラミング中にエラー回復を行なうための装置であって、
再プログラム可能な不揮発性メモリを含むメモリと結合されたプロセッサと、
前記メモリは、前記プロセッサによって実行するために、ブートプログラムをストアし、前記ブートプログラムは、システムの初期化対象のハードウェア又はソフトウェアを初期化するための資源を含んでおり、
前記メモリは、前記プロセッサによって実行するために、ミニブートコードをストアし、前記ミニブートコードは、前記ブートプログラムにある前記システムの初期化対象のソフトウェアを初期化するための資源の少なくとも幾つかの機能を果たす代わりのセットを含み、且つ、データまたは命令を前記プログラム可能な不揮発性メモリにロードするために、インサーキット・プログラミング・プロセスの再開始をサポートする資源を含み、
前記メモリは、前記プロセッサによって実行するために、インサーキット・プログラミング・シーケンスをストアし、前記インサーキット・プログラミング・シーケンスは、データまたは命令を前記プログラム可能な不揮発性メモリにロードするために、インサーキット・プログラミング・プロセスのための前記プロセッサによって実行され、
前記プロセッサに接続されたインサーキット・プログラミング状態インジケータであって、インサーキット・プログラム・シーケンスの実行前または実行中は、前記プロセッサによって不完全な値にセットされ、且つ、前記インサーキット・プログラム・シーケンスの実行の完了を示すため、前記プロセッサによって完全な値にセットされるインサーキット・プログラミング状態インジケータと、
前記ブートプログラムをストアすると共にミニブートコードをストアするメモリに接続され、コンピュータシステムの初期化のためのブートコードシーケンスを選択するためのマルチプレクサであって、もし、前記インサーキット・プログラミング状態インジケータが完全な値にセットされているなら、前記ブートプログラムを選択し、もし、インサーキット・プログラミング状態インジケータが不完全な値にセットされているなら、前記ミニブートコードを選択するためのマルチプレクサと、
を有することを特徴とする装置。
An apparatus for performing error recovery during in-circuit programming of a computer system,
A processor coupled with memory including reprogrammable non-volatile memory;
The memory stores a boot program to be executed by the processor, and the boot program includes a resource for initializing hardware or software to be initialized in the system,
The memory stores miniboot code for execution by the processor, and the miniboot code includes at least some of the resources for initializing software to be initialized of the system in the boot program . Including an alternative set that performs a function , and a resource that supports restarting an in-circuit programming process to load data or instructions into the programmable non-volatile memory;
The memory stores an in-circuit programming sequence for execution by the processor, the in-circuit programming sequence for in-circuit programming to load data or instructions into the programmable non-volatile memory. Executed by the processor for a programming process;
An in-circuit programming status indicator connected to the processor, which is set to an incomplete value by the processor before or during execution of the in-circuit program sequence, and the in-circuit program sequence An in-circuit programming status indicator that is set to a complete value by the processor to indicate completion of execution;
A multiplexer for selecting a boot code sequence for initialization of a computer system, connected to a memory for storing the boot program and storing a mini boot code, wherein the in-circuit programming status indicator is fully A multiplexer for selecting the boot program if it is set to a value, and if the in-circuit programming status indicator is set to an incomplete value;
A device characterized by comprising:
前記ブートプログラムとミニブートコードは、同じメモリモジュール内に含まれることを特徴とする請求項記載の装置。 8. The apparatus of claim 7, wherein the boot program and miniboot code are contained in the same memory module. 前記ブートプログラムは、前記インサーキット・プログラミング・プロセスを介してプログラム可能であり、ミニブートコードは、前記インサーキット・プログラミング・プロセスから保護されていることを特徴とする請求項に記載の装置。 The apparatus of claim 7 , wherein the boot program is programmable through the in-circuit programming process, and the mini-boot code is protected from the in-circuit programming process. 前記ブートプログラムは、フラッシュメモリ内に存在し、前記ミニブートコードは、リードオンリーメモリ内に存在することを特徴とする請求項に記載の装置。 8. The apparatus of claim 7 , wherein the boot program is in flash memory and the miniboot code is in read-only memory. 前記プロセッサに接続された遠隔ホストアドレスをストアするメモリ有し、前記遠隔ホストアドレスは、遠隔ホストのネットワークアドレスを有し、前記インサーキット・プログラミング・シーケンスは、前記遠隔ホストからデータまたは命令をダウンロードし、且つ、前記ミニブートコードは、前記遠隔ホストとのリンクを確立するために資源を有することを特徴とする請求項に記載の装置。 A memory for storing a remote host address connected to the processor, the remote host address having a network address of the remote host, and the in-circuit programming sequence downloading data or instructions from the remote host; 8. The apparatus of claim 7 , wherein the miniboot code has resources to establish a link with the remote host. 前記プロセッサに接続されたウオッチドッグタイマを有し、前記ウオッチドッグタイマは、前記インサーキット・プログラミング・プロセスをモニターすることを特徴とする請求項に記載の装置。 8. The apparatus of claim 7 , further comprising a watchdog timer connected to the processor, the watchdog timer monitoring the in-circuit programming process.
JP2007233332A 2007-08-13 2007-08-13 Fault tolerance architecture for in-circuit programming Expired - Lifetime JP4879124B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007233332A JP4879124B2 (en) 2007-08-13 2007-08-13 Fault tolerance architecture for in-circuit programming

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007233332A JP4879124B2 (en) 2007-08-13 2007-08-13 Fault tolerance architecture for in-circuit programming

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2000506583A Division JP4136309B2 (en) 1997-08-06 1997-08-06 Fault tolerant architecture for in-circuit programming

Publications (2)

Publication Number Publication Date
JP2008033951A JP2008033951A (en) 2008-02-14
JP4879124B2 true JP4879124B2 (en) 2012-02-22

Family

ID=39123224

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007233332A Expired - Lifetime JP4879124B2 (en) 2007-08-13 2007-08-13 Fault tolerance architecture for in-circuit programming

Country Status (1)

Country Link
JP (1) JP4879124B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395598B (en) * 2019-08-15 2024-04-19 奇安信安全技术(珠海)有限公司 Protection method, device and equipment for damaged instruction execution sequence

Also Published As

Publication number Publication date
JP2008033951A (en) 2008-02-14

Similar Documents

Publication Publication Date Title
US6282675B1 (en) Fault-tolerant architecture for in-circuit programming
US10120694B2 (en) Embedded system boot from a storage device
US7664923B2 (en) Method and system for updating software
US20180101304A1 (en) Configuration control system and configuration control method
KR20070077463A (en) Method of system booting with a direct memory access in a new memory architecture
EP2453352A1 (en) Software updating process for an embedded device
US20040158702A1 (en) Redundancy architecture of computer system using a plurality of BIOS programs
CN104572206A (en) Application program self updating and backup recovery method
EP1536332B1 (en) Programmable configuration integrated circuit
CN107704285B (en) Multi-version configuration chip, system and method for field programmable gate array
JPH11296355A (en) Utilization of programmable information in dual bootable device
JP4136309B2 (en) Fault tolerant architecture for in-circuit programming
EP1598747A2 (en) Programmable configuration integrated circuit
EP3798831B1 (en) Resilient upgradable boot loader with power reset
JP4879124B2 (en) Fault tolerance architecture for in-circuit programming
US9934045B1 (en) Embedded system boot from a storage device
JP4266839B2 (en) Method for error recovery during in-circuit programming of a circuit having an integrated reprogrammable non-volatile memory and an integrated processor
KR100860402B1 (en) Device and method for upgradin system using two step bootloader
JP2018180608A (en) Program execution apparatus and program execution method
TWI726436B (en) Method for repairing basic input/output system bios and a computer system using the same
JP2010157026A (en) Program area change method
JP2004094725A (en) Firmware rewriting device and firmware rewriting method
JP2004078294A (en) Signal processor
JP2005332228A (en) Program switching controller
JP2007004350A (en) Method for executing temporary use program, microprocessor system, information processor and program

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080714

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081014

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081017

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090114

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090209

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20090603

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090610

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090603

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090805

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090811

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090911

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110912

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110916

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111014

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111129

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term