JPH10149282A - 電子装置のメモリ書換システム - Google Patents

電子装置のメモリ書換システム

Info

Publication number
JPH10149282A
JPH10149282A JP8309567A JP30956796A JPH10149282A JP H10149282 A JPH10149282 A JP H10149282A JP 8309567 A JP8309567 A JP 8309567A JP 30956796 A JP30956796 A JP 30956796A JP H10149282 A JPH10149282 A JP H10149282A
Authority
JP
Japan
Prior art keywords
rewriting
program
address
memory
storage area
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.)
Pending
Application number
JP8309567A
Other languages
English (en)
Inventor
Yoshihiro Kawase
義博 川瀬
Yukari Terada
由香里 寺田
Yoshiaki Kida
芳明 木田
Takashi Ishida
隆司 石田
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.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Priority to JP8309567A priority Critical patent/JPH10149282A/ja
Publication of JPH10149282A publication Critical patent/JPH10149282A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 ROMの記憶内容を書き換えるための書換制
御ソフトを受信しその実行に移行するための起動用プロ
グラム(ブートソフト)を、確実に書き換える。 【解決手段】 電子装置のCPUがリセット解除後にフ
ラッシュROM(以下、ROM)の特定領域(ブートフ
ラッシュ領域)内のブートソフトを実行することで、外
部装置からの書換制御ソフトをRAMに格納してその実
行に移り、該書換制御ソフトの実行によりROMの所定
領域の内容が外部装置からの新プログラムに書き換えら
れるシステムにて、ブートソフト書換用の書換制御ソフ
トは、特定領域のブートソフトをROMの他領域(メイ
ンフラッシュ領域)にコピーし、リセット解除後の実行
プログラムを示すベクタアドレスを上記他領域の先頭番
地に変えた後(S405〜S425)、特定領域の内容を新ブー
トソフトに書き換えてベクタアドレスを特定領域の先頭
番地に戻す(S430〜S455)という内容になっている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、電気的に記憶内容
の消去及び書き込みが可能な読み出し専用の不揮発性メ
モリに格納されたプログラムを、該不揮発性メモリを電
子装置に搭載した状態で書き換える技術に関する。
【0002】
【従来の技術】従来より、例えば特開平2−99746
号公報に開示されているように、CPU(演算処理装
置)が所定の制御対象を制御するために実行する制御プ
ログラムを格納しておく記憶媒体として、電気的に記憶
内容の消去及び書き込みが可能なEEPROMやフラッ
シュEEPROM(以下、フラッシュROMという)等
の読み出し専用の不揮発性メモリを備え、この不揮発性
メモリを組み付けた状態(実装した状態)で、制御プロ
グラムを書き換え可能に構成された電子装置が提案され
ている。
【0003】即ち、上記公報に開示の電子装置では、C
PUが、外部からの割込信号を受けると、記憶内容の書
き換えが不能なマスクROMに予め格納されている割込
処理用のプログラムを実行し、この割込処理用のプログ
ラムを実行することで、外部から送信されて来る書換制
御用プログラムを受信してRAMに格納し、RAMに格
納した上記書換制御用プログラムの実行に移行するよう
にしている。そして、その後は、CPUが上記書換制御
用プログラムをRAM上で実行することにより、不揮発
性メモリの記憶領域のうち、その書換制御用プログラム
によって指示される書換対象領域の記憶内容を消去し
て、その書換対象領域に外部から送信されて来る新たな
プログラムを書き込む、といった書込処理を行うように
している。
【0004】よって、このような電子装置に別途用意し
たメモリ書換装置を接続して、電子装置のCPUに割込
信号を与えると共に、上記メモリ書換装置から電子装置
へ、制御プログラムの格納領域を書換対象領域とした書
換制御用プログラムを送信し、更にその後、新たな制御
プログラムを送信してやれば、その新たな制御プログラ
ムが、不揮発性メモリ内に旧来の制御プログラムに代え
て書き込まれ、この結果、電子装置の制御対象に対する
制御内容を変更することができる。
【0005】このように、上記公報に開示の電子装置で
は、不揮発性メモリの記憶内容を書き換えるための書換
制御用プログラムを外部から受信してRAM上で実行さ
せる起動用プログラム(前述した割込処理用のプログラ
ム)だけをマスクROMに予め格納しておき、割込信号
などの予め定められた起動条件の成立時に、そのマスク
ROM内の起動用プログラムが実行されるようにしてい
る。そして、このようにすることで、通常時には不要な
書換制御用プログラムを常時内蔵することなく、不揮発
性メモリの記憶内容を書き換え可能としており、メモリ
容量の効率化を図っている。
【0006】ところで、この種の電子装置においては、
メモリ書換装置との間の通信規約(通信速度及び通信フ
ォーマット等)や、書換制御用プログラムのRAMにお
ける格納領域等を変更したい場合が生じる可能性があ
る。そして、このような変更を行うためには、書換制御
用プログラムを外部から受信してRAM上で実行させる
起動用プログラムを書き換える必要がある。
【0007】そこで、上記公報に記載された技術を適用
して、上記の如き起動用プログラムを書き換えることが
できるようにするためには、起動用プログラムを、上記
不揮発性メモリにおいて、制御対象を制御するために実
行される制御プログラムの格納領域とは異なる特定の記
憶領域に格納しておき、割込信号などの予め定められた
起動条件が成立した場合に、その特定の記憶領域に格納
されている起動用プログラムが実行されるように構成す
れば良い。
【0008】つまり、このように構成すれば、電子装置
に上記起動条件を与えると共に、メモリ書換装置から電
子装置へ、起動用プログラムの格納された記憶領域を書
換対象領域とする書換制御用プログラムを送信し、更に
その後、新たな起動用プログラムを送信してやることに
より、通常の制御プログラムを書き換える場合と全く同
様に、新たな起動用プログラムが、不揮発性メモリ内に
旧来の起動用プログラムに代えて書き込まれるのであ
る。そして、この結果、メモリ書換装置と電子装置との
間の通信規約を変更したり、RAMの容量やアドレス空
間が変更された場合などに書換制御用プログラムのRA
Mにおける格納領域を修正したりすることができ、様々
な設計変更に対応することができるようになる。
【0009】
【発明が解決しようとする課題】しかしながら、上記の
ような従来技術に基づく方式では、起動用プログラムを
書き換えている最中(詳しくは、旧来の起動用プログラ
ムが消去されてから、新たな起動用プログラムが書き込
まれるまでの間)に、万が一、電子装置への電源供給が
遮断されてしまったり或いはノイズの影響などによっ
て、RAM上で実行中の書換制御用プログラムが消失又
は破壊されてしまうと、その時点では、起動用プログラ
ムが不揮発性メモリから消去されているか、或いは、そ
の内容が不定になっているため、再度、起動用プログラ
ムの書き換えを行おうとしても、もはや電子装置はメモ
リ書換装置との間で通信を行うことができず、この結
果、プログラムの書き換えが不能となってしまう。
【0010】特に、電子装置が電源投入後の初期状態か
ら動作を開始した時に起動用プログラムが実行され、そ
の起動用プログラムの実行により、当該起動用プログラ
ムから制御対象を制御するための制御プログラムの実行
に移行するといった通常モードと、外部からの書換制御
用プログラムを受信してRAMに格納し、当該起動用プ
ログラムからRAM内の書換制御用プログラムの実行に
移行するといった書換モードとを、切り換えるように構
成した場合には、このような起動用プログラムが消失さ
れたり不定になってしまうと、この電子装置は全く動作
しないものとなってしまう。
【0011】本発明は、このような問題に鑑みなされた
ものであり、不揮発性メモリの記憶内容を書き換えるた
めの書換制御用プログラムを外部から受信して実行する
ための起動用プログラムを、確実に書き換えることがで
きる電子装置のメモリ書換システムを提供することを目
的としている。
【0012】
【課題を解決するための手段、及び発明の効果】上記目
的を達成するためになされた請求項1に記載のメモリ書
換システムは、プログラムを実行する演算処理手段、電
気的に記憶内容の消去及び書き込みが可能であると共
に、前記演算処理手段により実行されるプログラムを格
納する読み出し専用の不揮発性メモリ、記憶内容の読み
出し及び書き込みが可能な揮発性メモリ、及び、前記不
揮発性メモリの記憶領域のうち、予め定められた起動条
件の成立時に前記演算処理手段により実行されるプログ
ラムが格納された記憶領域の先頭アドレスを記憶するア
ドレス記憶手段を有する電子装置と、前記不揮発性メモ
リに格納されたプログラムを新たなプログラムに書き換
えるために、前記電子装置に接続されるメモリ書換装置
とから構成されている。
【0013】ここで、電子装置において、不揮発性メモ
リにおける特定の記憶領域には、演算処理手段が、外部
から送信されて来る書換制御用プログラムを受信して前
記揮発性メモリに格納し、その後、揮発性メモリに格納
した前記書換制御用プログラムの実行に移行するための
起動用プログラムが予め格納されていると共に、アドレ
ス記憶手段には、前記特定の記憶領域の先頭アドレスが
予め記憶されている。
【0014】そして、電子装置では、予め定められた起
動条件が成立すると、演算処理手段が、不揮発性メモリ
の記憶領域のうち、アドレス記憶手段に記憶された先頭
アドレスにより特定される記憶領域に格納された前記起
動用プログラムを実行し、その後は、演算処理手段が、
前記起動用プログラムの実行により揮発性メモリに格納
された前記書換制御用プログラムを実行することで、不
揮発性メモリの記憶領域のうち、該書換制御用プログラ
ムにより指示される領域(以下、書換対象領域という)
の記憶内容を消去して、その書換対象領域に外部から送
信されて来る新たなプログラムを書き込む。
【0015】一方、このような電子装置に接続されるメ
モリ書換装置は、電子装置へ、前記書換制御用プログラ
ムを送信した後、前記新たなプログラムを送信する。こ
のメモリ書換システムにおいて、電子装置に備えられた
不揮発性メモリの何れかの記憶領域に格納されたプログ
ラムを書き換えたい場合には、電子装置にメモリ書換装
置を接続して、予め定められた起動条件を成立させると
共に、メモリ書換装置から電子装置へ、プログラムを書
き換えたい記憶領域を書換対象領域とする書換制御用プ
ログラムを送信し、その後、書き換えるべき新たなプロ
グラムを送信してやれば良い。
【0016】すると、電子装置側では、演算処理手段に
より、まず、不揮発性メモリの記憶領域のうち、アドレ
ス記憶手段に記憶された先頭アドレスにより特定される
記憶領域に格納された起動用プログラムが実行されるこ
とで、メモリ書換装置からの書換制御用プログラムが揮
発性メモリに格納されて実行され、その後は、この書換
制御用プログラムが揮発性メモリ上で実行されることに
より、不揮発性メモリの記憶領域のうち、当該書換制御
用プログラムにより指示される書換対象領域の記憶内容
が消去されて、その書換対象領域にメモリ書換装置から
送信される新たなプログラムが書き込まれるのである。
【0017】ここで特に、このような請求項1に記載の
電子装置のメモリ書換システムにおいて、不揮発性メモ
リの前記特定の記憶領域に格納された起動用プログラム
を新たな起動用プログラムに書き換える場合に、メモリ
書換装置から電子装置へ、新たな起動用プログラムに先
立ち送信される書換制御用プログラムは、前記演算処理
手段を、前記不揮発性メモリにて前記特定の記憶領域と
は異なる他の記憶領域の記憶内容を消去して、該他の記
憶領域に、前記特定の記憶領域に格納されている前記起
動用プログラムを書き込み、前記他の記憶領域への前記
起動用プログラムの書き込みが終了すると、前記アドレ
ス記憶手段に記憶されている前記先頭アドレスを、前記
他の記憶領域の先頭アドレスに変更する第1の書換制御
手段と、該第1の書換制御手段による前記先頭アドレス
の変更が終了すると、前記特定の記憶領域の記憶内容を
消去して、該特定の記憶領域に、前記メモリ書換装置か
ら送信されて来る前記新たな起動用プログラムを書き込
み、前記特定の記憶領域への前記新たな起動用プログラ
ムの書き込みが終了すると、前記アドレス記憶手段に記
憶されている前記先頭アドレスを、前記特定の記憶領域
の先頭アドレスに戻す第2の書換制御手段と、して機能
させるプログラムとして構成されている。
【0018】そこで以下、請求項1に記載のメモリ書換
システムにおいて、電子装置に備えられた不揮発性メモ
リ内の起動用プログラムを書き換える場合の、作業手順
及び電子装置の演算処理手段で行われる処理内容につい
て説明する。尚、ここでは、演算処理手段を上記第1及
び第2の書換制御手段として機能させる書換制御用プロ
グラムを、書換制御用プログラムAと呼ぶ。
【0019】不揮発性メモリ内の起動用プログラムを書
き換える場合には、まず、電子装置にメモリ書換装置を
接続して、予め定められた前記起動条件を成立させると
共に、メモリ書換装置から電子装置へ、上記書換制御用
プログラムAを送信し、その後、書き換えるべき新たな
起動用プログラムを送信してやれば良い。
【0020】すると、電子装置において、起動用プログ
ラムの書き換えに失敗していない正常時には、アドレス
記憶手段に、起動用プログラムが本来格納される特定の
記憶領域の先頭アドレスが記憶されているため、上記起
動条件が成立すると、演算処理手段が、前記特定の記憶
領域に格納されている起動用プログラム(即ち、今回書
き換えようとしている旧来の起動用プログラム)を実行
する。そして、この旧来の起動用プログラムが実行され
ることで、メモリ書換装置からの書換制御用プログラム
Aが受信されて揮発性メモリに格納され、その後、揮発
性メモリに格納された書換制御用プログラムAの実行が
開始される。
【0021】こうして演算処理手段が書換制御用プログ
ラムAの実行を開始すると、まず、第1の書換制御手段
としての機能により、不揮発性メモリにて前記特定の記
憶領域とは異なる他の記憶領域の記憶内容が消去され
て、その記憶領域に、前記特定の記憶領域に格納されて
いる旧来の起動用プログラムが書き込まれ、前記他の記
憶領域への旧来の起動用プログラムの書き込みが終了す
ると、アドレス記憶手段の記憶内容が、前記特定の記憶
領域の先頭アドレスから前記他の記憶領域の先頭アドレ
スに変更される。
【0022】そして、アドレス記憶手段内の先頭アドレ
スが変更されると、次に、第2の書換制御手段としての
機能により、前記特定の記憶領域の記憶内容(つまり、
旧来の起動用プログラム)が消去されて、その特定の記
憶領域に、メモリ書換装置から送信されて来る新たな起
動用プログラムが書き込まれ、前記特定の記憶領域への
新たな起動用プログラムの書き込みが終了すると、アド
レス記憶手段の記憶内容が、前記他の記憶領域の先頭ア
ドレスから前記特定の記憶領域の先頭アドレスに戻され
る。
【0023】そして、このようにして特定の記憶領域に
新たな起動用プログラムが書き込まれると共に、アドレ
ス記憶手段内の先頭アドレスが前記特定の記憶領域の先
頭アドレスに戻された段階で、起動用プログラムの書き
換えが完了する。ところで、上述した状態変移は、起動
用プログラムを何の不具合もなく書き換えることができ
た場合のものである。
【0024】これに対して、もし、前記特定の記憶領域
に格納された旧来の起動用プログラムが消去されてか
ら、その記憶領域に新たな起動用プログラムが書き込ま
れるまでの間に、万が一、電子装置への電源供給が遮断
されたり或いはノイズの影響などによって、揮発性メモ
リ上で実行中の書換制御用プログラムAが消失又は破壊
されてしまった場合には、電子装置側の処理が中断され
て起動用プログラムの書き換えに失敗してしまう。
【0025】そこで、このように起動用プログラムの書
き換えに失敗した場合には、例えば、電子装置にメモリ
書換装置を接続したままで、再度、予め定められた前記
起動条件を成立させると共に、メモリ書換装置から電子
装置へ、上記書換制御用プログラムAを送信し、その
後、書き換えるべき新たな起動用プログラムを送信して
やれば良い。
【0026】即ち、この場合において電子装置側では、
前回に演算処理手段が第1の書換制御手段として機能し
たことにより、前記他の記憶領域に旧来の起動用プログ
ラムが書き込まれている(換言すれば、コピーされてい
る)と共に、アドレス記憶手段内の先頭アドレスが前記
他の記憶領域の先頭アドレスに変更されているため、上
記起動条件が成立すると、演算処理手段が、前記他の記
憶領域にコピーされた旧来の起動用プログラムを実行す
る。
【0027】そして、このように前記他の記憶領域にコ
ピーされた旧来の起動用プログラムが実行されること
で、起動用プログラムの書き換え作業を1度目に行った
場合と全く同様に、メモリ書換装置からの書換制御用プ
ログラムAが受信されて揮発性メモリに格納され、その
後、この書換制御用プログラムAが揮発性メモリ上で実
行されることにより、演算処理手段が、前述した第1及
び第2の書換制御手段として機能して、前記特定の記憶
領域内の起動用プログラムが新たな起動用プログラムに
書き換えられることとなる。
【0028】以上のように、請求項1に記載のメモリ書
換システムでは、起動用プログラムが本来格納される特
定の記憶領域の記憶内容を書き換える前に、その特定の
記憶領域に格納されている旧来の起動用プログラムを他
の記憶領域にコピーすると共に、予め定められた起動条
件の成立時に演算処理手段が実行すべきプログラムの格
納先を示すアドレス記憶手段の記憶内容を、前記特定の
記憶領域の先頭アドレスから前記他の記憶領域の先頭ア
ドレスに変更しておくようにしている。
【0029】よって、起動用プログラムの書き換えに1
度失敗して、起動用プログラムが本来格納される特定の
記憶領域の記憶内容が不定になったとしても、予め定め
られた起動条件を成立させれば、前記他の記憶領域にコ
ピーされた旧来の起動用プログラムが実行されて、起動
用プログラムの書き換え作業を再度行うことができ、こ
の結果、起動用プログラムを確実に書き換えることがで
きるようになる。
【0030】尚、演算処理手段が第1の書換制御手段と
して機能している最中に、電源供給の遮断などにより書
換制御用プログラムAが消失又は破壊された場合には、
起動用プログラムの書き換えに失敗していない正常時と
全く同様に、前記特定の記憶領域に旧来の起動用プログ
ラムが格納されたままであると共に、アドレス記憶手段
に前記特定の記憶領域の先頭アドレスが記憶されたまま
であるため、起動用プログラムの書き換えを再度行うこ
とができ、問題はない。
【0031】ところで、上記説明では、起動用プログラ
ムの書き換えに1度失敗して、2度目の書き換え作業を
行う場合にも、メモリ書換装置から電子装置へ、上記書
換制御用プログラムAを送信するようにしたが、このよ
うにした場合、2度目の書き換え時において、再び起動
用プログラムの書き換えに失敗してしまうと、もはや起
動用プログラムの書き換えを行うことができなくなって
しまう可能性がある。
【0032】つまり、1度目の失敗時点では、起動用プ
ログラムが本来格納される特定の記憶領域の記憶内容が
不定になっているため、2度目の書き換え時において、
メモリ書換装置から上記書換制御用プログラムAを送信
すると、演算処理手段が前述した第1の書換制御手段と
して機能することで、前記特定の記憶領域の不定な記憶
内容が前記他の記憶領域にコピーされ、この結果、前記
他の記憶領域に格納されていた旧来の起動用プログラム
が破壊されてしまう可能性があるからである。
【0033】そこで、起動用プログラムの書き換えに1
度失敗して、2度目以降の書き換え作業を行う場合に
は、メモリ書換装置から電子装置へ送信する書換制御用
プログラムとして、演算処理手段を前述した第2の書換
制御手段としてのみ機能させるプログラム(以下、書換
制御用プログラムBという)を送信するようにすれば、
起動用プログラムの書き換えを何度でもやり直すことが
可能となり、起動用プログラムを一層確実に書き換える
ことができる。
【0034】即ち、2度目の書き換え時に、上記書換制
御用プログラムBを送信するようにすれば、演算処理手
段は第1の書換制御手段として機能しないため、この2
度目の書き換え時において、再び起動用プログラムの書
き換えに失敗したとしても、前記他の記憶領域に旧来の
起動用プログラムが書き込まれたままになる。このた
め、起動用プログラムの書き換えに1度失敗して2度目
以降の書き換え作業を行う場合に、メモリ書換装置から
電子装置へ、上記書換制御用プログラムBを送信するよ
うにすれば、起動用プログラムの書き換えを何度でもや
り直すことができ、延いては、起動用プログラムを一層
確実に書き換えることが可能となる。
【0035】ただし、このように起動用プログラムの書
き換えを最初に行う場合と、その際の書き換えに失敗し
て2度目以降の書き換えを行う場合とで、2種類の書換
制御用プログラム(上記書換制御用プログラムAと書換
制御用プログラムB)を使い分けるようにすると、作業
が複雑になってしまうという面もある。
【0036】そこで、請求項2に記載のメモリ書換シス
テムのようにすれば、作業を複雑にすることなく、起動
用プログラムの書き換えを何度でもやり直すことができ
る。即ち、請求項2に記載のメモリ書換システムにおい
て、不揮発性メモリ内の起動用プログラムを新たな起動
用プログラムに書き換える場合に、メモリ書換装置から
電子装置へ、新たな起動用プログラムに先立ち送信され
る書換制御用プログラム(以下、書換制御用プログラム
Cという)は、前記演算処理手段を、前記第1の書換制
御手段及び前記第2の書換制御手段として機能させる前
に、前記アドレス記憶手段に記憶されている前記先頭ア
ドレスが前記特定の記憶領域の先頭アドレスと前記他の
記憶領域の先頭アドレスとのうちの何れであるかを判定
するアドレス判定手段として機能させると共に、前記ア
ドレス判定手段としての機能により、前記アドレス記憶
手段に記憶されている前記先頭アドレスが前記特定の記
憶領域の先頭アドレスであると判定された場合に、前記
演算処理手段を、前記第1の書換制御手段及び前記第2
の書換制御手段として機能させ、前記アドレス判定手段
としての機能により、前記アドレス記憶手段に記憶され
ている前記先頭アドレスが前記他の記憶領域の先頭アド
レスであると判定された場合には、前記演算処理手段
を、前記第2の書換制御手段としてのみ機能させるプロ
グラム、として構成されている。
【0037】この請求項2に記載のメモリ書換システム
によれば、起動用プログラムの書き換えを行う場合に、
演算処理手段が上記書換制御用プログラムCの実行を開
始すると、まず、アドレス判定手段としての機能によ
り、アドレス記憶手段に記憶されている先頭アドレスが
前記特定の記憶領域の先頭アドレスと前記他の記憶領域
の先頭アドレスとのうちの何れであるかが判定される。
【0038】そして、アドレス記憶手段に前記特定の記
憶領域の先頭アドレスが記憶されている場合、つまり、
起動用プログラムの書き換えに失敗していない正常時に
は、演算処理手段が、前記第1の書換制御手段及び前記
第2の書換制御手段として機能することとなり、逆に、
アドレス記憶手段に前記他の記憶領域の先頭アドレスが
記憶されている場合、つまり、起動用プログラムの書き
換えに1度失敗した後の2度目以降の書き換え時には、
演算処理手段が、前記第2の書換制御手段としてのみ機
能することとなる。
【0039】従って、請求項2に記載のメモリ書換シス
テムによれば、起動用プログラムの書き換えを最初に行
う場合と、その最初の書き換えに失敗して2度目以降の
書き換えを行う場合とで、2種類の書換制御用プログラ
ムを使い分ける必要がなく、1種類の上記書換制御用プ
ログラムCだけで、起動用プログラムの書き換えを何度
でもやり直すことができるようになる。
【0040】一方、請求項3に記載の電子装置のメモリ
書換システムは、請求項1に記載のメモリ書換システム
に対して、同じ前提構成を有しているが、不揮発性メモ
リ内の起動用プログラムを新たな起動用プログラムに書
き換える場合に、メモリ書換装置から電子装置へ、新た
な起動用プログラムに先立ち送信される書換制御用プロ
グラムが異なっている。
【0041】即ち、その書換制御用プログラムは、前記
演算処理手段を、前記第1の書換制御手段として機能さ
せることに代えて、前記不揮発性メモリにて前記特定の
記憶領域とは異なる他の記憶領域の記憶内容を消去し
て、該他の記憶領域に、前記メモリ書換装置から送信さ
れて来る前記新たな起動用プログラムを書き込み、前記
他の記憶領域への前記新たな起動用プログラムの書き込
みが終了すると、前記アドレス記憶手段に記憶されてい
る前記先頭アドレスを、前記他の記憶領域の先頭アドレ
スに変更する第3の書換制御手段として機能させると共
に、前記演算処理手段を、前記第2の書換制御手段とし
て機能させることに代えて、前記第3の書換制御手段と
しての機能による前記先頭アドレスの変更が終了する
と、前記特定の記憶領域の記憶内容を消去して、該特定
の記憶領域に、前記他の記憶領域に書き込まれた前記新
たな起動用プログラムを書き込み、前記特定の記憶領域
への前記新たな起動用プログラムの書き込みが終了する
と、前記アドレス記憶手段に記憶されている前記先頭ア
ドレスを、前記特定の記憶領域の先頭アドレスに戻す第
4の書換制御手段として機能させるプログラムである。
【0042】そこで、次に、請求項3に記載のメモリ書
換システムにおいて、電子装置に備えられた不揮発性メ
モリ内の起動用プログラムを書き換える場合の、作業手
順及び電子装置の演算処理手段で行われる処理内容につ
いて説明する。尚、ここでは、演算処理手段を上記第3
及び第4の書換制御手段として機能させる書換制御用プ
ログラムを、書換制御用プログラムDと呼ぶ。
【0043】不揮発性メモリ内の起動用プログラムを書
き換える場合には、請求項1に記載のメモリ書換システ
ムの場合と同様に、まず、電子装置にメモリ書換装置を
接続して、予め定められた前記起動条件を成立させると
共に、メモリ書換装置から電子装置へ、上記書換制御用
プログラムDを送信し、その後、書き換えるべき新たな
起動用プログラムを送信してやれば良い。
【0044】すると、前述したように、電子装置におい
て、起動用プログラムの書き換えに失敗していない正常
時には、アドレス記憶手段に、起動用プログラムが本来
格納される特定の記憶領域の先頭アドレスが記憶されて
いるため、上記起動条件が成立すると、演算処理手段
が、前記特定の記憶領域に格納されている旧来の起動用
プログラムを実行する。そして、この旧来の起動用プロ
グラムが実行されることで、メモリ書換装置からの書換
制御用プログラムDが受信されて揮発性メモリに格納さ
れ、その後、揮発性メモリに格納された書換制御用プロ
グラムDの実行が開始される。
【0045】こうして演算処理手段が書換制御用プログ
ラムDの実行を開始すると、まず、第3の書換制御手段
としての機能により、不揮発性メモリにて前記特定の記
憶領域とは異なる他の記憶領域の記憶内容が消去され
て、その記憶領域に、メモリ書換装置から送信されて来
る新たな起動用プログラムが書き込まれ、前記他の記憶
領域への新たな起動用プログラムの書き込みが終了する
と、アドレス記憶手段の記憶内容が、前記特定の記憶領
域の先頭アドレスから前記他の記憶領域の先頭アドレス
に変更される。
【0046】そして、アドレス記憶手段内の先頭アドレ
スが変更されると、次に、第4の書換制御手段としての
機能により、前記特定の記憶領域の記憶内容(つまり、
旧来の起動用プログラム)が消去されて、その特定の記
憶領域に、前記他の記憶領域に書き込まれた新たな起動
用プログラムが書き込まれ、前記特定の記憶領域への新
たな起動用プログラムの書き込みが終了すると、アドレ
ス記憶手段の記憶内容が、前記他の記憶領域の先頭アド
レスから前記特定の記憶領域の先頭アドレスに戻され
る。
【0047】そして、このようにして特定の記憶領域に
新たな起動用プログラムが書き込まれると共に、アドレ
ス記憶手段内の先頭アドレスが前記特定の記憶領域の先
頭アドレスに戻された段階で、起動用プログラムの書き
換えが完了する。ここで、上述した状態変移は、起動用
プログラムを何の不具合もなく書き換えることができた
場合のものであるが、もし、前記特定の記憶領域に格納
された旧来の起動用プログラムが消去されてから、その
記憶領域に新たな起動用プログラムが書き込まれるまで
の間に、電子装置への電源供給が遮断されるなどして電
子装置側の処理が中断され、起動用プログラムの書き換
えに失敗した場合には、例えば、電子装置にメモリ書換
装置を接続したままで、再度、予め定められた前記起動
条件を成立させると共に、メモリ書換装置から電子装置
へ、上記書換制御用プログラムDを送信し、その後、書
き換えるべき新たな起動用プログラムを送信してやれば
良い。
【0048】即ち、この場合において電子装置側では、
前回に演算処理手段が第3の書換制御手段として機能し
たことにより、前記他の記憶領域に新たな起動用プログ
ラムが書き込まれていると共に、アドレス記憶手段内の
先頭アドレスが前記他の記憶領域の先頭アドレスに変更
されているため、上記起動条件が成立すると、演算処理
手段が、前記他の記憶領域に書き込まれた新たな起動用
プログラムを実行する。
【0049】そして、このように前記他の記憶領域に書
き込まれた新たな起動用プログラムが実行されること
で、起動用プログラムの書き換え作業を1度目に行った
場合と全く同様に、メモリ書換装置からの書換制御用プ
ログラムDが受信されて揮発性メモリに格納され、その
後、この書換制御用プログラムDが揮発性メモリ上で実
行されることにより、演算処理手段が、前述した第3及
び第4の書換制御手段として機能して、前記特定の記憶
領域内の起動用プログラムが新たな起動用プログラムに
書き換えられることとなる。
【0050】以上のように、請求項3に記載のメモリ書
換システムでは、起動用プログラムが本来格納される特
定の記憶領域の記憶内容を書き換える前に、メモリ書換
装置から送信されて来た新たな起動用プログラムを他の
記憶領域に書き込んでおくと共に、予め定められた起動
条件の成立時に演算処理手段が実行すべきプログラムの
格納先を示すアドレス記憶手段の記憶内容を、前記特定
の記憶領域の先頭アドレスから前記他の記憶領域の先頭
アドレスに変更しておくようにしている。
【0051】よって、起動用プログラムの書き換えに1
度失敗して、起動用プログラムが本来格納される特定の
記憶領域の記憶内容が不定になったとしても、予め定め
られた起動条件を成立させれば、前記他の記憶領域に書
き込まれた新たな起動用プログラムが実行されて、起動
用プログラムの書き換え作業を再度行うことができ、こ
の結果、請求項1に記載のメモリ書換システムと同様
に、起動用プログラムを確実に書き換えることができる
ようになる。
【0052】尚、演算処理手段が第3の書換制御手段と
して機能している最中(つまり、メモリ書換装置からの
新たな起動用プログラムを前記他の記憶領域に書き込ん
でいる最中)に、電源供給の遮断などにより書換制御用
プログラムDが消失又は破壊された場合には、起動用プ
ログラムの書き換えに失敗していない正常時と全く同様
に、前記特定の記憶領域に旧来の起動用プログラムが格
納されたままであると共に、アドレス記憶手段に前記特
定の記憶領域の先頭アドレスが記憶されたままであるた
め、起動用プログラムの書き換えを再度行うことがで
き、問題はない。
【0053】ところで、上記説明では、起動用プログラ
ムの書き換えに1度失敗して、2度目の書き換え作業を
行う場合にも、メモリ書換装置から電子装置へ、上記書
換制御用プログラムDを送信すると共に、新たな起動用
プログラムを送信するようにしたが、このようにした場
合、2度目の書き換え時において、演算処理手段が第3
の書換制御手段として機能している最中に、電源供給の
遮断などにより書換制御用プログラムDが消失又は破壊
されてしまうと、もはや起動用プログラムの書き換えを
行うことができなくなってしまう可能性がある。
【0054】つまり、1度目の失敗時点では、前述した
ように起動用プログラムが本来格納される特定の記憶領
域の記憶内容が不定になっている。そして、2度目の書
き換え時において、演算処理手段が第3の書換制御手段
としての機能を果たせば問題はないが、演算処理手段が
第3の書換制御手段として機能している最中に、万が
一、電源供給の遮断などにより書換制御用プログラムD
が消失又は破壊されてしまうと、前回の書き換え時に前
記他の記憶領域に書き込まれた新たな起動用プログラム
を失ってしまい、この結果、次の3度目の書き換え時に
おいて、上記起動条件を成立させても、電子装置はメモ
リ書換装置と間で通信を行うことができなくなってしま
うのである。
【0055】そこで、起動用プログラムの書き換えに1
度失敗して特定の記憶領域の記憶内容が消去されてしま
うか或いは不定になった後、2度目以降の書き換え作業
を行う場合には、メモリ書換装置から電子装置へ送信す
る書換制御用プログラムとして、演算処理手段を前述し
た第4の書換制御手段としてのみ機能させるプログラム
(以下、書換制御用プログラムEという)を送信するよ
うにすれば、起動用プログラムの書き換えを何度でもや
り直すことが可能となり、起動用プログラムを一層確実
に書き換えることができる。即ち、2度目以降の書き換
え時に、上記書換制御用プログラムEを送信するように
すれば、演算処理手段は第3の書換制御手段として機能
しないため、最初の書き換え時に前記他の記憶領域に書
き込まれた新たな起動用プログラムを破壊してしまう可
能性がなくなる。このため、起動用プログラムの書き換
えを何度でもやり直すことができ、延いては、起動用プ
ログラムを一層確実に書き換えることが可能となるので
ある。尚、このように2度目以降の書き換え時におい
て、メモリ書換装置から電子装置へ、演算処理手段を第
4の書換制御手段としてのみ機能させる書換制御用プロ
グラムEを送信する場合には、電子装置へ新たな起動用
プログラムを送信する必要はない。
【0056】ところで、このように起動用プログラムの
書き換えを最初に行う場合と、その際の書き換えに失敗
して2度目以降の書き換えを行う場合とで、2種類の書
換制御用プログラム(上記書換制御用プログラムDと書
換制御用プログラムE)を使い分けるようにすると、作
業が複雑になってしまうという面もある。
【0057】そこで、前述した請求項2に記載のメモリ
書換システムと全く同様に、起動用プログラムを書き換
える場合にメモリ書換装置から電子装置へ送信される書
換制御用プログラムを、請求項4に記載の如く構成すれ
ば、作業を複雑にすることなく、起動用プログラムの書
き換えを何度でもやり直すことができるようになる。
【0058】即ち、起動用プログラムの書き換えに失敗
しておらず、アドレス記憶手段に前記特定の記憶領域の
先頭アドレスが記憶されている場合には、演算処理手段
が第3の書換制御手段及び第4の書換制御手段として機
能し、また、前回に起動用プログラムの書き換えに失敗
しており、アドレス記憶手段に前記他の記憶領域の先頭
アドレスが記憶されている場合には、演算処理手段が第
4の書換制御手段としてのみ機能することとなり、1種
類の書換制御用プログラムだけで、起動用プログラムの
書き換えを何度でもやり直すことができるようになる。
【0059】一方、請求項1,2に記載のメモリ書換シ
ステムにおいて、演算処理手段が第1の書換制御手段と
して機能することで旧来の起動用プログラムが書き込ま
れる他の記憶領域、及び、請求項3,4に記載のメモリ
書換システムにおいて、演算処理手段が第3の書換制御
手段として機能することで新たな起動用プログラムが書
き込まれる他の領域は、特別に用意した記憶領域でも良
いが、請求項5に記載のように、前記他の記憶領域とし
て、演算処理手段が所定の制御対象を制御するために実
行する制御プログラムが格納された記憶領域を用いれ
ば、不揮発性メモリのメモリ容量を抑えることができ
る。
【0060】尚、このようにすると、起動用プログラム
を書き換える場合に、旧来の起動用プログラム或いは新
たな起動用プログラムが上記制御プログラムの記憶領域
に書き込まれて、その制御プログラムが破壊されてしま
うが、起動用プログラムの書き換えが完了した後で、前
記他の記憶領域として用いられる記憶領域の記憶内容
を、制御プログラムに書き換える作業を行えば良い。
【0061】また、本発明において、プログラムとは、
そのプログラムを構成するプログラムコードだけではな
く、該プログラムの実行時に参照されるデータを含むも
のである。
【0062】
【発明の実施の形態】以下、本発明が適用された実施例
について図面を用いて説明する。尚、本発明の実施の形
態は、下記の実施例に何ら限定されることなく、本発明
の技術的範囲に属する限り、種々の形態を採り得ること
は言うまでもない。
【0063】[第1実施例]まず、図1は、自動車に搭
載されて内燃機関型エンジンの制御を行うエンジン制御
装置(以下、ECUという)2と、ECU2に内蔵され
たプログラムを書き換える際に、ECU2に接続される
メモリ書換装置4とからなる、第1実施例の電子装置の
メモリ書換システム5の全体構成を表すブロック図であ
る。
【0064】図1に示すように、電子装置としてのEC
U2は、エンジンの運転状態を検出する様々なセンサか
らの信号を入力して波形処理する入力回路6と、入力回
路6からのセンサ信号に基づき、エンジンを制御するた
めの様々な処理を実行するシングルチップマイクロコン
ピュータ(以下、マイコンという)8と、マイコン8か
らの制御信号に基づき、エンジンに取り付けられたイン
ジェクタ(燃料噴射弁)やイグナイタ等のアクチュエー
タへ駆動信号を出力する出力回路10とを備えている。
【0065】そして、マイコン8には、プログラムを実
行する演算処理手段としてのCPU18と、電気的にデ
ータの消去及び書き込みが可能であると共に、CPU1
8により実行されるプログラムを格納する不揮発性のフ
ラッシュROM20と、CPU18の演算結果等を一時
格納する揮発性のRAM22と、前記入力回路6等から
の信号を受けると共に、出力回路10に制御信号を出力
するためのI/O24と、メモリ書換装置4との間でシ
リアルデータ通信を行うための通信回路25とが備えら
れている。
【0066】ここで、フラッシュROM20の記憶領域
は、エンジン制御用の制御プログラム(以下、エンジン
制御プログラムという)を格納するためのメインフラッ
シュ領域20aと、リセット解除の直後に実行される起
動用プログラム(以下、ブートソフトという)を格納す
るためのブートフラッシュ領域20bとの、少なくとも
2つに分けられている。
【0067】そして、本実施例においては、図5(1)
に示すように、上記メインフラッシュ領域20aは、フ
ラッシュROM20の記憶領域のうち、$00000番
地から$17FFF番地までの領域として設定されてお
り、このメインフラッシュ領域20aには、エンジン制
御プログラムが既に書き込まれている。また、上記ブー
トフラッシュ領域20bは、フラッシュROM20の記
憶領域のうち、$20000番地から$20FFF番地
までの領域として設定されており、このブートフラッシ
ュ領域20bには、ブートソフトが既に書き込まれてい
る。尚、「$」は、その後に続く文字(0〜9,A〜
F)が16進数を表すことを示している。
【0068】一方更に、図示はされていないが、マイコ
ン8には、リセット解除の直後にCPU18が実行すべ
きプログラムの先頭番地(即ち、フラッシュROM20
におけるブートソフトの格納先の先頭番地)を示す、リ
セットベクタアドレスを記憶するアドレス記憶手段とし
てのベクタアドレスメモリが備えられている。そして、
正常時において、このベクタアドレスメモリには、図5
(1)に示すように、リセットベクタアドレスとして、
ブートフラッシュ領域20bの先頭番地である$200
00番地が記憶されている。
【0069】このようなECU2において、マイコン8
内のCPU18は、リセット解除の直後に、上記ベクタ
アドレスメモリに記憶されたリセットベクタアドレスを
参照して、そのリセットベクタアドレスが示す番地から
プログラムを実行する。そして、これにより、正常時に
おいては、まず最初にブートフラッシュ領域20b内の
ブートソフトを起動し、このブートソフトの実行により
後述するように書換モードではないと判定すると、その
ブートソフトにてメインフラッシュ領域20a内のエン
ジン制御プログラムをコールして、エンジンの制御を行
う。
【0070】また、CPU18は、ブートソフトの実行
により後述するように書換モードであると判定すると、
エンジン制御プログラムをコールすることなく、メモリ
書換装置4から送信されて来る書換制御用プログラム
(以下、書換制御ソフトという)を受信してRAM22
に格納し、その書換制御ソフトをコールしてRAM22
上で実行する。そして、これにより、フラッシュROM
20の記憶領域のうち、メモリ書換装置4からの書換制
御ソフトによって指示される領域内のプログラムを、そ
の後メモリ書換装置4から送信されて来る新たなプログ
ラムに書き換える書換処理を行う。
【0071】次に、メモリ書換装置4は、ECU2側の
マイコン8にフラッシュROM20の書き換えを行わせ
るための処理を実行するCPU,ROM,RAM等を内
蔵したマイコン30と、このマイコン30からの指令に
応じて、ECU2側のマイコン8へ、フラッシュROM
20のデータ書換時に必要な書換電圧(本実施例では1
2V)Vppを供給する電源回路32と、ECU2の動
作モードを、エンジンの制御を行う通常モードからフラ
ッシュROM20のデータを書き換える書換モードに変
更させるための書換スイッチSWとを備えている。
【0072】そして更に、メモリ書換装置4は、ECU
2へ送信する書換制御ソフト(詳しくは、書換制御ソフ
トを構成するプログラムコード及びその実行時に参照さ
れるデータ)が格納された第1のROM34と、ECU
2へ送信すべき書込データ(即ち、フラッシュROM2
0に書き込むべき新たなプログラムであり、以下、新ソ
フトともいう)が格納された第2のROMと36と、マ
イコン30からの指令に応じて各種メッセージを表示す
る表示装置37とを備えている。尚、第1のROM34
と第2のROM36は、夫々、周知のICソケット3
8,40によって、当該メモリ書換装置4に着脱可能に
設けられている。
【0073】このようなメモリ書換装置4とECU2と
の接続は、図1に示す如く、メモリ書換装置4側の雌コ
ネクタ42FとECU2に設けられた雄コネクタ42M
とを嵌合することにより行われる。即ち、上記両コネク
タ42F,42Mが嵌合されると、通信線44を介し
て、メモリ書換装置4側のマイコン30とECU2側の
マイコン8との間におけるシリアルデータ通信が可能と
なり、また、電源供給線46を介して、メモリ書換装置
4側の電源回路32からECU2側のマイコン8へフラ
ッシュROM20のデータ書換時に必要な書換電圧Vp
pが供給される。そして更に、メモリ書換装置4側で書
換スイッチSWを介して接地電位(0V)に接続される
信号線48が、ECU2側で抵抗器Rにより5Vにプル
アップされたモード判定用信号ラインLに接続され、こ
れにより、メモリ書換装置4側で書換スイッチSWがO
Nされると、ECU2側においては上記モード判定用信
号ラインLがハイレベル(5V)からロウレベル(0
V)に変化することとなる。そして、ECU2のマイコ
ン8は、前述の如くブートソフトを起動した際に、モー
ド判定用信号ラインLがロウレベルであれば、書換モー
ドと判定する。
【0074】次に、ECU2側で実行される処理と、メ
モリ書換装置4側で実行される処理とについて、図2〜
図4のフローチャートを用いて説明する。尚、図2は、
ECU2側で実行される処理全体を表すフローチャート
であり、そのステップ(以下、単に「S」と記す)10
0〜S140の処理が、ブートソフトによって実行さ
れ、S200の処理が、メインフラッシュ領域20a内
のエンジン制御プログラムによって実行され、S300
の処理が、メモリ書換装置4から送信されてRAM22
に格納される書換制御ソフトによって実行される。そし
て、図3は、特にフラッシュROM20内のブートソフ
トを書き換える際にメモリ書換装置4からECU2に送
信されて、図2のS300で実行される書換制御ソフト
の処理内容を表すフローチャートである。また、図4
は、メモリ書換装置4側で実行される処理を表すフロー
チャートである。
【0075】まず、ECU2では、車両のイグニッショ
ンスイッチがONされるなどして電源が投入され、マイ
コン8内のCPU18がリセット状態から動作を開始す
ると(リセットが解除されると)、前述したベクタアド
レスメモリに記憶されているリセットベクタアドレスに
より指定されるフラッシュROM20内の番地からプロ
グラムの実行が開始され、これにより、正常時には、ブ
ートフラッシュ領域20bに格納されたブートソフトが
起動する。
【0076】そして、図2に示すように、まずS100
にて、書換モードであるか否かを、モード判定用信号ラ
インLがロウレベルであるか否かによって判定し、モー
ド判定用信号ラインLがロウレベルでなければ、書換モ
ードではない通常モードであると判断して、S110に
進み、エンジン制御プログラムへジャンプする。
【0077】すると、メインフラッシュ領域20aに格
納されているエンジン制御プログラムが起動され、その
後は、S200に示すように、エンジン制御用の制御デ
ータを参照して行われるエンジン制御処理が実行され
る。尚、S200のエンジン制御処理は、入力回路6か
らの各種センサ信号とメインフラッシュ領域20aに格
納された制御データとに基づき、エンジンに対する最適
な燃料噴射量や点火時期等を演算し、その演算結果に応
じて、インジェクタやイグナイタ等のアクチュエータを
駆動するための制御信号を出力回路10に出力する、と
いった手順で繰り返し実行される。そして、このような
エンジン制御処理が実行されることにより、エンジンの
運転が可能となる。
【0078】一方、ブートソフトにおいて、上記S10
0で書換モードであると判断した場合、即ち、当該EC
U2にメモリ書換装置4が接続されて書換スイッチSW
がONされることにより、モード判定用信号ラインLが
ロウレベルであった場合には、エンジン制御プログラム
へジャンプすることなく、そのままS120に移行す
る。
【0079】そして、このS120にて、メモリ書換装
置4との間で行うシリアルデータ通信の通信速度や通信
フォーマット等の通信規約を設定したり、その後メモリ
書換装置4から送信されて来る書換制御ソフトのRAM
22における格納領域を設定する設定処理を行う。そし
て更に、続くS130にて、メモリ書換装置4から後述
するように送信されて来る書換制御ソフトを、上記S1
20で設定した通信規約に従い受信して、その受信した
書換制御ソフトを上記S120で設定したRAM22の
格納領域に順次格納する。
【0080】そして、続くS140にて、S130でR
AM22に格納した書換制御ソフトへジャンプする。こ
れにより、メモリ書換装置4から送信されて来た書換制
御ソフトがRAM22上で実行されて、フラッシュRO
M20の記憶領域のうち、その書換制御ソフトにより指
示される領域のプログラムを、メモリ書換装置4から送
信されて来る新たなプログラム(新ソフト)に書き換え
るための、S300の書換処理が行われる。
【0081】ここで、メモリ書換装置4から送信されて
上記S300で実行される書換制御ソフトには、フラッ
シュROM20にてデータの書き換えを行うべき記憶領
域(以下、書換対象領域という)を示す情報が付与され
ており、その書換制御ソフトの処理内容としては、基本
的には、上記書換対象領域の記憶内容を消去し、その
後、メモリ書換装置4から送信されて来る新ソフトを受
信して、その受信した新ソフトを上記消去した書換対象
領域に書き込む、といったものである。
【0082】よって、メモリ書換装置4からECU2
へ、メインフラッシュ領域20aを書換対象領域とする
書換制御ソフトを送信し、その後に、新ソフトとして新
たなエンジン制御プログラムを送信してやれば、その新
たなエンジン制御プログラムが旧来のエンジン制御プロ
グラムに代えてメインフラッシュ領域20aに書き込ま
れ、この結果、ECU2のエンジンに対する制御内容
(即ち、図2のS200で実行されるエンジン制御処理
の内容)を変更することができる。
【0083】また同様に、メモリ書換装置4からECU
2へ、ブートフラッシュ領域20bを書換対象領域とす
る書換制御ソフトを送信し、その後に、新ソフトとし
て、図2のS120における設定内容(即ち、メモリ書
換装置4との間の通信規約や書換制御ソフトのRAM2
2における格納領域等)が異なる新たなブートソフトを
送信してやれば、その新たなブートソフトが旧来のブー
トソフトに代えてブートフラッシュ領域20bに書き込
まれる。そして、これにより、メモリ書換装置4とEC
U2との間の通信規約を変更したり、RAM22の容量
やアドレス空間が変更された場合などに書換制御ソフト
のRAM22における格納領域を修正したりすることが
でき、様々な設計変更に対応することができるようにな
る。
【0084】しかしながら、ブートソフトの書き換え
を、ただ単にエンジン制御プログラムを書き換える場合
と同様の手順で行うようにすると、次にような問題が生
じる。即ち、ブートソフトを書き換える際において、ブ
ートフラッシュ領域20bの記憶内容(つまり、旧来の
ブートソフト)が消去されてから、そのブートフラッシ
ュ領域20bに新たなブートソフトが完全に書き込まれ
るまでの間に、万が一、ECU2への電源供給が遮断さ
れてしまったり或いはノイズの影響などによって、RA
M22に格納された書換制御ソフトが消失又は破壊され
てしまうと、この場合には、ECU2に電源を再度投入
してブートソフトの書き換え作業を改めてやり直そうと
しても、リセット解除の直後に実行されるブートソフト
が失われているため、ECU2側のマイコン8では、図
2に示したS100〜S140の処理を行うことができ
ず、この結果、ECU2が全く機能しないものとなって
しまうのである。尚、エンジン制御プログラムを書き換
える場合には、上記の如くプログラムの書き換え中に書
換制御ソフトが消失又は破壊されても、ブートソフトが
フラッシュROM20内に存在するため、プログラムの
書き換え作業を始めからやり直すことができ、問題はな
い。
【0085】そこで、上記問題を解決するために、本実
施例においては、フラッシュROM20内のブートソフ
トを書き換える際に、メモリ書換装置4からECU2
へ、図3に示すブートソフト書換専用の書換制御ソフト
を送信するようにしている。そこで次に、本実施例にお
いてフラッシュROM20内のブートソフトを書き換え
る際に、メモリ書換装置4から送信されて図2のS30
0にてRAM22上で実行される書換制御ソフトの処理
内容について、図3に基づき、図5及び図6を参照しつ
つ説明する。尚、図3における(1)〜(8)の番号
は、そのステップが、図5における(1)〜(8)の各
状態に対応していることを示しており、同様に、図3に
おける(A)〜(E)の番号は、そのステップが、図6
に示す(A)〜(E)の各状態に対応していることを示
している。
【0086】図3に示すように、ECU2側のCPU1
8がブートソフトを書き換えるための書換制御ソフトの
実行を開始すると、まずS400にて、ベクタアドレス
メモリに記憶されているリセットベクタアドレスが、正
常時に設定される$20000番地(ブートフラッシュ
領域20bの先頭番地)であるか、或いは、メインフラ
ッシュ領域20aの先頭番地である$00000番地で
あるかを調べる。
【0087】ここで、図5(1)の如くリセットベクタ
アドレスが$20000番地であれば、通常の状態(正
常時)であると判断してS405に進み、このS405
にて、図5(2)に示すように、メインフラッシュ領域
20aの記憶内容を消去する。
【0088】次にS410にて、図5(3)に示すよう
に、ブートフラッシュ領域20bに現在格納されている
旧来のブートソフト(以下、旧ブートソフトという)
を、メインフラッシュ領域20aの$00000番地か
ら$00FFF番地までの領域に、$00000番地か
ら順にコピーし、続くS415にて、その領域($00
000番地〜$00FFF番地)にコピーした内容と、
ブートフラッシュ領域20b内の旧ブートソフトとを比
較(ベリファイ)する。
【0089】そして、続くS420にて上記S415の
ベリファイ結果を判定し、コピーした内容と旧ブートソ
フトとが一致していたならば(つまり、ベリファイの結
果がOKならば)、次のS425に進んで、図5(4)
に示すように、ベクタアドレスメモリに記憶されている
リセットベクタアドレスを、本来の$20000番地か
ら、旧ブートソフトをコピーしたメインフラッシュ領域
20aの先頭番地である$00000番地に変更する。
【0090】このようにリセットベクタアドレスを変更
したら、S430に進んで、図5(5)に示すように、
ブートフラッシュ領域20bの記憶内容(即ち、旧ブー
トソフト)を消去する。そして、続くS435にて、メ
モリ書換装置4に対し新ソフトを要求するための「要求
信号」を送信する。
【0091】すると、後述するようにメモリ書換装置4
は、上記「要求信号」に応答して当該ECU2へ新ソフ
ト(この場合は、新たなブートソフトであり、以下、新
ブートソフトという)を送信するため(図4のS50
5,S510参照)、続くS440にて、メモリ書換装
置4から送信されて来る新ブートソフトを受信して、図
5(6)に示すように、その受信した新ブートソフトを
ブートフラッシュ領域20bに、$20000番地から
順に書き込む。
【0092】そして、続くS445にて、上記S440
でブートフラッシュ領域20bに書き込んだ新ブートソ
フトを読み出して、メモリ書換装置4へ送信する。する
と、後述するようにメモリ書換装置4は、当該ECU2
から上記S445で送信した新ブートソフトと、上記
「要求信号」に応答して送信した自分側のマスターの新
ブートソフトとを比較(ベリファイ)して、両ソフトが
一致していれば、当該ECU2に新ソフトの書き込みが
良好であったことを示す「OK信号」を送信し、そうで
なければ、当該ECU2に新ソフトの書き込みが不良で
あったことを示す「NG信号」を送信する(図4のS5
15〜S530,S545参照)。
【0093】そこで、次のS450にて、メモリ書換装
置4からの信号を受信して、その信号の種類を判別し、
それが「OK信号」であれば、ブートフラッシュ領域2
0bに新ブートソフトを正しく書き込むことができたと
判断して、続くS455に進み、このS455にて、図
5(7)に示すように、ベクタアドレスメモリに記憶さ
れているリセットベクタアドレスを、上記S425で変
更した$00000番地から本来の$20000番地に
変更する。そして、続くS460にて、図5(8)に示
すように、旧ブートソフトがコピーされていたメインフ
ラッシュ領域20aの記憶内容を消去し、更に続くS4
65にて、メモリ書換装置4に、プログラムの書き換え
が正常に終了したことを示す「正常終了信号」を送信し
て、当該書換制御ソフトによる書換処理を終了する。
【0094】これに対し、上記S450にて、メモリ書
換装置4からの信号が「NG信号」であると判定した場
合には、S455〜S465の処理を行うことなく、即
ち、リセットベクタアドレスを$00000番地にし且
つメインフラッシュ領域20aに旧ブートソフトを格納
したままで、当該書換制御ソフトによる書換処理を終了
する。
【0095】また、上記S420にて、メインフラッシ
ュ領域20aの$00000番地〜$00FFF番地ま
での領域にコピーした内容と、ブートフラッシュ領域2
0b内の旧ブートソフトとが一致していないと判定した
場合には(つまり、S415でのベリファイの結果がN
Gならば)、S470に移行して、メモリ書換装置4
に、ブートソフトの書き換えが正常に終了しなかったこ
とを示す「異常終了信号」を送信し、その後、当該書換
制御ソフトによる書換処理を終了する。
【0096】一方、当該書換制御ソフトの実行が開始さ
れた直後に行われるS400の判定にて、リセットベク
タアドレスが$00000番地であると判定した場合に
は、前述したS405〜S425の処理を行うことな
く、S430以降の処理を行う。そして、これにより、
当該書換制御ソフトの実行開始時点で図6(A)に示す
如くリセットベクタアドレスが$00000番地であっ
た場合には、図6(B)〜(E)に示すように、図5
(5)〜(8)と同じ手順でブートソフトの書き換えが
行われる。
【0097】尚、フラッシュROM20内のエンジン制
御プログラムを書き換えるためにメモリ書換装置4から
送信される書換制御ソフト(以下、エンジン制御プログ
ラムを書き換えるための書換制御ソフトという)の処理
内容は、図3に示した処理内容に対し、S400〜S4
25,S455,S460,及びS470が除かれたS
430〜S450,及びS465の処理からなると共
に、書換対象領域(つまり、S430で記憶内容が消去
される領域と、S440で新ソフトが書き込まれる領
域)として、メインフラッシュ領域20a($0000
番地〜$17FFF番地)が指示されたものとなる。
【0098】次に、メモリ書換装置4では、作業者によ
りECU2に接続されて書換スイッチSWがONされる
と、マイコン30(詳しくは、マイコン30内のCP
U)が、図4に示す処理を実行する。尚、ECU2側の
ブートプログラムを書き換える場合には、作業者は、第
1のROM34として、図3の書換制御ソフトが格納さ
れたものを、ICソケット38に予め装着しておくと共
に、第2のROM36として、新ブートソフトが格納さ
れたものを、ICソケット40に予め装着しておく。ま
た、ECU2側のエンジン制御プログラムを書き換える
場合には、作業者は、第1のROM34として、エンジ
ン制御プログラムを書き換えるための書換制御ソフトが
格納されたものを、ICソケット38に予め装着してお
くと共に、第2のROM36として、新たなエンジン制
御プログラムが格納されたものを、ICソケット40に
予め装着しておく。
【0099】図4に示すように、書換スイッチSWがO
Nされてメモリ書換装置4側のマイコン30が処理の実
行を開始すると、まずS500にて、第1のROM34
に格納されている書換制御ソフトを読み出し、ECU2
側で図2に示したブートソフトのS120の設定処理が
終わると見なされる時間が経過した後、上記読み出した
書換制御ソフトをECU2に送信する。
【0100】すると、ECU2は、前述したように当該
メモリ書換装置4からの書換制御ソフトを受信してRA
M22上で実行し、図3に示したS435の処理により
当該メモリ書換装置4へ新ソフトの「要求信号」を送信
して来る。また、第1のROM34にブートソフトを書
き換えるための書換制御ソフトが格納されている場合
(即ち、ブートソフトを書き換える場合)には、ECU
2は、「要求信号」ではなく、図3に示したS470の
処理により当該メモリ書換装置4へ「異常終了信号」を
送信して来る場合もある。
【0101】そこで、続くS505にて、ECU2から
送信されて来る信号を受信して、その信号の種類を判別
し、それが「要求信号」であれば、次のS510に進
む。そして、このS510にて、第2のROM36に格
納されている新ソフトを読み出してECU2に送信す
る。
【0102】すると、ECU2は、図3に示したS44
0の処理により、上記S510で送信された新ソフトを
フラッシュROM20に書き込むと共に、図3に示した
S445の処理により、フラッシュROM20に書き込
んだ新ソフトを読み出して当該メモリ書換装置4に送信
するため、続くS515にて、そのECU2からの新ソ
フトを受信し、更に続く520にて、S515で受信し
たECU2からの新ソフトと、第2のROM36に格納
されているマスターの新ソフトとをベリファイする。
【0103】そして、続くS525にて上記S520の
ベリファイ結果を判定し、ECU2からの新ソフトとマ
スターの新ソフトとが一致していたならば(つまり、ベ
リファイの結果がOKならば)、次のS530に進ん
で、ECU2へ前述した「OK信号」を送信する。そし
て更に、続くS535にて、ECU2から前述した「正
常終了信号」が送信されて来るまで待ち、「正常終了信
号」が送信されて来たならば、次のS540に進んで、
表示装置37に、プログラムの書き換えが無事終了した
ことを示す終了メッセージを表示させ、その後、当該メ
モリ書換装置4側の処理を終了する。
【0104】一方、上記S525にて、ECU2からの
新ソフトとマスターの新ソフトとが一致していないと判
定した場合には(つまり、S520でのベリファイの結
果がNGならば)、S545に移行して、ECU2へ前
述した「NG信号」を送信し、続くS550にて、表示
装置37に、新ソフトのフラッシュROM20への書き
込みに失敗したことを示すエラーメッセージを表示さ
せ、その後、当該メモリ書換装置4側の処理を終了す
る。
【0105】また、上記S505にて、ECU2からの
信号が「異常終了信号」であると判定した場合には、S
550に移行して、表示装置37に、図3に示したS4
10の処理で旧ブートソフトのメインフラッシュ領域2
0aへのコピーに失敗したことを示すエラーメッセージ
を表示した後、当該メモリ書換装置4側の処理を終了す
る。
【0106】よって、作業者は、表示装置37の表示内
容を見ることにより、プログラムの書き換えが無事終了
したか否かを知ることができると共に、プログラムの書
き換えに失敗した場合には、そのエラーモードが、図3
に示したS440の処理で新ソフトのフラッシュROM
20への書き込みに失敗したものなのか、或いは、図3
に示したS410の処理で旧ブートソフトのメインフラ
ッシュ領域20aへのコピーに失敗したものなのかを判
別することができる。
【0107】以上のような第1実施例のメモリ書換シス
テム5において、ECU2のフラッシュROM20に格
納されたブートソフトを書き換える場合には、作業者
は、まず、メモリ書換装置4のICソケット38に、ブ
ートソフトを書き換えるための図3に示した書換制御ソ
フトが格納された第1のROM34を装着すると共に、
ICソケット40に、書き換えるべき新ブートソフトが
格納された第2のROM36を装着する。そして、メモ
リ書換装置4をECU2に接続して、メモリ書換装置4
の書換スイッチSWをOFF状態からON状態にすると
共に、車両のイグニッションスイッチをOFF状態から
ON状態にしてECU2を初期状態から作動させる。
【0108】すると、メモリ書換装置4では、図4に示
した処理の実行が開始されて、図3に示したブートソフ
ト書換専用の書換制御ソフトがメモリ書換装置4からE
CU2に送信される(S500)。また、ECU2側で
は、前述したように、正常時においては、図5(1)に
示す如くリセットベクタアドレスとして$20000番
地が記憶されているため、フラッシュROM20のブー
トフラッシュ領域20bに格納されているブートソフト
(即ち、今回書き換えようとしている旧ブートソフト)
が起動され、その旧ブートソフトが実行されることによ
り、メモリ書換装置4からの書換制御ソフトがRAM2
2に転送されて起動される(S100:YES,S12
0〜S140)。
【0109】このようにしてECU2側で書換制御ソフ
トの実行が開始されると、図3のS400にて、リセッ
トベクタアドレスが$20000番地であると判定さ
れ、まず最初に、図5(2)に示す如く、メインフラッ
シュ領域20aの記憶内容が消去され(S405)、次
に、図5(3)に示す如く、ブートフラッシュ領域20
b内の旧ブートソフトが、メインフラッシュ領域20a
の$00000番地から$00FFF番地までの領域に
コピーされる(S410)。
【0110】そして、旧ブートソフトがメインフラッシ
ュ領域20aに正しくコピーされたならば(S415,
S420:YES)、図5(4)に示す如く、リセット
ベクタアドレスが$20000番地から$00000番
地に変更され(S425)、次に、図5(5)に示す如
く、ブートフラッシュ領域20b内の旧ブートソフトが
消去される(S430)。
【0111】その後、ECU2からメモリ書換装置4
へ、新ソフトの「要求信号」が送信され(S435)、
これに応答して、メモリ書換装置4から新ブートソフト
が送信される(S505:新ソフトの要求信号,S51
0)。すると、ECU2側では、メモリ書換装置4から
の新ブートソフトを受信して、その受信した新ブートソ
フトを、図5(6)に示す如く、ブートフラッシュ領域
20bに書き込む(S440)。
【0112】そして、メモリ書換装置4からの新ブート
ソフトがブートフラッシュ領域20bに正しく書き込ま
れたならば(S445,S450:OK信号)、図5
(7)に示す如く、リセットベクタアドレスが$000
00番地から本来の$20000番地に戻され(S45
5)、次に、図5(8)に示す如く、メインフラッシュ
領域20a内の旧ブートソフトが消去される(S46
0)。
【0113】この段階で、ECU2側にてブートソフト
を書き換えるための実質的な処理が終了する。そして、
その後、ECU2からメモリ書換装置4へ「正常終了信
号」が送信され(S465)、これに伴い、メモリ書換
装置4側では、その表示装置37に、終了メッセージが
表示される(S540)。
【0114】よって、使用者は、メモリ書換装置4の表
示装置37に終了メッセージが表示されたことを確認す
ることで、ブートソフトの書き換えが無事終了したこと
を知ることができる。ところで、図5における(1)か
ら(8)までの状態変移は、ブートソフトを何の不具合
もなく書き換えることができた場合を示している。
【0115】これに対して、もし、図3におけるS41
0の処理により、ブートフラッシュ領域20b内の旧ブ
ートソフトを、メインフラッシュ領域20aの$000
00番地から$00FFF番地までの領域に正しくコピ
ーすることができなかった場合には(S420:N
O)、リセットベクタアドレスが$20000番地から
変更されることなく、ECU2からメモリ書換装置4へ
「異常終了信号」が送信される(S470)。つまり、
ECU2側の処理は、図5(3)の状態で中止されるこ
ととなる。尚、この場合におけるメインフラッシュ領域
20aの記憶内容は、不定である。
【0116】そして、ECU2から「異常終了信号」が
送信されることに伴い、メモリ書換装置4側では、その
表示装置37に、旧ブートソフトのコピーに失敗したこ
とを示すエラーメッセージが表示される(S505:異
常終了信号,S550)。そこで、使用者は、メモリ書
換装置4の表示装置37に、旧ブートソフトのコピーに
失敗したことを示すエラーメッセージが表示された場合
には、ICソケット38,40に装着した第1及び第2
のROM34,36を取り替えることなく、且つ、メモ
リ書換装置4をECU2に接続したままで、再度、メモ
リ書換装置4の書換スイッチSWをOFF状態からON
状態にすると共に、車両のイグニッションスイッチをO
FF状態からON状態にしてECU2を初期状態から作
動させれば良い。
【0117】すると、この場合には、リセットベクタア
ドレスが$20000番地のままであり、しかも、ブー
トフラッシュ領域20b内の旧ブートソフトは、そのま
ま存在しているため、ECU2側では、前述した正常時
の場合と全く同様に、再び、ブートフラッシュ領域20
b内の旧ブートソフトが起動され、その後、メモリ書換
装置4からの書換制御ソフトがRAM22上で実行され
ることにより、図5(2)から図5(8)までの各状態
を経て、ブートソフトの書き換えが再度行われることと
なる。
【0118】一方、もし、図3におけるS440の処理
により、メモリ書換装置4からの新ブートソフトをブー
トフラッシュ領域20bに正しく書き込むことができな
かった場合には(S450:NG信号)、ECU2側の
処理は、図5(6)の状態で中止されることとなる。
尚、この場合におけるブートフラッシュ領域20bの記
憶内容は不定である。そして、この場合に、メモリ書換
装置4側では、その表示装置37に、新ソフトのフラッ
シュROM20への書き込みに失敗したことを示すエラ
ーメッセージが表示される(S525:NO,S54
5,S550)。
【0119】また、例えば、図3におけるS430の処
理によりブートフラッシュ領域20b内の旧ブートソフ
トが消去されてから、図3におけるS440の処理によ
りメモリ書換装置4からの新ブートソフトがブートフラ
ッシュ領域20bに書き込まれるまでの間に、ECU2
への電源供給が遮断されたり或いはノイズの影響などに
よって、RAM22上で実行中の書換制御ソフトが消失
又は破壊されてしまった場合には、当然、ECU2側の
処理は中止される。そして、この場合には、メモリ書換
装置4側の表示装置37に、メッセージが何も表示され
ない状態が継続することとなる。
【0120】そこで、使用者は、メモリ書換装置4の表
示装置37に、新ソフトのフラッシュROM20への書
き込みに失敗したことを示すエラーメッセージが表示さ
れた場合、或いは、メモリ書換装置4の表示装置37
に、所定時間が経過してもメッセージが何も表示されな
い場合にも、ICソケット38,40に装着した第1及
び第2のROM34,36を取り替えることなく、且
つ、メモリ書換装置4をECU2に接続したままで、再
度、メモリ書換装置4の書換スイッチSWをOFF状態
からON状態にすると共に、車両のイグニッションスイ
ッチをOFF状態からON状態にしてECU2を初期状
態から作動させれば良い。
【0121】すると、この場合に、ECU2側では、前
回に図3におけるS405〜S425の処理が実行され
ており、図6(A)に示す如く、旧ブートソフトがメイ
ンフラッシュ領域20aの$00000番地から$00
FFF番地までの領域にコピーされていると共に、リセ
ットベクタアドレスが$00000番地に変更されてい
るため、メインフラッシュ領域20aにコピーされた旧
ブートソフトが起動される。そして、このメインフラッ
シュ領域20a内の旧ブートソフトが実行されることに
より、メモリ書換装置4からの書換制御ソフトがRAM
22に転送されて起動される。
【0122】つまり、ブートソフトの書き換えに1度失
敗して、ブートフラッシュ領域20bの記憶内容が不定
になっていても、メインフラッシュ領域20aの$00
000番地から$00FFF番地までの領域にコピーさ
れた旧ブートソフトが起動され、これにより、ECU2
は、メモリ書換装置4からの書換制御ソフトを受信して
RAM22上で実行することができるのである。
【0123】このようにしてECU2側で書換制御ソフ
トの実行が開始されると、この場合には、図3のS40
0にて、リセットベクタアドレスが$00000番地で
あると判定され、図3におけるS430以降の処理が実
行されることにより、図5(5)から図5(8)までの
各状態と同様の図6(B)から図6(E)までの各状態
を経て、ブートソフトの書き換えが再度行われることと
なる。
【0124】即ち、まず最初に、図6(B)に示す如
く、ブートフラッシュ領域20bの記憶内容が消去され
る(S430)。尚、この場合に消去される記憶内容は
不定である。次に、ECU2からメモリ書換装置4へ、
新ソフトの「要求信号」が送信され(S435)、これ
に応答して、メモリ書換装置4から新ブートソフトが送
信されるため(S505:新ソフトの要求信号,S51
0)、ECU2側では、メモリ書換装置4からの新ブー
トソフトを受信して、その受信した新ブートソフトを、
図6(C)に示す如く、ブートフラッシュ領域20bに
書き込む(S440)。
【0125】そして、メモリ書換装置4からの新ブート
ソフトがブートフラッシュ領域20bに正しく書き込ま
れたならば(S445,S450:OK信号)、図6
(D)に示す如く、リセットベクタアドレスが$000
00番地から本来の$20000番地に戻され(S45
5)、次に、図6(E)に示す如く、メインフラッシュ
領域20a内の旧ブートソフトが消去される(S46
0)。このようにしてリセットベクタアドレスが$20
000番地に戻されると共に、メインフラッシュ領域2
0a内の旧ブートソフトが消去されると、ECU2から
メモリ書換装置4へ「正常終了信号」が送信され(S4
65)、メモリ書換装置4側の表示装置37に、終了メ
ッセージが表示されるのである(S540)。
【0126】ところで、上述のようにブートソフトの書
き換えが終了した状態では、図5(8)又は図6(E)
のように、メインフラッシュ領域20a内のエンジン制
御プログラムが消去されているため、ブートソフトを書
き換えるための前述した作業に続いて、エンジン制御プ
ログラムの書き込み作業を行えば良い。
【0127】即ち、メモリ書換装置4をECU2に接続
したままで、メモリ書換装置4のICソケット38に、
エンジン制御プログラムを書き換えるための書換制御ソ
フトが格納された第1のROM34を装着すると共に、
ICソケット40に、書き込むべきエンジン制御プログ
ラムが格納された第2のROM36を装着する。
【0128】そして、メモリ書換装置4の書換スイッチ
SWをOFF状態からON状態にすると共に、車両のイ
グニッションスイッチをOFF状態からON状態にして
ECU2を初期状態から作動させれば、フラッシュRO
M20のメインフラッシュ領域20aに第2のROM3
6に格納されているエンジン制御プログラムが書き込ま
れ、これにより、ECU2に対するプログラムの書き換
え作業が全て完了する。
【0129】尚、本第1実施例では、図3におけるS4
00の処理により、アドレス判定手段としての機能が実
現され、図3におけるS405〜S425の処理によ
り、第1の書換制御手段としての機能が実現され、図3
におけるS430〜S455の処理により、第2の書換
制御手段としての機能が実現されている。
【0130】以上詳述したように、本第1実施例のメモ
リ書換システム5では、ブートフラッシュ領域20bの
記憶内容を書き換える前に、そのブートフラッシュ領域
20bに格納されている旧ブートソフトをメインフラッ
シュ領域20aの$00000番地から$00FFF番
地までの領域にコピーすると共に、リセットベクタアド
レスをブートフラッシュ領域20bの先頭番地である$
20000番地から$00000番地に変更しておくよ
うにしている。
【0131】よって、ブートソフトの書き換えに1度失
敗して、ブートフラッシュ領域20bの記憶内容が不定
になったとしても、ECU2へ電源を投入してマイコン
8(CPU18)を初期状態から作動させれば、メイン
フラッシュ領域20aにコピーされた旧ブートソフトが
実行されて、ブートソフトの書き換え作業を再度行うこ
とができ、この結果、ブートソフトを確実に書き換える
ことができるようになる。
【0132】また、本第1実施例では、ブートソフト書
換専用の書換制御ソフトとして、図3に示したように、
リセットベクタアドレスの番地を判定するS400を備
え、リセットベクタアドレスが$00000番地であれ
ば、S405〜S425,S470の処理を行わずにS
430以降の処理だけを行うように切り換えるものを用
いている。
【0133】これは以下の理由による。即ち、ブートソ
フトの書き換えに1度失敗したことによりブートフラッ
シュ領域20bの記憶内容が不定になっている状態で、
2度目の書き換えを行う場合に、図3におけるS405
〜S425,S470の処理が実行されると、ブートフ
ラッシュ領域20b内の不定な記憶内容がメインフラッ
シュ領域20aの$00000番地から$00FFF番
地までの領域にコピーされ、この結果、万が一、この2
度目の書き換え時においても、再びブートソフトの書き
換えに失敗してしまうと、もはやブートソフトの書き換
えを行うことができなくなってしまうからである。
【0134】そこで、本第1実施例で用いるブートソフ
ト書換専用の書換制御ソフトでは、S400の判定処理
により、リセットベクタアドレスが$20000番地で
あるか或いは$00000番地であるかを判定し、リセ
ットベクタアドレスが$00000番地であれば、ブー
トソフトの書き換えに1度失敗した後の2度目以降の書
き換え時であると判断して、S405〜S425,S4
70の処理を行わずにS430以降の処理だけを行うよ
うにしている。
【0135】従って、本第1実施例のメモリ書換システ
ムによれば、ブートソフトの書き換えを何度でもやり直
すことができ、延いては、ブートソフトを一層確実に書
き換えることが可能となる。尚、これに対して、ブート
ソフトの書き換えに失敗していない正常時の場合、或い
は、メモリ書換装置4の表示装置37に旧ブートソフト
のメインフラッシュ領域20aへのコピーに失敗したこ
とを示すエラーメッセージが表示された場合には、図3
に示した書換制御ソフトに対してS400の判定を削除
した書換制御ソフトを、メモリ書換装置4からECU2
に送信するようにし、また、メモリ書換装置4の表示装
置37に新ソフトのフラッシュROM20への書き込み
に失敗したことを示すエラーメッセージが表示された場
合、或いは、メモリ書換装置4の表示装置37に所定時
間が経過してもメッセージが何も表示されない場合には
(つまり、ブートソフトの書き換えに失敗して、ブート
フラッシュ領域20bの記憶内容が不定になってしまっ
た場合には)、図3に示した書換制御ソフトに対してS
400〜S425,S470の処理を削除した書換制御
ソフトを、メモリ書換装置4からECU2に送信するよ
うにしても良い。
【0136】そして、このようにブートソフト書換専用
の書換制御ソフトとして、2種類の書換制御ソフトを状
況に応じて使い分けるようにしても、作業に手間がかか
るものの、第1実施例のメモリ書換システム5と同様の
効果を得ることができる。一方、上記第1実施例では、
ブートフラッシュ領域20b内の旧ブートソフトを、エ
ンジン制御プログラムが格納されるメインフラッシュ領
域20aにコピーするようにしているため、旧ブートソ
フトをコピーするための特別な記憶領域を設ける必要が
なく、フラッシュROM20のメモリ容量を抑えること
ができるという点で有利であるが、旧ブートソフトのコ
ピー先は、フラッシュROM20内の他の領域でも良
し、また、ECU2内にデータの消去及び書き込みが可
能な他のROMが備えられていれば、そのROMの所定
領域でも良い。そして、この場合には、旧ブートソフト
をコピーした後、リセットベクタアドレスを、そのコピ
ー先の領域の先頭番地に変更するように設定すれば良
い。
【0137】[第2実施例]次に、第2実施例の電子装
置のメモリ書換システムについて説明する。第2実施例
のメモリ書換システムでは、上述した第1実施例に対
し、フラッシュROM20内のブートソフトを書き換え
る際にメモリ書換装置4からECU2に送信される書換
制御ソフトの処理内容が、図7に示すようになってお
り、また、メモリ書換装置4側では、図8に示す処理が
実行される。そして、ハードウェア上の構成や、ECU
2側で実行されるブートソフトの処理内容(図2のS1
00〜S140)などの他の部分については、第1実施
例の場合と全く同じである。
【0138】そこで、まず、第2実施例のメモリ書換シ
ステムにおいて、フラッシュROM20内のブートソフ
トを書き換える際にメモリ書換装置4からECU2に送
信される、ブートソフト書換専用の書換制御ソフトの処
理内容について、図7に基づき、図9及び図10を参照
しつつ説明する。
【0139】尚、図7に示す書換制御ソフトも、第1実
施例の場合と同様に、ECU2側のCPU18により図
2のS300にてRAM22上で実行される。また、図
7における(1)〜(8)の番号は、そのステップが、
図9における(1)〜(8)の各状態に対応しているこ
とを示しており、同様に、図7における(A)〜(E)
の番号は、そのステップが、図10に示す(A)〜
(E)の各状態に対応していることを示している。
【0140】図7に示すように、ECU2側のCPU1
8がブートソフトを書き換えるための書換制御ソフトの
実行を開始すると、まずS600にて、ベクタアドレス
メモリに記憶されているリセットベクタアドレスが、$
20000番地であるか或いは$00000番地である
かを調べる。
【0141】そして、図9(1)の如くリセットベクタ
アドレスが$20000番地であれば、通常の状態(正
常時)であると判断してS605に進み、図9(2)に
示すように、メインフラッシュ領域20aの記憶内容を
消去し、続くS610にて、メモリ書換装置4に対し新
ソフトを要求するための「要求信号」を送信する。
【0142】すると、後述するようにメモリ書換装置4
は、上記「要求信号」に応答して当該ECU2へ新ソフ
ト(この場合は、新ブートソフト)を送信するため(図
8のS705,S710参照)、続くS615にて、メ
モリ書換装置4から送信されて来る新ブートソフトを受
信し、図9(3)に示すように、その受信した新ブート
ソフトを、メインフラッシュ領域20aに$00000
番地から順に書き込む。
【0143】そして、続くS620にて、上記S615
でメインフラッシュ領域20aに書き込んだ新ブートソ
フトを読み出して、メモリ書換装置4へ送信する。する
と、後述するようにメモリ書換装置4は、当該ECU2
から上記S620で送信した新ブートソフトと、上記
「要求信号」に応答して送信した自分側のマスターの新
ブートソフトとを比較(ベリファイ)して、両ソフトが
一致していれば、当該ECU2に新ソフトの書き込みが
良好であったことを示す「OK信号」を送信し、そうで
なければ、当該ECU2に新ソフトの書き込みが不良で
あったことを示す「NG信号」を送信する(図8のS7
15〜S730,S745参照)。
【0144】そこで、次のS625にて、メモリ書換装
置4からの信号を受信して、その信号の種類を判別し、
それが「OK信号」であれば、メインフラッシュ領域2
0aに新ブートソフトを正しく書き込むことができたと
判断して、続くS630に進み、このS630にて、図
9(4)に示すように、ベクタアドレスメモリに記憶さ
れているリセットベクタアドレスを、本来の$2000
0番地から、新ブートソフトを書き込んだメインフラッ
シュ領域20aの先頭番地である$00000番地に変
更する。
【0145】このようにリセットベクタアドレスを変更
したら、S635に進んで、図9(5)に示すように、
ブートフラッシュ領域20bの記憶内容(即ち、旧ブー
トソフト)を消去する。そして、続くS640にて、図
9(6)に示すように、メインフラッシュ領域20aに
書き込んだ新ブートソフトを、ブートフラッシュ領域2
0bに、$20000番地から順に書き込んでコピー
し、続くS645にて、そのブートフラッシュ領域20
bにコピーした内容と、メインフラッシュ領域20a内
の新ブートソフトとを比較(ベリファイ)する。
【0146】そして更に、続くS650にて、上記S6
45のベリファイ結果を判定し、コピーした内容と新ブ
ートソフトとが一致していたならば(つまり、ベリファ
イの結果がOKならば)、次のS655に進んで、図9
(7)に示すように、ベクタアドレスメモリに記憶され
ているリセットベクタアドレスを、上記S630で変更
した$00000番地から本来の$20000番地に変
更する。そして、続くS660にて、図9(8)に示す
ように、メインフラッシュ領域20aの記憶内容を消去
し、更に続くS665にて、メモリ書換装置4に、プロ
グラムの書き換えが正常に終了したことを示す「正常終
了信号」を送信して、当該書換制御ソフトによる書換処
理を終了する。
【0147】これに対し、上記S650にて、ブートフ
ラッシュ領域20bにコピーした内容と、メインフラッ
シュ領域20a内の新ブートソフトとが一致していない
と判定した場合には(つまり、S645でのベリファイ
の結果がNGならば)、S655〜S665の処理を行
うことなく、即ち、リセットベクタアドレスを$000
00番地にし且つメインフラッシュ領域20aに新ブー
トソフトを格納したままで、S670に移行する。そし
て、このS670にて、メモリ書換装置4に、ブートソ
フトの書き換えが正常に終了しなかったことを示す「異
常終了信号」を送信し、その後、当該書換制御ソフトに
よる書換処理を終了する。
【0148】また、上記S625にて、メモリ書換装置
4からの信号が「NG信号」であると判定した場合に
は、S630以降の処理を行うことなく、当該書換制御
ソフトによる書換処理を終了する。一方、当該書換制御
ソフトの実行が開始された直後に行われるS600の判
定にて、リセットベクタアドレスが$00000番地で
あると判定した場合には、S675に移行する。
【0149】そして、このS675にて、メモリ書換装
置4に対し、今回の処理ではメインフラッシュ領域20
aに書き込まれた新ブートソフトのブートフラッシュ領
域20bへのコピーだけを行うことを示す「再書き込み
実施信号」を送信し、その後、前述したS605〜S6
30の処理を行うことなく、S635以降の処理を行
う。そして、これにより、当該書換制御ソフトの実行開
始時点で図10(A)に示す如くリセットベクタアドレ
スが$00000番地であった場合には、図10(B)
〜(E)に示すように、図9(5)〜(8)と同じ手順
でブートソフトの書き換えが行われる。
【0150】尚、エンジン制御プログラムを書き換える
ための書換制御ソフトの処理内容は、図7に示した処理
内容に対し、S600,S630〜S660,S67
0,及びS675が除かれた、S605〜S625,及
びS665の処理だけからなるものとなる。
【0151】次に、本第2実施例のメモリ書換システム
において、メモリ書換装置4では、作業者によりECU
2に接続されて書換スイッチSWがONされると、マイ
コン30が、図8に示す処理を実行する。尚、ECU2
側のブートプログラムを書き換える場合には、作業者
は、第1のROM34として、図7の書換制御ソフトが
格納されたものを、ICソケット38に予め装着してお
くと共に、第2のROM36として、新ブートソフトが
格納されたものを、ICソケット40に予め装着してお
く。また、ECU2側のエンジン制御プログラムを書き
換える場合には、作業者は、第1のROM34として、
エンジン制御プログラムを書き換えるための書換制御ソ
フトが格納されたものを、ICソケット38に予め装着
しておくと共に、第2のROM36として、新たなエン
ジン制御プログラムが格納されたものを、ICソケット
40に予め装着しておく。
【0152】図8に示すように、書換スイッチSWがO
Nされてメモリ書換装置4側のマイコン30が処理の実
行を開始すると、まずS700にて、第1のROM34
に格納されている書換制御ソフトを読み出し、ECU2
側で図2に示したブートソフトのS120の設定処理が
終わると見なされる時間が経過した後、上記読み出した
書換制御ソフトをECU2に送信する。
【0153】すると、ECU2は、当該メモリ書換装置
4からの書換制御ソフトを受信してRAM22上で実行
し、図7に示したS610の処理により当該メモリ書換
装置4へ新ソフトの「要求信号」を送信して来る。ま
た、第1のROM34にブートソフトを書き換えるため
の書換制御ソフトが格納されている場合(即ち、ブート
ソフトを書き換える場合)には、ECU2は、「要求信
号」ではなく、図7に示したS675の処理により当該
メモリ書換装置4へ「再書き込み実施信号」を送信して
来る場合もある。
【0154】そこで、続くS705にて、ECU2から
送信されて来る信号を受信して、その信号の種類を判別
し、それが「要求信号」であれば、次のS710に進
む。そして、このS710にて、第2のROM36に格
納されている新ソフトを読み出してECU2に送信す
る。
【0155】すると、ECU2は、図7に示したS61
5の処理により、上記S710で送信された新ソフトを
フラッシュROM20に書き込むと共に、図7に示した
S620の処理により、フラッシュROM20に書き込
んだ新ソフトを読み出して当該メモリ書換装置4に送信
するため、続くS715にて、そのECU2からの新ソ
フトを受信し、更に続く720にて、S715で受信し
たECU2からの新ソフトと、第2のROM36に格納
されているマスターの新ソフトとをベリファイする。
【0156】そして、続くS725にて、上記S720
のベリファイ結果を判定し、ECU2からの新ソフトと
マスターの新ソフトとが一致していたならば(つまり、
ベリファイの結果がOKならば)、次のS730に進ん
で、ECU2へ前述した「OK信号」を送信する。
【0157】そして更に、続くS735にて、ECU2
から前述した「正常終了信号」或いは「異常終了信号」
の何れかが送信されて来るまで待ち、「正常終了信号」
が送信されて来たならば、次のS740に進んで、表示
装置37に、プログラムの書き換えが無事終了したこと
を示す終了メッセージを表示させ、その後、当該メモリ
書換装置4側の処理を終了する。また、ECU2から
「異常終了信号」が送信されて来たならば、S750に
移行して、表示装置37に、図7に示したS640の処
理で新ブートソフトのブートフラッシュ領域20bへの
コピーに失敗したことを示すエラーメッセージを表示し
た後、当該メモリ書換装置4側の処理を終了する。
【0158】また、上記S725にて、ECU2からの
新ソフトとマスターの新ソフトとが一致していないと判
定した場合には(つまり、S720でのベリファイの結
果がNGならば)、S745に移行して、ECU2へ前
述した「NG信号」を送信する。そして、S750に進
み、表示装置37に、新ソフトのフラッシュROM20
への書き込みに失敗したことを示すエラーメッセージを
表示させ、その後、当該メモリ書換装置4側の処理を終
了する。
【0159】一方、上記S705にて、ECU2から送
信されて来た信号が「再書き込み実施信号」であると判
定した場合には、S735にそのまま移行して、ECU
2から「正常終了信号」或いは「異常終了信号」の何れ
かが送信されて来るまで待ち、S730でECU2へ
「OK信号」を送信した場合と同様に、ECU2からの
信号の種別に応じて、表示装置37にメッセージを表示
した後、当該メモリ書換装置4側の処理を終了する。つ
まり、ECU2から「正常終了信号」が送信されて来た
ならば、表示装置37に、プログラムの書き換えが無事
終了したことを示す終了メッセージを表示させ、逆に
「異常終了信号」が送信されて来たならば、表示装置3
7に、新ブートソフトのブートフラッシュ領域20bへ
のコピーに失敗したことを示すエラーメッセージを表示
して、当該メモリ書換装置4側の処理を終了する。
【0160】以上のような第2実施例のメモリ書換シス
テムにおいて、ECU2のフラッシュROM20に格納
されたブートソフトを書き換える場合には、作業者は、
まず、メモリ書換装置4のICソケット38に、図7に
示した書換制御ソフトが格納された第1のROM34を
装着すると共に、ICソケット40に、書き換えるべき
新ブートソフトが格納された第2のROM36を装着す
る。そして、メモリ書換装置4をECU2に接続して、
メモリ書換装置4の書換スイッチSWをOFF状態から
ON状態にすると共に、車両のイグニッションスイッチ
をOFF状態からON状態にしてECU2を初期状態か
ら作動させる。
【0161】すると、メモリ書換装置4では、図8に示
した処理の実行が開始されて、図7に示したブートソフ
ト書換専用の書換制御ソフトがメモリ書換装置4からE
CU2に送信される(S700)。また、ECU2側で
は、正常時において、図9(1)に示す如くリセットベ
クタアドレスとして$20000番地が記憶されている
ため、フラッシュROM20のブートフラッシュ領域2
0bに格納されている旧ブートソフトが起動及び実行さ
れ、これにより、メモリ書換装置4からの書換制御ソフ
トがRAM22に転送されて起動される。
【0162】このようにしてECU2側で書換制御ソフ
トの実行が開始されると、図7のS600にて、リセッ
トベクタアドレスが$20000番地であると判定さ
れ、図9(2)に示す如く、メインフラッシュ領域20
aの記憶内容が消去される(S605)。
【0163】その後、ECU2からメモリ書換装置4
へ、新ソフトの「要求信号」が送信され(S610)、
これに応答して、メモリ書換装置4から新ブートソフト
が送信される(S705:新ソフトの要求信号,S71
0)。すると、ECU2側では、メモリ書換装置4から
の新ブートソフトを受信して、その受信した新ブートソ
フトを、図9(3)に示す如く、メインフラッシュ領域
20aに$00000番地から順に書き込む(S61
5)。これにより、メモリ書換装置4からの新ブートソ
フトが、メインフラッシュ領域20aの$00000番
地から$00FFF番地までの領域に書き込まれる。
【0164】そして、メモリ書換装置4からの新ブート
ソフトがメインフラッシュ領域20aに正しく書き込ま
れたならば(S620,S625:OK信号)、図9
(4)に示す如く、リセットベクタアドレスが$200
00番地から$00000番地に変更され(S63
0)、次に、図9(5)に示す如く、ブートフラッシュ
領域20b内の旧ブートソフトが消去される(S63
5)。
【0165】次に、図9(6)に示す如く、メインフラ
ッシュ領域20aに書き込まれた新ブートソフトが、ブ
ートフラッシュ領域20bに$20000番地から順に
コピーされる(S640)。そして、新ブートソフトが
ブートフラッシュ領域20bに正しくコピーされたなら
ば(S645,S650:YES)、図9(7)に示す
如く、リセットベクタアドレスが$00000番地から
本来の$20000番地に戻され(S655)、次に、
図9(8)に示す如く、メインフラッシュ領域20a内
の新ブートソフトが消去される(S660)。
【0166】このようにしてリセットベクタアドレスが
$20000番地に戻されると共に、メインフラッシュ
領域20aの記憶内容が消去された段階で、ECU2側
にてブートソフトを書き換えるための実質的な処理が終
了する。そして、その後、ECU2からメモリ書換装置
4へ「正常終了信号」が送信され(S665)、これに
伴い、メモリ書換装置4側では、その表示装置37に、
終了メッセージが表示される(S740)。
【0167】よって、使用者は、第1実施例の場合と同
様に、メモリ書換装置4の表示装置37に終了メッセー
ジが表示されたことを確認することで、ブートソフトの
書き換えが無事終了したことを知ることができる。とこ
ろで、図9における(1)から(8)までの状態変移
は、ブートソフトを何の不具合もなく書き換えることが
できた場合を示しており、もし、図7におけるS615
の処理により、メモリ書換装置4からの新ブートソフト
をメインフラッシュ領域20aに正しく書き込むことが
できなかった場合には(S625:NG信号)、ECU
2側の処理は、図9(3)の状態で中止されることとな
る。尚、この場合におけるメインフラッシュ領域20a
の記憶内容は不定である。
【0168】そして、この場合には、メモリ書換装置4
の表示装置37に、新ソフトのフラッシュROM20へ
の書き込みに失敗したことを示すエラーメッセージが表
示される(S725:NO,S745,S750)。そ
こで、使用者は、メモリ書換装置4の表示装置37に、
新ソフトのフラッシュROM20への書き込みに失敗し
たことを示すエラーメッセージが表示された場合には、
ICソケット38,40に装着した第1及び第2のRO
M34,36を取り替えることなく、且つ、メモリ書換
装置4をECU2に接続したままで、再度、メモリ書換
装置4の書換スイッチSWをOFF状態からON状態に
すると共に、車両のイグニッションスイッチをOFF状
態からON状態にしてECU2を初期状態から作動させ
れば良い。
【0169】すると、この場合には、リセットベクタア
ドレスが$20000番地のままであり、しかも、ブー
トフラッシュ領域20b内の旧ブートソフトは、そのま
ま存在しているため、ECU2側では、前述した正常時
の場合と全く同様に、再び、ブートフラッシュ領域20
b内の旧ブートソフトが起動され、その後、メモリ書換
装置4からの書換制御ソフトがRAM22上で実行され
ることにより、図9(2)から図9(8)までの各状態
を経て、ブートソフトの書き換えが再度行われることと
なる。
【0170】一方、もし、図7におけるS640の処理
により、メインフラッシュ領域20aに書き込まれた新
ブートソフトを、ブートフラッシュ領域20bに正しく
コピーすることができなかった場合には(S650:N
O)、リセットベクタアドレスを$20000番地に戻
すことなく、ECU2からメモリ書換装置4へ「異常終
了信号」が送信される(S670)。つまり、ECU2
側の処理は、図9(6)の状態で中止されることとな
る。尚、この場合におけるブートフラッシュ領域20b
の記憶内容は、不定である。そして、ECU2から「異
常終了信号」が送信されることに伴い、メモリ書換装置
4側では、表示装置37に、新ブートソフトのブートフ
ラッシュ領域20bへのコピーに失敗したことを示すエ
ラーメッセージが表示される(S735:異常終了信
号,S750)。
【0171】また、例えば、図7におけるS635の処
理によりブートフラッシュ領域20b内の旧ブートソフ
トが消去されてから、図7におけるS640の処理によ
りメインフラッシュ領域20a内の新ブートソフトがブ
ートフラッシュ領域20bにコピーされるまでの間に、
ECU2への電源供給が遮断されたり或いはノイズの影
響などによって、RAM22上で実行中の書換制御ソフ
トが消失又は破壊されてしまった場合には、当然、EC
U2側の処理は中止される。そして、この場合には、メ
モリ書換装置4側の表示装置37に、メッセージが何も
表示されない状態が継続することとなる。
【0172】そこで、使用者は、メモリ書換装置4の表
示装置37に、新ブートソフトのブートフラッシュ領域
20bへのコピーに失敗したことを示すエラーメッセー
ジが表示された場合、或いは、メモリ書換装置4の表示
装置37に、所定時間が経過してもメッセージが何も表
示されない場合にも、ICソケット38,40に装着し
た第1及び第2のROM34,36を取り替えることな
く、且つ、メモリ書換装置4をECU2に接続したまま
で、再度、メモリ書換装置4の書換スイッチSWをOF
F状態からON状態にすると共に、車両のイグニッショ
ンスイッチをOFF状態からON状態にしてECU2を
初期状態から作動させれば良い。
【0173】すると、この場合に、ECU2側では、前
回に図7におけるS605〜S630の処理が実行され
ており、図10(A)に示す如く、新ブートソフトがメ
インフラッシュ領域20aの$00000番地から$0
0FFF番地までの領域に書き込まれていると共に、リ
セットベクタアドレスが$00000番地に変更されて
いるため、メインフラッシュ領域20aに書き込まれた
新ブートソフトが起動される。そして、このメインフラ
ッシュ領域20a内の新ブートソフトが実行されること
により、メモリ書換装置4からの書換制御ソフトがRA
M22に転送されて起動される。
【0174】つまり、ブートソフトの書き換えに一度失
敗して、ブートフラッシュ領域20bの記憶内容が不定
になっていても、メインフラッシュ領域20aの$00
000番地から$00FFF番地までの領域に書き込ま
れた新ブートソフトが起動され、これにより、ECU2
は、メモリ書換装置4からの書換制御ソフトを受信して
RAM22上で実行することができるのである。
【0175】このようにしてECU2側で書換制御ソフ
トの実行が開始されると、この場合には、図7のS60
0にて、リセットベクタアドレスが$00000番地で
あると判定され、図7におけるS675の処理とS63
5以降の処理とが実行されることにより、図9(5)か
ら図9(8)までの各状態と同様の図10(B)から図
10(E)までの各状態を経て、ブートソフトの書き換
えが再度行われることとなる。
【0176】即ち、まず最初に、ECU2からメモリ書
換装置4へ「再書き込み実施信号」が送信され(S67
5)、これに伴い、メモリ書換装置4は、ECU2に新
ブートソフトを送信することなく、ECU2から「正常
終了信号」或いは「異常終了信号」の何れかが送信され
て来るのを待つ状態となる(S705:再書き込み実施
信号,S735)。
【0177】次に、図10(B)に示す如く、ブートフ
ラッシュ領域20bの記憶内容が消去される(S63
5)。尚、この場合に消去される記憶内容は不定であ
る。そして、次に、図10(C)に示す如く、メインフ
ラッシュ領域20aに既に書き込まれている新ブートソ
フトが、ブートフラッシュ領域20bにコピーされ(S
640)、新ブートソフトがブートフラッシュ領域20
bに正しくコピーされたならば(S645,S650:
YES)、図10(D)に示す如く、リセットベクタア
ドレスが$00000番地から本来の$20000番地
に戻され(S655)、最後に、図10(E)に示す如
く、メインフラッシュ領域20a内の新ブートソフトが
消去される(S660)。
【0178】このようにしてリセットベクタアドレスが
$20000番地に戻されると共に、メインフラッシュ
領域20a内の新ブートソフトが消去されると、ECU
2からメモリ書換装置4へ「正常終了信号」が送信され
(S665)、メモリ書換装置4側の表示装置37に、
終了メッセージが表示されるのである(S740)。
【0179】尚、本第2実施例においても、ブートソフ
トの書き換えが終了した状態では、図9(8)又は図1
0(E)のように、メインフラッシュ領域20a内のエ
ンジン制御プログラムが消去されている。よって、本第
2実施例においても、第1実施例の場合と全く同様に、
ブートソフトを書き換えるための前述した作業に続い
て、エンジン制御プログラムの書き込み作業を行えば良
い。
【0180】また、本第2実施例では、図7におけるS
600の処理により、アドレス判定手段としての機能が
実現され、図7におけるS605〜S630の処理によ
り、第3の書換制御手段としての機能が実現され、図7
におけるS635〜S655の処理により、第4の書換
制御手段としての機能が実現されている。
【0181】以上詳述したように、第2実施例のメモリ
書換システムでは、ブートフラッシュ領域20bの記憶
内容を書き換える前に、メモリ書換装置4からの新ブー
トソフトをメインフラッシュ領域20aの$00000
番地から$00FFF番地までの領域に書き込んでおく
と共に、リセットベクタアドレスをブートフラッシュ領
域20bの先頭番地である$20000番地から$00
000番地に変更しておくようにしている。
【0182】よって、ブートソフトの書き換えに1度失
敗して、ブートフラッシュ領域20bの記憶内容が不定
になったとしても、ECU2へ電源を投入してマイコン
8(CPU18)を初期状態から作動させれば、メイン
フラッシュ領域20aに書き込まれた新ブートソフトが
実行されて、ブートソフトの書き換え作業を再度行うこ
とができる。このため、第1実施例のメモリ書換システ
ム5と同様に、ブートソフトを確実に書き換えることが
できるようになる。
【0183】また、本第2実施例では、ブートソフト書
換専用の書換制御ソフトとして、図7に示したように、
リセットベクタアドレスの番地を判定するS600を備
え、リセットベクタアドレスが$00000番地であれ
ば、S605〜S630の処理を行わずにS675及び
S635以降の処理だけを行うように切り換えるものを
用いている。
【0184】これは以下の理由による。即ち、ブートソ
フトの書き換えに1度失敗したことによりブートフラッ
シュ領域20bの記憶内容が不定になっている状態で、
2度目の書き換えを行った場合に、図7におけるS60
5〜S630の処理が確実に行えたならば問題はない
が、そのS605〜S630の処理が実行されている最
中に、万が一、ECU2への電源供給が遮断されたりし
てRAM22上で実行中の書換制御ソフトが消失又は破
壊されてしまうと、前回の書き換え時にメインフラッシ
ュ領域20aに書き込まれた新ブートソフトを失ってし
まい、この結果、次の3度目の書き換え時において、E
CU2に電源を投入しても、ECU2はメモリ書換装置
4と間で通信を行うことができなくなってしまうからで
ある。
【0185】そこで、本第2実施例で用いるブートソフ
ト書換専用の書換制御ソフトでは、S600の判定処理
により、リセットベクタアドレスが$20000番地で
あるか或いは$00000番地であるかを判定し、リセ
ットベクタアドレスが$00000番地であれば、ブー
トソフトの書き換えに1度失敗した後の2度目以降の書
き換え時であると判断して、S605〜S630の処理
を行わずにS675及びS635以降の処理だけを行う
ようにしている。
【0186】従って、本第2実施例のメモリ書換システ
ムによっても、第1実施例のメモリ書換システム5と同
様に、ブートソフトの書き換えを何度でもやり直すこと
ができ、延いては、ブートソフトを一層確実に書き換え
ることが可能となる。尚、これに対して、ブートソフト
の書き換えに失敗していない正常時の場合、或いは、メ
モリ書換装置4の表示装置37に新ソフトのフラッシュ
ROM20への書き込みに失敗したことを示すエラーメ
ッセージが表示された場合には、図7に示した書換制御
ソフトに対してS600及びS675の処理を削除した
書換制御ソフトを、メモリ書換装置4からECU2に送
信するようにし、また、メモリ書換装置4の表示装置3
7に新ブートソフトのブートフラッシュ領域20bへの
コピーに失敗したことを示すエラーメッセージが表示さ
れた場合、或いは、メモリ書換装置4の表示装置37に
所定時間が経過してもメッセージが何も表示されない場
合には(つまり、ブートソフトの書き換えに失敗して、
ブートフラッシュ領域20bの記憶内容が不定になって
しまった場合には)、図7に示した書換制御ソフトに対
しS600〜S630の処理を削除したものであってS
675からS635に進むようにした書換制御ソフト
を、メモリ書換装置4からECU2に送信するようにし
ても良い。
【0187】そして、このようにブートソフト書換専用
の書換制御ソフトとして、2種類の書換制御ソフトを状
況に応じて使い分けるようにしても、作業に手間がかか
るものの、第2実施例のメモリ書換システムと同様の効
果を得ることができる。一方、上記第2実施例では、メ
モリ書換装置4からの新ブートソフトを、エンジン制御
プログラムが格納されるメインフラッシュ領域20aに
一旦書き込み、その書き込んだ新ブートソフトをブート
フラッシュ領域20bにコピーするようにしている。よ
って、新ブートソフトを一旦書き込むための特別な記憶
領域を設ける必要がなく、フラッシュROM20のメモ
リ容量を抑えることができるという点で有利であるが、
新ブートソフトの最初の書き込み先は、フラッシュRO
M20内の他の領域でも良いし、また、ECU2内にデ
ータの消去及び書き込みが可能な他のROMが備えられ
ていれば、そのROMの所定領域でも良い。そして、こ
の場合には、新ブートソフトを書き込んだ後、リセット
ベクタアドレスを、その書き込み先の領域の先頭番地に
変更するように設定すれば良い。
【0188】[その他]上記第1及び第2実施例では、
ECU2に電源を投入してマイコン8が初期状態(リセ
ット状態)から動作を開始した時にブートソフトが実行
され、そのブートソフトの実行により、当該ブートソフ
トからエンジン制御プログラムの実行に移行する通常モ
ードと、メモリ書換装置4からの書換制御ソフトを受信
してRAM22に格納し、当該ブートソフトからRAM
22内の書換制御ソフトの実行に移行する書換モードと
を、切り換えるようにしている。
【0189】これに対して、例えば、マイコン8が初期
状態から動作を開始した時には、エンジン制御プログラ
ムの実行が開始され、マイコン8の特定の割込端子に割
込信号が入力された場合に、図2におけるS120〜S
140の処理からなるブートソフトが割込処理として実
行される、といった構成であっても、前述した各実施例
と同様の効果を得ることができる。
【0190】一方、前述した第1及び第2実施例におい
て、図1に示されたフラッシュROM20は1個であっ
たが、複数個のフラッシュROMの記憶領域を分けて用
いるようにしても良い。つまり、電子装置としてのEC
U2に搭載されるフラッシュROMの物理的な個数は、
どの様に設定されていても良い。
【0191】また、上記各実施例では、不揮発性メモリ
として、フラッシュROMを用いたが、EEPROMな
ど、電気的に記憶内容の消去及び書き込みが可能な他の
不揮発性メモリを用いても良い。
【図面の簡単な説明】
【図1】 第1実施例の電子装置のメモリ書換システム
の全体構成を表すブロック図である。
【図2】 第1実施例のエンジン制御装置(ECU)側
で実行される処理全体を表すフローチャートである。
【図3】 第1実施例において、ECUのブートソフト
を書き換える際にメモリ書換装置から送信されてECU
で実行される書換制御ソフトの処理内容を表すフローチ
ャートである。
【図4】 第1実施例のメモリ書換装置側で実行される
処理を表すフローチャートである。
【図5】 第1実施例において正常時にブートソフトが
書き換えられる際のフラッシュROMの状態変移を説明
する説明図である。
【図6】 第1実施例において異常時にブートソフトが
書き換えられる際のフラッシュROMの状態変移を説明
する説明図である。
【図7】 第2実施例において、ECUのブートソフト
を書き換える際にメモリ書換装置から送信されてECU
で実行される書換制御ソフトの処理内容を表すフローチ
ャートである。
【図8】 第2実施例のメモリ書換装置側で実行される
処理を表すフローチャートである。
【図9】 第2実施例において正常時にブートソフトが
書き換えられる際のフラッシュROMの状態変移を説明
する説明図である。
【図10】 第2実施例において異常時にブートソフト
が書き換えられる際のフラッシュROMの状態変移を説
明する説明図である。
【符号の説明】
2…エンジン制御装置(ECU) 4…メモリ書換装
置 5…メモリ書換システム 6…入力回路 8,30…シングルチップマイクロコンピュータ(マイ
コン) 10…出力回路 18…CPU 20…フラッシュ
ROM 20a…メインフラッシュ領域 20b…ブートフラ
ッシュ領域 22…RAM 24…I/O 25…通信回路
32…電源回路 34…第1のROM 36…第2のROM 37…
表示装置 38,40…ICソケット 42F…雌コネクタ
42M…雄コネクタ 44…通信線 46…電源供給線 48…信号線
SW…書換スイッチ L…モード判定用信号ライン R…抵抗器
───────────────────────────────────────────────────── フロントページの続き (72)発明者 石田 隆司 愛知県刈谷市昭和町1丁目1番地 株式会 社デンソー内

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 プログラムを実行する演算処理手段と、
    電気的に記憶内容の消去及び書き込みが可能であると共
    に、前記演算処理手段により実行されるプログラムを格
    納する読み出し専用の不揮発性メモリと、記憶内容の読
    み出し及び書き込みが可能な揮発性メモリと、前記不揮
    発性メモリの記憶領域のうち、予め定められた起動条件
    の成立時に前記演算処理手段により実行されるプログラ
    ムが格納された記憶領域の先頭アドレスを記憶するアド
    レス記憶手段とを有し、 前記不揮発性メモリにおける特定の記憶領域には、前記
    演算処理手段が、外部から送信されて来る書換制御用プ
    ログラムを受信して前記揮発性メモリに格納し、その
    後、該揮発性メモリに格納した前記書換制御用プログラ
    ムの実行に移行するための起動用プログラムが予め格納
    されていると共に、前記アドレス記憶手段には、前記特
    定の記憶領域の先頭アドレスが予め記憶されており、 前記起動条件が成立すると、前記演算処理手段が、前記
    不揮発性メモリの記憶領域のうち、前記アドレス記憶手
    段に記憶された先頭アドレスにより特定される記憶領域
    に格納された前記起動用プログラムを実行し、 その後、前記演算処理手段が、前記起動用プログラムの
    実行により前記揮発性メモリに格納された前記書換制御
    用プログラムを実行することで、前記不揮発性メモリの
    記憶領域のうち、該書換制御用プログラムにより指示さ
    れる領域の記憶内容を消去して、該領域に外部から送信
    されて来る新たなプログラムを書き込むように構成され
    た電子装置と、 前記不揮発性メモリに格納されたプログラムを新たなプ
    ログラムに書き換えるために前記電子装置に接続され、
    該電子装置へ、前記書換制御用プログラムを送信した
    後、前記新たなプログラムを送信するメモリ書換装置
    と、 を備えた電子装置のメモリ書換システムであって、 前記不揮発性メモリ内の前記起動用プログラムを新たな
    起動用プログラムに書き換える場合に、前記メモリ書換
    装置から前記電子装置へ、前記新たな起動用プログラム
    に先立ち送信される前記書換制御用プログラムは、 前記演算処理手段を、 前記不揮発性メモリにて前記特定の記憶領域とは異なる
    他の記憶領域の記憶内容を消去して、該他の記憶領域
    に、前記特定の記憶領域に格納されている前記起動用プ
    ログラムを書き込み、前記他の記憶領域への前記起動用
    プログラムの書き込みが終了すると、前記アドレス記憶
    手段に記憶されている前記先頭アドレスを、前記他の記
    憶領域の先頭アドレスに変更する第1の書換制御手段
    と、 該第1の書換制御手段による前記先頭アドレスの変更が
    終了すると、前記特定の記憶領域の記憶内容を消去し
    て、該特定の記憶領域に、前記メモリ書換装置から送信
    されて来る前記新たな起動用プログラムを書き込み、前
    記特定の記憶領域への前記新たな起動用プログラムの書
    き込みが終了すると、前記アドレス記憶手段に記憶され
    ている前記先頭アドレスを、前記特定の記憶領域の先頭
    アドレスに戻す第2の書換制御手段と、して機能させる
    プログラムであること、 を特徴とする電子装置のメモリ書換システム。
  2. 【請求項2】 請求項1に記載の電子装置のメモリ書換
    システムにおいて、 前記不揮発性メモリ内の前記起動用プログラムを新たな
    起動用プログラムに書き換える場合に、前記メモリ書換
    装置から前記電子装置へ、前記新たな起動用プログラム
    に先立ち送信される前記書換制御用プログラムは、 前記演算処理手段を、前記第1の書換制御手段及び前記
    第2の書換制御手段として機能させる前に、前記アドレ
    ス記憶手段に記憶されている前記先頭アドレスが前記特
    定の記憶領域の先頭アドレスと前記他の記憶領域の先頭
    アドレスとのうちの何れであるかを判定するアドレス判
    定手段として機能させると共に、 前記アドレス判定手段としての機能により、前記アドレ
    ス記憶手段に記憶されている前記先頭アドレスが前記特
    定の記憶領域の先頭アドレスであると判定された場合
    に、前記演算処理手段を、前記第1の書換制御手段及び
    前記第2の書換制御手段として機能させ、 前記アドレス判定手段としての機能により、前記アドレ
    ス記憶手段に記憶されている前記先頭アドレスが前記他
    の記憶領域の先頭アドレスであると判定された場合に
    は、前記演算処理手段を、前記第2の書換制御手段とし
    てのみ機能させるプログラムであること、 を特徴とする電子装置のメモリ書換システム。
  3. 【請求項3】 請求項1に記載の電子装置のメモリ書換
    システムにおいて、 前記不揮発性メモリ内の前記起動用プログラムを新たな
    起動用プログラムに書き換える場合に、前記メモリ書換
    装置から前記電子装置へ、前記新たな起動用プログラム
    に先立ち送信される前記書換制御用プログラムは、 前記演算処理手段を、前記第1の書換制御手段として機
    能させることに代えて、前記不揮発性メモリにて前記特
    定の記憶領域とは異なる他の記憶領域の記憶内容を消去
    して、該他の記憶領域に、前記メモリ書換装置から送信
    されて来る前記新たな起動用プログラムを書き込み、前
    記他の記憶領域への前記新たな起動用プログラムの書き
    込みが終了すると、前記アドレス記憶手段に記憶されて
    いる前記先頭アドレスを、前記他の記憶領域の先頭アド
    レスに変更する第3の書換制御手段として機能させると
    共に、 前記演算処理手段を、前記第2の書換制御手段として機
    能させることに代えて、前記第3の書換制御手段として
    の機能による前記先頭アドレスの変更が終了すると、前
    記特定の記憶領域の記憶内容を消去して、該特定の記憶
    領域に、前記他の記憶領域に書き込まれた前記新たな起
    動用プログラムを書き込み、前記特定の記憶領域への前
    記新たな起動用プログラムの書き込みが終了すると、前
    記アドレス記憶手段に記憶されている前記先頭アドレス
    を、前記特定の記憶領域の先頭アドレスに戻す第4の書
    換制御手段として機能させるプログラムであること、 を特徴とする電子装置のメモリ書換システム。
  4. 【請求項4】 請求項3に記載の電子装置のメモリ書換
    システムにおいて、 前記不揮発性メモリ内の前記起動用プログラムを新たな
    起動用プログラムに書き換える場合に、前記メモリ書換
    装置から前記電子装置へ、前記新たな起動用プログラム
    に先立ち送信される前記書換制御用プログラムは、 前記演算処理手段を、前記第3の書換制御手段及び前記
    第4の書換制御手段として機能させる前に、前記アドレ
    ス記憶手段に記憶されている前記先頭アドレスが前記特
    定の記憶領域の先頭アドレスと前記他の記憶領域の先頭
    アドレスとのうちの何れであるかを判定するアドレス判
    定手段として機能させると共に、 前記アドレス判定手段としての機能により、前記アドレ
    ス記憶手段に記憶されている前記先頭アドレスが前記特
    定の記憶領域の先頭アドレスであると判定された場合
    に、前記演算処理手段を、前記第3の書換制御手段及び
    前記第4の書換制御手段として機能させ、 前記アドレス判定手段としての機能により、前記アドレ
    ス記憶手段に記憶されている前記先頭アドレスが前記他
    の記憶領域の先頭アドレスであると判定された場合に
    は、前記演算処理手段を、前記第4の書換制御手段とし
    てのみ機能させるプログラムであること、 を特徴とする電子装置のメモリ書換システム。
  5. 【請求項5】 請求項1ないし請求項4の何れかに記載
    の電子装置のメモリ書換システムにおいて、 前記他の記憶領域は、前記演算処理手段が所定の制御対
    象を制御するために実行する制御プログラムが格納され
    た記憶領域であること、 を特徴とする電子装置のメモリ書換システム。
