| 【発明の名称】 |
ROMのデータチェック方法 |
| 【発明者】 |
【氏名】中野 剛成
|
| 【要約】 |
【課題】メイン周期の空き時間を有効に使用し、メイン周期を崩さない最短時間でチェックサムによるチェックを完了する。
【解決手段】繰り返し実行されるメイン処理中の通常処理を除く空き時間に、チェックサムの加算演算を実行する。そして、メイン周期が経過する度に、チェックサムの中途の値及びそのチェックサムの加算に使われたROM領域の開始アドレスをRAMに記憶しつつ、繰り返し実行されるメイン処理中の空き時間に細切れにチェックサムの加算を行う。全てのROM領域についてチェックサムの加算が終了した時点で、チェックサムの正誤判断を行う。 |
【特許請求の範囲】
【請求項1】 通常処理を含むメイン処理を所定のメイン周期で繰り返し実行する場合に、ROMのデータチェックを行うROMのデータチェック方法であって、前記メイン処理の開始時に計時を開始するとともに通常処理を開始する第一工程と、前記計時の結果が、前記通常処理に要する通常処理時間に達した時点で、開始アドレスをインクリメントしながら前記各開始アドレスについてチェックサムの加算を繰り返し実行する第二工程と、前記計時の結果が前記メイン周期に達した時点で、その時点のチェックサムの中途の値及びそのチェックサムの加算に使用したROM領域の前記開始アドレスを所定の記憶部に格納した後、チェックサムの繰り返し行われていた加算を中断し、計時を初期化する工程とを備え、前記第一工程ないし第三工程が、前記開始アドレスが所定の終了アドレスに一致するまで繰り返される一方、前記開始アドレスが終了アドレスに一致していた場合に、第二工程及び第三工程がスキップされるとともに、チェックサムの値が正常か否かを判断することを特徴とするROMのデータチェック方法。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】この発明は、マイクロコンピュータ(以下「マイコン」と略称する)内の不揮発性メモリやPROM,EEPROM及びFLASH−ROM等を含むROMのデータチェック方法に関する。 【0002】 【従来の技術】従来、ROMのデータ書き込み時におけるデータチェック方法として、チェックサムを使用してROMのデータをチェックすることが行われていた。 【0003】チェックサムとは、チェックしたいROMの記憶領域の先頭アドレスから終了アドレスまでのROM値を加算して合計した値をいい、全記憶領域の加算結果とROM上に予め格納しておいた正しいチェックサム値とを比較することによって、ROM内に格納されている値の異常を発見することが可能となる。 【0004】かかるチェックサムの計算は、通常、メイン処理が行われる前のイニシャル処理などに行われるが、イニシャルに時間がとれない場合は、メイン処理に負荷がかからないようにチェックサムの計算を行う。 【0005】この場合、メイン処理を一定周期でループさせたい場合は、割り込みなどの処理時間や最大負荷を考慮し、一周期時間内に全処理(通常処理及びチェックサムの計算)が終わるようにしなければならない。そのためチェックサムの計算は、「1周期時間」から「最大負荷時の通常処理1周期処理時間」を差し引いた残りの時間内に計算が確実に終わるチェックサム計算領域を算出し、これを1周期分の計算量とする。このチェックサム計算領域毎にROMを区切り、メインループがROMを区切った回数だけ通過するとチェックサムの計算が完了し、予めROMに格納しておいた値と比較することでチェックサムによるROMチェックができる。 【0006】 【発明が解決しようとする課題】上記のようなチェックサムの計算方法の場合、通常処理の最大負荷の見積もりを間違って少なめに設定した場合、実際チェックサム計算を行うと1周期の設定時間を超えてしまい、メイン周期タイミングで動作する処理全てに影響が出てしまうことがある。また、逆に最大負荷を多めに見積もると、チェックサム計算は少しずつしか進まないため、ROMチェックが遅くなってしまい、ROM値異常の場合にROMチェック完了前に暴走などを引き起こすことが考えられる。 【0007】そこで、この発明の課題は、メイン周期の空き時間を有効に使用でき、且つ、メイン周期を崩さない最短時間でチェックサムによるチェックを完了できるROMのデータチェック方法を提供することにある。 【0008】 【課題を解決するための手段】上記課題を解決すべく、請求項1に記載の発明は、通常処理を含むメイン処理を所定のメイン周期で繰り返し実行する場合に、ROMのデータチェックを行うROMのデータチェック方法であって、前記メイン処理の開始時に計時を開始するとともに通常処理を開始する第一工程と、前記計時の結果が、前記通常処理に要する通常処理時間に達した時点で、開始アドレスをインクリメントしながら前記各開始アドレスについてチェックサムの加算を繰り返し実行する第二工程と、前記計時の結果が前記メイン周期に達した時点で、その時点のチェックサムの中途の値及びそのチェックサムの加算に使用したROM領域の前記開始アドレスを所定の記憶部に格納した後、チェックサムの繰り返し行われていた加算を中断し、計時を初期化する工程とを備え、前記第一工程ないし第三工程が、前記開始アドレスが所定の終了アドレスに一致するまで繰り返される一方、前記開始アドレスが終了アドレスに一致していた場合に、第二工程及び第三工程がスキップされるとともに、チェックサムの値が正常か否かを判断するものである。 【0009】 【発明の実施の形態】{実施の形態1} <構成>図1はこの発明の一の実施の形態に係るROMのデータチェック方法を含んだ全体処理を示すフローチャート、図2はROMのデータチェック方法の全体処理を示すフローチャートである。 【0010】このROMのデータチェック方法は、図1の如く、メイン処理S1が行われる前のイニシャル処理S2に十分な時間をとることができない場合において、その後に繰り返し実行されるメイン処理S1内において当該メイン処理S1内の通常処理S3に負荷がかからないようにチェックサムの計算処理S4を行うものであって、設定したメイン周期時間内に通常処理S3が終了したときに、次のメイン処理S1までの残り時間でチェックサムの計算処理S4を行い、次周期が始まる直前に、最後に計算したROMアドレスを所定のメモリ領域に格納して、次周期の通常処理S3に移行するようにし、これを繰り返すことによってチェックサムの計算処理S4を最終的に完了するようにしたものである。 【0011】ここで、メイン処理S1のループの周期(以下「メイン周期」と称す)をAとし、通常処理S3の処理時間(以下「通常処理時間」と称す)をBとすると、残りの時間(A−B)間でチェックサムの計算処理S4を行い、経過時間がメイン周期Aに到達した時点で、次のメイン処理S1のループに移行するようにしている。 【0012】尚、メイン処理S1が繰り返し実行される際に、このメイン処理S1の通常処理S3が開始されるたびに所定のタイマーが計時を行い、この計時結果と、予め定められているメイン周期A及び通常処理時間Bとを比較し、タイマーの計時結果が通常処理時間Bに一致した時点でチェックサムの計算処理を開始し、タイマーの計時結果がメイン周期Aに一致した時点で、最後に計算したROMアドレスを所定のメモリ領域に格納するとともに、タイマーの計時を初期化して、次周期の通常処理S3に移行するようになっている。 【0013】このときチェックサムの計算処理S4は図2のように行う。 【0014】まず、ステップS01において、チェックサムを演算しているROM領域のROMアドレスが最終アドレスでないか否かを検知する。そして、最終アドレスであったと判断した場合は、ステップS02に進み、その時点のチェックサムの値と、予めROM内に格納しておいた正しいチェックサム値とを比較し、両者が一致していると判断した場合はステップS03で通常処理に戻す。一方、ステップS02の時点でのチェックサムの値が正しいチェックサム値と異なっていた場合、ステップS04に進んで所定のエラー処理を行う。 【0015】また、ステップS01において、チェックサムを演算しているROM領域のROMアドレスが最終でない場合は、ステップS05に進む。 【0016】ステップS05では、まず現在のメイン処理S1内での経過時間をタイマーの計時結果に基づいて検知し、経過時間がメイン周期A未満であるか否かを判断する。そして、経過時間がメイン周期A未満と判断した場合は、ステップS06においてチェックサムの計算処理S4の開始アドレスをインクリメントし、そのアドレス値のデータを所定のRAM上のチェックサム値に加算して更新する(ステップS07)。しかる後、再びステップS01に戻り、ROMアドレスが最終アドレスになるまでまたは経過時間がメイン周期Aに達するまで、以上の各ステップS01〜S07を繰り返す。 【0017】また、上記のステップS05において、メイン処理S1での経過時間がメイン周期A以上経過した場合は、ステップS08に進み、その時点のチェックサムの計算処理S4の開始アドレスをRAM(記憶部)に格納した後、チェックサムの計算処理S4を中断する。そして、ステップS03に移行し、次のメイン処理S1の周期において、再び通常処理(図1中のステップS3)を実行する。そして、通常処理S3が終了した後、図2中のステップS01からの処理を再び実行する。このときの図2中のステップS06及びステップS07では、RAMに格納しておいた最新の開始アドレス及びチェックサムの値を用いて、開始アドレスから開始アドレス加算(S06)及びチェックサムの加算(S07)を続行するようにする。 【0018】以上のように、メイン処理S1のメイン周期Aの空き時間にチェックサムの計算処理S4を行っているので、メイン周期Aの空き時間を有効に使用できる。しかも、メイン周期Aを崩さない最短時間でチェックサムによるチェックを完了できるので、電源ON直後から通常処理S3までのイニシャル処理S2に時間をかけることができないシステム等においては、最短時間でROMのチェックを完了することができる。 【0019】 【発明の効果】請求項1に記載の発明によれば、メイン処理のメイン周期の空き時間にチェックサムの計算処理を行っているので、メイン周期の空き時間を有効に使用できる。しかも、メイン周期を崩さない最短時間でチェックサムによるチェックを完了できるので、電源ON直後から通常処理までのイニシャル処理に時間をかけることができないシステム等においては、最短時間でROMのチェックを完了することができる。
|
| 【出願人】 |
【識別番号】395011665 【氏名又は名称】株式会社オートネットワーク技術研究所 【識別番号】000183406 【氏名又は名称】住友電装株式会社 【識別番号】000002130 【氏名又は名称】住友電気工業株式会社
|
| 【出願日】 |
平成12年10月3日(2000.10.3) |
| 【代理人】 |
【識別番号】100089233 【弁理士】 【氏名又は名称】吉田 茂明 (外2名)
|
| 【公開番号】 |
特開2002−108724(P2002−108724A) |
| 【公開日】 |
平成14年4月12日(2002.4.12) |
| 【出願番号】 |
特願2000−303091(P2000−303091) |
|