JP8309567A 1996-11-20 1996-11-20 電子装置のメモリ書換システム Pending JPH10149282A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8309567A JPH10149282A (ja) 1996-11-20 1996-11-20 電子装置のメモリ書換システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8309567A JPH10149282A (ja) 1996-11-20 1996-11-20 電子装置のメモリ書換システム

Publications (1)

Publication Number Publication Date
JPH10149282A true JPH10149282A (ja) 1998-06-02

Family

ID=17994588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8309567A Pending JPH10149282A (ja) 1996-11-20 1996-11-20 電子装置のメモリ書換システム

Country Status (1)

Country Link
JP (1) JPH10149282A (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002526828A (ja) * 1998-09-30 2002-08-20 フィーニックス テクノロジーズ リミテッド ブート・ブロックへの書き込みアクセスを可能にする時のブート・ブロック・コードの保護
KR100408872B1 (ko) * 2000-01-28 2003-12-11 엔이씨 일렉트로닉스 코포레이션 플래시 마이크로컴퓨터의 프로그램 재기록 방법
KR100415371B1 (ko) * 2000-01-06 2004-01-16 엔이씨 일렉트로닉스 코포레이션 컴퓨터
US6684290B2 (en) 2001-10-18 2004-01-27 Kabushiki Kaisha Toshiba Memory rewriting apparatus and method for memory mapping rewriting program to same address space
US7096351B2 (en) 2002-07-10 2006-08-22 Nec Electronics Corporation Single-chip microcomputer and boot region switching method thereof
JP2006252278A (ja) * 2005-03-11 2006-09-21 Denso Corp マイクロコンピュータ
JP2007011734A (ja) * 2005-06-30 2007-01-18 Denso Corp 車載制御装置
JP2007257473A (ja) * 2006-03-24 2007-10-04 Mitsubishi Electric Corp 車載制御装置
US7634648B2 (en) 2005-07-12 2009-12-15 Seiko Epson Corporation Data processing apparatus and control method for a data processing apparatus that temporarily provides a plurality of boot sectors in flash ROM
JP2010015265A (ja) * 2008-07-01 2010-01-21 Denso Corp プログラム書き換え装置およびプログラム書き換え方法
JP2011094516A (ja) * 2009-10-28 2011-05-12 Fujitsu Ten Ltd データ書込装置、及び、データ書込方法
US8042104B2 (en) 2004-10-12 2011-10-18 Denso Corporation Method and system for sending a rewrite control program to a control unit
WO2013042513A1 (ja) * 2011-09-21 2013-03-28 日立オートモティブシステムズ株式会社 自動車用電子制御装置及びデータ通信方法
DE102014210765A1 (de) 2013-10-31 2015-04-30 Mitsubishi Electric Corporation Elektroniksteuervorrichtung, die mit Programmwerkzeug zu verbinden ist

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4668416B2 (ja) * 1998-09-30 2011-04-13 フィーニックス  テクノロジーズ  リミテッド ブート・ブロックへの書き込みアクセスを可能にする時のブート・ブロック・コードの保護
JP2002526828A (ja) * 1998-09-30 2002-08-20 フィーニックス テクノロジーズ リミテッド ブート・ブロックへの書き込みアクセスを可能にする時のブート・ブロック・コードの保護
KR100415371B1 (ko) * 2000-01-06 2004-01-16 엔이씨 일렉트로닉스 코포레이션 컴퓨터
US6745278B2 (en) 2000-01-06 2004-06-01 Nec Electronics Corporation Computer capable of rewriting an area of a non-volatile memory with a boot program during self mode operation of the computer
KR100408872B1 (ko) * 2000-01-28 2003-12-11 엔이씨 일렉트로닉스 코포레이션 플래시 마이크로컴퓨터의 프로그램 재기록 방법
US6684290B2 (en) 2001-10-18 2004-01-27 Kabushiki Kaisha Toshiba Memory rewriting apparatus and method for memory mapping rewriting program to same address space
US7096351B2 (en) 2002-07-10 2006-08-22 Nec Electronics Corporation Single-chip microcomputer and boot region switching method thereof
US8042104B2 (en) 2004-10-12 2011-10-18 Denso Corporation Method and system for sending a rewrite control program to a control unit
JP2006252278A (ja) * 2005-03-11 2006-09-21 Denso Corp マイクロコンピュータ
JP2007011734A (ja) * 2005-06-30 2007-01-18 Denso Corp 車載制御装置
US7634648B2 (en) 2005-07-12 2009-12-15 Seiko Epson Corporation Data processing apparatus and control method for a data processing apparatus that temporarily provides a plurality of boot sectors in flash ROM
JP2007257473A (ja) * 2006-03-24 2007-10-04 Mitsubishi Electric Corp 車載制御装置
JP2010015265A (ja) * 2008-07-01 2010-01-21 Denso Corp プログラム書き換え装置およびプログラム書き換え方法
JP2011094516A (ja) * 2009-10-28 2011-05-12 Fujitsu Ten Ltd データ書込装置、及び、データ書込方法
WO2013042513A1 (ja) * 2011-09-21 2013-03-28 日立オートモティブシステムズ株式会社 自動車用電子制御装置及びデータ通信方法
US9164696B2 (en) 2011-09-21 2015-10-20 Hitachi Automotive Systems, Ltd. Electronic control unit for vehicle and data communication method
US9836225B2 (en) 2011-09-21 2017-12-05 Hitachi Automotive Systems, Ltd. Electronic control unit for vehicle and data communication method
DE102014210765A1 (de) 2013-10-31 2015-04-30 Mitsubishi Electric Corporation Elektroniksteuervorrichtung, die mit Programmwerkzeug zu verbinden ist
US9779045B2 (en) 2013-10-31 2017-10-03 Mitsubishi Electric Corporation Electronic controller to be connected to program tool

Similar Documents

Publication Publication Date Title
KR100258147B1 (ko) 전자장치용 메모리 기록장치
JPH10149282A (ja) 電子装置のメモリ書換システム
JP5431111B2 (ja) 情報処理装置及びシステム設定方法
JP3550834B2 (ja) 自動車用電子制御装置のメモリ書換システム,自動車用電子制御装置及びメモリ書換装置
JP4061694B2 (ja) 電子制御装置及び制御システム
JPH11272498A (ja) 電子制御装置
JPH11259375A (ja) 車両用制御装置及び車両制御システム
JP2003256228A (ja) プログラム書換装置
JP2006323776A (ja) 情報処理装置
EP1944691A2 (en) Electronic engine control apparatus having improved configuration for ensuring excellent engine startability
EP0825530A2 (en) Computer apparatus having electrically rewritable nonvolatile memory, and nonvolatile semiconductor memory
JP3870563B2 (ja) 電子制御装置及び不揮発性メモリの書き換え回数計数方法
JP2007257473A (ja) 車載制御装置
JP2007092621A (ja) 電子制御装置
JP3493772B2 (ja) 制御ソフトウェア仕様変更システム
JPH09128229A (ja) 電子制御装置
JP3137012B2 (ja) 電子制御装置
JP4066499B2 (ja) 電子制御装置,電子制御システムおよび適合判断方法
JPH09171459A (ja) 電子制御装置
JP4281222B2 (ja) 不揮発性メモリ書き込み装置
JPH10105468A (ja) 電子制御装置,メモリ書換装置及び電子制御装置のメモリ書換システム
JP2002189609A (ja) アクシデントに適応したソフトウェア更新方式および方法
JP3796837B2 (ja) 電子装置のメモリ書込装置
JP2002323990A (ja) 電子制御装置及び不揮発性メモリの初期化方法
JP2003271420A (ja) 電子制御装置