[go: up one dir, main page]

JP4062421B2 - Memory rewrite control method and program for executing each step of memory rewrite control method - Google Patents

Memory rewrite control method and program for executing each step of memory rewrite control method Download PDF

Info

Publication number
JP4062421B2
JP4062421B2 JP2002170633A JP2002170633A JP4062421B2 JP 4062421 B2 JP4062421 B2 JP 4062421B2 JP 2002170633 A JP2002170633 A JP 2002170633A JP 2002170633 A JP2002170633 A JP 2002170633A JP 4062421 B2 JP4062421 B2 JP 4062421B2
Authority
JP
Japan
Prior art keywords
boot
sector
data
update
flash memory
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 - Fee Related
Application number
JP2002170633A
Other languages
Japanese (ja)
Other versions
JP2004013854A (en
Inventor
雄史 高見沢
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2002170633A priority Critical patent/JP4062421B2/en
Priority to EP03011150A priority patent/EP1372068A3/en
Priority to US10/460,459 priority patent/US7383431B2/en
Priority to KR10-2003-0037432A priority patent/KR100507884B1/en
Priority to CN031424147A priority patent/CN100407177C/en
Publication of JP2004013854A publication Critical patent/JP2004013854A/en
Application granted granted Critical
Publication of JP4062421B2 publication Critical patent/JP4062421B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、フラッシュメモリのメモリ書き換え制御システムにおけるメモリ書き換え制御方法およびこのようなメモリ書き換え制御方法の各工程をコンピュータに実行させるためのプログラム関する。特に、少なくとも3個のブートセクタを有したフラッシュメモリにより、1回のダウンロード作業にて、フラッシュメモリの所望のセクタを書き換えることが可能なフラッシュメモリのメモリ書き換え制御システムにおけるメモリ書き換え制御方法およびこのようなメモリ書き換え制御方法の各工程をコンピュータに実行させるためのプログラム関する。
【0002】
【従来の技術】
プリンタ、スキャナ等の制御装置においては、ファームウェアのブートプログラムとメインプログラムとが分離されて、フラッシュメモリに格納されている。例えば、プリンタの場合、プリンタの通常モードを制御するプログラムであるメインプログラムおよびフォントデータがメインセクタに格納されている。また、プリンタの起動処理を実行するプログラムと、プリンタの書き換え制御モードを制御してメインセクタに格納されているメインプログラムおよびフォントデータ等の書き換え処理を実行するプログラムとがブートセクタに格納されている。ここで、セクタは、フラッシュメモリにおいて一括して消去可能な領域である。
【0003】
ブートセクタに格納されているデータ(ブートデータ)を書き換える場合、ブートデータは、自プログラムが格納されているセクタを書き換えることをソフト的に禁止していることから、3回のダウンロード処理が必要であった。
【0004】
図9は、従来の書き換え処理によるデータ遷移を説明する図である。フラッシュメモリの書き換え処理において、ブートセクタ以外のフラッシュメモリのセクタの書き換え処理はブートセクタに格納されているブートデータによって実行され、ブートセクタの書き換え処理は、新たにダウンロードしたブートリライトデータによって実行される。
【0005】
ブートデータにより、1回目のダウンロード処理にてブートリライトデータを取得し、メインセクタのデータを消去し、メインセクタに取得したブートリライトデータを書き込む(図9の(1))。
【0006】
次に、ブートリライトデータにより、2回目のダウンロード処理にて新ブートデータを取得し、ブートセクタのデータを消去し、ブートセクタに取得した新ブートデータを書き込む(図9の(2))。
【0007】
新ブートデータにより、3回目のダウンロード処理にて新メインデータを取得し、メインセクタのブートリライトデータを消去し、メインセクタに取得した新メインデータを書き込む(図9の(3))。
【0008】
【発明が解決しようとする課題】
上述したように、フラッシュメモリのブートセクタに格納されているデータの書き換え作業は、3回のダウンロード作業を実行しなければ完了しないことから、作業手順が煩雑であり、作業エラーが発生しやすいという問題点があった。また、書き換え作業にかかる時間も長時間となってしまうという問題点もあった。
【0009】
従って、本発明は、以上のような問題点を解決するためになされたもので、制御装置を起動させる最低限の機能を実行させるブートデータを第1のブートセクタに、フラッシュメモリを書き換える機能を実行させるブートデータを第2のブートセクタおよび第3のブートセクタに格納し、第1のブートセクタの機能により第2のブートセクタの機能または第3のブートセクタの機能を実行させるかを判定し、判定された第2のブートセクタの機能または第3のブートセクタの機能により第1のブートセクタおよび判定された自身のブートセクタを除いたフラッシュメモリのセクタを書き換えるフラッシュメモリのメモリ書き換え制御システムにおけるメモリ書き換え制御方法およびこのようなメモリ書き換え制御方法の各工程をコンピュータに実行させるためのプログラム提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明者は、上述した従来の問題点を解決すべく研究を重ねた。その結果、少なくとも3個のブートセクタをフラッシュメモリに設け、第1のブートセクタには、制御装置を起動させるための最低限の機能を実行させる書き換え不要のブートデータを格納し、第2のブートセクタには、第1のブートセクタおよび第2のブートセクタを除いたフラッシュメモリの所望のセクタを書き換える機能、第1のブートセクタに格納されている以外の起動時の処理機能等を実行させるブートデータを格納し、第3のブートセクタには、第1のブートセクタおよび第3のブートセクタを除いたフラッシュメモリの所望のセクタを書き換える機能、第1のブートセクタに格納されている以外の起動時の処理機能等を実行させるブートデータを格納することにより、ブートセクタの書き換え処理異常による制御装置の起動不能状態を回避することができるばかりでなく、フラッシュメモリのブートセクタ書き換え処理の作業手順が簡素化され、処理に要する時間を短縮することができることが判明した。上記研究結果に基づき、以下の発明を提供する。
【0011】
【0012】
【0013】
【0014】
【0015】
本発明の、フラッシュメモリのメモリ書き換え制御方法の1つの態様は、中央処理装置と、一括消去可能な記憶領域であるセクタを複数個有し、セクタの中にブート処理を中央 処理装置に実行させるためのブートデータを格納した少なくとも3個のブートセクタを有したフラッシュメモリとからなるメモリ書き換え制御システムにおけるメモリ書き換え制御方法であって、中央処理装置が、(a)制御システムの起動時に、少なくとも3個のブートセクタの中の第1のブートセクタに格納されている第1のブートデータを実行して、当該制御システムのハードウェアの初期化を行う初期化工程と、当該制御システムの起動モードを判定する起動モード判定工程と、起動モード判定工程によって判定された起動モードがフラッシュメモリのメモリ書き換えモードである場合に、第1のブートセクタを除いた複数のブートセクタのそれぞれに格納されているブートデータの中から所要のブートデータを、それぞれのブートセクタに格納されているブートデータ更新判定データに基づいて判定するブートデータ判定工程と、を実行し、)ブートデータ判定工程によって判定された所要のブートデータが少なくとも3個のブートセクタの中の第2のブートセクタに格納されている場合に、第2のブートセクタに格納されている第2のブートデータを実行して、フラッシュメモリの更新データをホスト装置から受信するための通信インタフェースの初期化を行う第1の通信インタフェース初期化工程と、第2のブートセクタおよび第1のブートセクタを除いた、フラッシュメモリの所望の前記セクタを更新データにより書き換える第1の書き換え工程と、を実行し、)ブートデータ判定工程によって判定された所要のブートデータが少なくとも3個のブートセクタの中の第3のブートセクタに格納されている場合に、第3のブートセクタに格納されている第3のブートデータを実行して、フラッシュメモリの更新データをホスト装置から受信するための通信インタフェースの初期化を行う第2の通信インタフェース初期化工程と、第3のブートセクタおよび第1のブートセクタを除いた、フラッシュメモリの所望のセクタを更新データにより書き換える第2の書き換え工程とを実行するフラッシュメモリのメモリ書き換え制御方法である。
【0016】
本発明の、フラッシュメモリのメモリ書き換え制御方法の別の態様は、上述の第1の書き換え工程が、フラッシュメモリを書き換えるための更新データをホスト装置から受信する第1の更新データ受信工程と、第1の更新データ受信工程によって受信した更新データを書き込むための、第2のブートセクタおよび第1のブートセクタを除いた、フラッシュメモリの所望のセクタを判定する第1のセクタ判定工程と、第1のセクタ判定工程によって判定されたフラッシュメモリの所望のセクタに、第1の更新データ受信工程によって受信した更新データを書き込む第1の更新データ書き込み工程と、第1のセクタ判定工程によって選択された所望のセクタが第3のブートセクタである場合に、第3のブートセクタに格納されるブートデータ更新判定データを算出し更新する第1の更新判定データ算出工程とを備えたフラッシュメモリのメモリ書き換え制御方法である。
【0017】
本発明の、フラッシュメモリのメモリ書き換え制御方法の別の態様は、上述の第2の書き換え工程が、フラッシュメモリを書き換えるための更新データをホスト装置から受信する第2の更新データ受信工程と、第2の更新データ受信工程によって受信した更新データを書き込むための、第3のブートセクタおよび第1のブートセクタを除いた、フラッシュメモリの所望のセクタを判定する第2のセクタ判定工程と、第2のセクタ判定工程によって判定されたフラッシュメモリの所望のセクタに、第2の更新データ受信工程によって受信した更新データを書き込む第2の更新データ書き込み工程と、第2のセクタ判定工程によって選択された所望のセクタが第2のブートセクタである場合に、第2のブートセクタに格納されるブートデータ更新判定データを算出し更新する第2の更新判定データ算出工程とを備えたフラッシュメモリのメモリ書き換え制御方法である。
【0018】
本発明の、フラッシュメモリのメモリ書き換え制御方法の別の態様は、上述のブートデータ更新判定データが、フラッシュメモリに備えられている複数個のブートセクタのブートデータを書き換えた回数を通算したブート更新回数と、ブートセクタに格納されているブートデータの正当性を検証するためのブートセクタのチェックサムとを備えているフラッシュメモリのメモリ書き換え制御方法である。
【0019】
本発明の、ブートデータの1つの態様は、上述のフラッシュメモリのメモリ書き換え制御方法の各工程を、一括消去可能な記憶領域であるセクタを複数個有し、これらのセクタの中にブート処理を実行させるためのブートデータを格納した少なくとも3個のブートセクタを有したフラッシュメモリのメモリ書き換え制御システムを制御する中央処理装置に実行させるためのブートデータである。
【0020】
【0021】
【発明の実施の形態】
本発明の一実施態様を、図面を参照しながら説明する。なお、以下に説明する実施態様は説明のためのものであり、本発明の範囲を制限するものではない。従って、当業者であればこれらの各要素もしくは全要素をこれと均等なものによって置換した実施態様を採用することが可能であるが、これらの実施態様も本発明の範囲に含まれる。
【0022】
図1は、フラッシュメモリのメモリ書き換え制御システムのハードウェアの構成を示す図である。メモリ書き換え制御システム100は、一括して消去可能な最小単位の記憶領域であるセクタ毎に分割された書き換えが可能であるフラッシュメモリ101、読み書きが可能であるRAM102およびメモリ書き換え制御システム100を有する制御装置の制御を実行するCPU103を備えている。
【0023】
フラッシュメモリ101は、制御装置の通常モードの制御を実行するメインプログラム、フォントデータ等を記憶し、更に、制御装置の起動処理を制御したり、フラッシュメモリ101に記憶されているデータを書き換えたりするブートプログラムを記憶している。以下、ブートプログラムが格納されるセクタを「ブートセクタ」、メインプログラム、フォントデータ等が格納されるセクタを「メインセクタ」という。また、ブートセクタに格納されているブートプログラムのデータを「ブートデータ」、メインセクタに格納されているメインプログラム、フォントデータ等のデータを「メインデータ」という。
【0024】
図2は、本発明のフラッシュメモリにおけるブートセクタの構成の一例を示す図である。以下、3個のセクタによって構成されたブートセクタを例に挙げて説明する。フラッシュメモリ101におけるブートセクタは第1のブートセクタ201、第2のブートセクタ202および第3のブートセクタ203の3個のセクタから構成される。
【0025】
第1のブートセクタ201には、制御装置を起動するための最低限の機能を実行させるブートデータが格納されている。例えば、制御装置を起動させるための最低限の機能として、CPU103の初期化、スタックの初期化等の各種初期化、RAM102のチェック、ゲートアレイレジスタのチェック等の各種チェック、起動モードの判定等の各種判定等が挙げられる。以下、第1のブートセクタ201を「起動ブートセクタ」と呼ぶ。また、起動ブートセクタ201に格納されるブートデータを「起動ブートデータ」、起動ブートデータによって実行される処理を「起動ブート処理」と呼ぶ。
【0026】
第2のブートセクタ202には、起動ブート処理である制御装置を起動させるための最低限の機能以外の起動時における各種機能およびフラッシュメモリ101に格納されたデータを書き換えるための機能を実行させるブートデータが格納されている。例えば、起動ブート処理である制御装置を起動させるための最低限の機能以外の起動時における機能として、通信インタフェースの種別判定、各通信インタフェースに対応した処理、各種ステータスコマンドに対応した処理等が挙げられる。起動ブート処理は、フラッシュメモリ101に格納されたデータを書き換えるための機能を実行させるブートデータによって、起動ブートセクタ201および第2のブートセクタ(自身のセクタ)202以外のフラッシュメモリ101に格納されたブートデータおよびメインデータを書き換える処理を実行させる。以下、第2のブートセクタ202を「WブートセクタA」、WブートセクタA202に格納されるWブートデータを「WブートデータA」、WブートデータAによって実行されるWブート処理を「Wブート処理A」と呼ぶ。
【0027】
第3のブートセクタ203には、起動ブート処理である制御装置を起動させるための最低限の機能以外の起動時における各種機能およびフラッシュメモリ101に格納されたデータを書き換えるための機能を実行させるWブートデータAとほぼ同様のブートデータが格納されている。起動ブート処理は、フラッシュメモリ101に格納されたデータを書き換えるための機能を実行させるブートデータによって、起動ブートセクタ201および第3のブートセクタ(自身のセクタ)203以外のフラッシュメモリ101に格納されたブートデータおよびメインデータを書き換え処理を実行させる。以下、第3のブートセクタ203を「WブートセクタB」、WブートセクタB203に格納されるWブートデータを「WブートデータB」、WブートデータBによって実行されるWブート処理を「Wブート処理B」と呼ぶ。
【0028】
起動ブートセクタ201に格納されている起動ブートデータは、ファームウェアバグが発見された場合のバグ修正以外には、書き換えられることの無いデータである。従って、書き換えられるブートセクタ(以下、「Wブートセクタ」と呼ぶ)は、WブートセクタA202およびWブートセクタB203となる。即ち、Wブートセクタの一方のブート処理により他方のWブートセクタを書き換えることにより、正常に動作する少なくとも1個のWブートセクタを保障することができる。以下、Wブートセクタに格納されているブートデータを「Wブートデータ」、Wブートデータによって実行されるブート処理を「Wブート処理」と呼ぶ。
【0029】
また、WブートセクタA202およびWブートセクタB203には、各Wブートセクタ領域の正当性を検証するためのチェックサム、Wブートセクタのデータ更新回数であるWブート更新回数およびWブートセクタを指定するWブートIDが格納されている。チェックサムおよびWブート更新回数は、ブートデータ更新判定データとして利用される。即ち、起動ブート処理は、Wブート更新回数およびチェックサムに基づいて、最新のWブートデータが格納されているWブートセクタを判定し、判定したWブートセクタに格納されているWブートデータによってWブート処理を実行させる。
【0030】
図3は、フラッシュメモリのメモリ書き換え制御システムの構成の一例を示すブロック図である。メモリ書き換え制御システム100は、ブートデータ判定部301、第1の書き換え部302および第2の書き換え部303を備えている。更に、第1の書き換え部302は、第1の更新データ受信部321、第1のセクタ判定部322、第1の更新データ書き込み部323および第1の更新判定データ算出部324を備え、第2の書き換え部303は、第2の更新データ受信部331、第2のセクタ判定部332、第2の更新データ書き込み部333および第2の更新判定データ算出部334を備えている。
【0031】
ブートデータ判定部301は、図2の起動ブートセクタ201の起動ブート処理の機能部であり、WブートセクタA202のWブート処理AまたはWブートセクタB203のWブート処理Bのどちらの処理を実行させるかを、ブートデータ更新判定データであるWブートセクタに格納されているチェックサムおよびWブート更新回数に基づいて判定する。
【0032】
第1の書き換え部302は、図2のWブートセクタA202のWブート処理Aの機能部であり、起動ブートセクタ201およびWブートセクタA202を除いたフラッシュメモリ101を構成する複数個のセクタの所望のセクタを書き換える。即ち、第1の書き換え部302により、WブートセクタB203に格納されるWブートデータBを書き換える。
【0033】
第1の書き換え部302の第1の更新データ受信部321は、所定の通信インタフェースを利用してホスト装置から更新データを受信する。更新データは、所定のフォーマットに従って、所定サイズのデータ単位(レコード単位)で受信される。第1の書き換え部302の第1のセクタ判定部322は、第1の更新データ受信部321によって受信した更新データを格納するフラッシュメモリ101のセクタがどこのセクタであるかを判定し、起動ブートセクタ201およびWブートセクタA202である場合は、更新データによる書き換えを実行しないようにする。第1の書き換え部302の第1の更新データ書き込み部323は、更新データを起動ブートセクタ201およびWブートセクタA202を除いたフラッシュメモリ101の所望のセクタに書き込む。第1の書き換え部302の第1の更新判定データ算出部324は、書き換えられたフラッシュメモリ101のWブートセクタB203のチェックサムおよびメインセクタのチェックサムを算出し、WブートセクタA202のWブート更新回数に基づいて、WブートセクタB203のWブート更新回数を算出する。
【0034】
第2の書き換え部303は、図2のWブートセクタB203のWブート処理Bの機能部であり、起動ブートセクタ201およびWブートセクタB203を除いたフラッシュメモリ101を構成する複数個のセクタの所望のセクタを書き換える。即ち、第2の書き換え部303により、WブートセクタA202に格納されるWブートデータAを書き換える。
【0035】
第2の書き換え部303の第2の更新データ受信部331は、所定の通信インタフェースを利用してホスト装置から更新データを受信する。更新データは、所定のフォーマットに従って、所定のサイズのデータを受信データ単位として受信される。第2の書き換え部303の第2のセクタ判定部332は、第2の更新データ受信部331によって受信した更新データを格納するフラッシュメモリ101のセクタがどこのセクタであるかを判定し、起動ブートセクタ201およびWブートセクタB203である場合は、更新データによる書き換えを実行しないようにする。第2の書き換え部303の第2の更新データ書き込み部333は、更新データを起動ブートセクタ201およびWブートセクタB203を除いたフラッシュメモリ101の所望のセクタに書き込む。第2の書き換え部303の第2の更新判定データ算出部334は、書き換えられたフラッシュメモリ101のWブートセクタA202のチェックサムおよびメインセクタのチェックサムを算出し、WブートセクタB203のWブート更新回数に基づいて、WブートセクタA202のWブート更新回数を算出する。
【0036】
図4は、2個のWブートセクタによるWブートデータの書き換え順序を示す図である。まず、フラッシュメモリ101のWブートセクタA202およびWブートセクタB203には、WブートデータAおよびWブートデータBがともに格納された状態で出荷される。また、Wブート更新回数は、一方のWブートセクタを「1」、他方のWブートセクタを「0」として出荷される。例えば、WブートセクタA202のWブート更新回数を「1」、WブートセクタB203のWブート更新回数を「0」として出荷される。
【0037】
起動ブート処理によって実行される最新のWブート処理がWブート処理AであるかWブート処理Bであるかを、WブートセクタA202およびWブートセクタB203における各Wブートセクタ領域のチェックサムおよびWブート更新回数に基づいて判定する。WブートセクタA202およびWブートセクタB203のチェックサムがともに正常である場合は、Wブート更新回数の大きいWブートセクタのWブート処理を実行させる。また、WブートセクタA202およびWブートセクタB203のチェックサムの一方が正常である場合は、正常であるチェックサムのWブートセクタのWブート処理を実行させる。
【0038】
実行中のWブートセクタのWブート処理により非実行中のWブートセクタのWブートデータを書き換え、Wブート更新回数を更新する。例えば、図に示すように1回目のWブートセクタの書き換えの場合、即ち、1回目の書き込みの場合、実行されているWブート処理は、Wブート処理Aである。従って、書き換えられるWブートセクタは、WブートセクタB203となる。即ち、Wブート処理AによりWブートセクタB203のWブートデータBが更新される。
【0039】
また、WブートセクタB203のWブート更新回数は、WブートセクタA202のWブート更新回数に1を加えた回数になる。即ち、更新されたWブートセクタのWブート更新回数の方が、実行中のWブートセクタのWブート更新回数よりも大きくなる。尚、図に示すように、例外として、更新回数がFFFFh回である場合、次の更新回数は0回となる。即ち、Wブート更新回数は、10000h回書き込むと出荷時の状態に戻る。
【0040】
図5は、ブート処理の手順の一例を示す図である。起動ブートセクタ201の起動ブート処理、WブートセクタA202のWブート処理AおよびWブートセクタB203のWブート処理Bによる処理手順の一例を示す。まず、制御装置の電源が投入されると、CPU103の初期化、スタックの初期化等の各種初期化、RAM102のチェック、ゲートアレイレジスタのチェック等の各種チェック、起動モードの判定等の各種判定等を実行する(S501)。
【0041】
次に、メモリ書き換えモードであるか否かを判定し(S502)、メモリ書き換えモードではない場合(S502;No)は、メインセクタのチェックサムを検証し(S512)、チェックサムが正常であるか否か、即ち、メインセクタのデータが正常であるか否かを判定する(S513)。チェックサムが異常である場合(S513;No)は、エラー表示等のエラー処理を実行する(S515)。一方、チェックサムが正常である場合(S513;Yes)は、メインプログラムの各種処理を実行する(S514)。
【0042】
メモリ書き換えモードである場合(S502;Yes)は、WブートセクタA202のチェックサムおよびWブートセクタB203のチェックサムを検証する(S503)。WブートセクタA202およびWブートセクタB203のチェックサムがともに異常であるか否かを判定し(S504)、WブートセクタA202およびWブートセクタB203のチェックサムがともに異常である場合(S504;Yes)は、エラー表示等のエラー処理を実行する(S505)。
【0043】
一方、WブートセクタA202およびWブートセクタB203のチェックサムがともに異常ではない場合(S504;No)は、WブートセクタA202およびWブートセクタB203のチェックサムがともに正常であるか否かを判定し(S506)、WブートセクタA202およびWブートセクタB203のチェックサムがともに正常である場合(S506;Yes)は、WブートセクタA202のWブート更新回数およびWブートセクタB203のWブート更新回数を取得し(S507)、WブートセクタA202のWブート更新回数がWブートセクタB203のWブート更新回数よりも大きいか否かを判定する(S508)。
【0044】
WブートセクタA202のWブート更新回数がWブートセクタB203のWブート更新回数よりも大きい場合、即ち、WブートデータAがWブートデータBよりも新しいWブートデータである場合(S508;Yes)は、WブートセクタA202のWブート処理Aによるメモリ書き換え処理を実行する(S510)。一方、WブートセクタA202のWブート更新回数がWブートセクタB203のWブート更新回数以下の場合、即ち、WブートデータBがWブートデータAよりも新しいWブートデータである場合(S508;No)は、WブートセクタB203のWブート処理Bによるメモリ書き換え処理を実行する(S509)。
【0045】
WブートセクタA202およびWブートセクタB203のチェックサムがともに正常ではない場合、即ち、どちらか一方のWブートセクタが異常である場合(S506;No)は、WブートセクタA202のチェックサムが正常であるか否かを判定し(S511)、WブートセクタA202のチェックサムが正常である場合(S511;Yes)は、WブートセクタA202のWブート処理Aによるメモリ書き換え処理を実行する(S510)。一方、WブートセクタA202のチェックサムが異常である場合、即ち、WブートセクタB203のチェックサムが正常である場合(S511;No)は、WブートセクタB203のWブート処理Bによるメモリ書き換え処理を実行する(S509)。
【0046】
また、通常モードからメモリ書き換えモードへ移行する場合は、メモリ書き換えモード移行コマンドを受信することにより(S516)、ステップS503へ移行し、フラッシュメモリの書き換えが実行される。
【0047】
図6は、Wブート処理AまたはWブート処理Bによるフラッシュメモリ書き換え処理の手順の一例を示す図である。まず、フラッシュメモリ101を書き換えるための更新データをホスト装置から受信するための通信インタフェースの判別および各種初期化を実行し(S601)、実行中のWブートセクタのWブート処理を認識するためにWブートIDを取得する(S602)。
【0048】
次に、更新データをレコード単位に受信する(S603)。以下、受信したレコード単位の更新データを「受信レコードデータ」と呼ぶ。次に、受信レコードデータが終了レコードであるか否か、即ち、更新データの受信が終了であるか否かを判定する(S604)。
【0049】
受信レコードデータが終了レコードではない場合(S604;No)は、受信レコードデータが格納すべきフラッシュメモリのセクタの更新データであるか否か判定する(S605)。受信レコードデータには、格納開始アドレスが格納されており、この格納開始アドレスに基づいて、格納すべきフラッシュメモリのセクタが判定される。また、書き換えられるセクタは、起動ブートセクタおよび実行中のWブートセクタ以外のセクタである。
【0050】
受信レコードデータが格納すべきフラッシュメモリのセクタの更新データである場合(S605;Yes)は、受信レコードデータの書き込み処理を実行し(S606)、ホスト装置へ正常に受信したことを通知するための正常受信ステータスを送信し(S607)、ステップS603に戻り、次の更新データであるレコードデータを受信する。一方、受信レコードデータが格納すべきフラッシュメモリのセクタの更新データではない場合(S605;No)は、ステップS603に戻り、次の更新データであるレコードデータを受信する。
【0051】
受信レコードデータが終了レコードである場合(S604;Yes)は、メインセクタのチェックサムおよび非実行中のWブートセクタのチェックサムを算出して書き込み(S608)、メモリ書き換えモードにおける所定の終了処理を実行し(S609)、最後にCPUのリセット処理を実行する(S610)。
【0052】
図7は、フラッシュメモリの書き換え範囲を示す図である。図7(a)は、Wブート処理Aが実行されている場合のフラッシュメモリの書き換え範囲を示す図であり、図7(b)は、Wブート処理Bが実行されている場合のフラッシュメモリの書き換え範囲を示す図である。図に示すように、以下に示す4項目のデータ以外のデータを受信レコードデータに基づいて書き換える。
【0053】
・起動ブートデータ:書き換えられることの無いブートデータである。
・実行中のWブートセクタのWブートデータ:Wブート処理Aが実行中の場合は、WブートデータAであり、Wブート処理Bが実行中の場合は、WブートデータBである。
・非実行中のWブートセクタのチェックサム:Wブート処理Aが実行中の場合は、WブートセクタB203のチェックサムであり、Wブート処理Bが実行中の場合は、WブートセクタA202のチェックサムである。
・メインセクタのチェックサム:メインセクタ全領域のチェックサムである。
【0054】
フラッシュメモリ101のデータ書き換え方法には様々な方法がある。例えば、以下に説明する書き換え方法を利用して実行することができる。
第1の書き換え方法は、フラッシュメモリ101を構成する全てのセクタにおいて、セクタ全域の更新データをレコードデータとして順次受信する場合である。ここで、未使用領域のレコードデータは0xffとして受信する。受信レコードデータが書き換え対象となるセクタ(更新対象セクタ)の初めての更新データである場合に、更新対象セクタのデータを消去し、所定の格納開始アドレスに基づいて受信レコードデータを更新対象セクタに書き込む。受信レコードデータが更新対象セクタの初めての更新データではない場合は、所定の格納開始アドレスに基づいて受信レコードデータを更新対象セクタに書き込む。
【0055】
第2の書き換え方法は、Wブートセクタのデータにおいては、データが存在する部分の更新データを受信しセクタ全域を書き換え、Wブートセクタ以外のセクタにおいては、更新すべきデータのみを受信し、その受信レコードデータの部分のみを書き換える場合である。Wブートセクタが更新対象セクタである場合は、受信レコードデータが更新対象セクタの初めての更新データである場合に、更新対象セクタのデータをRAM上に複写し、更新対象セクタのデータを消去する。RAM上のセクタイメージにデータが存在する部分の全ての受信レコードデータを書き込み、書き込まれたRAM上のセクタイメージを更新対象セクタに書き戻す。Wブートセクタ以外のセクタが更新対象セクタである場合は、更新対象セクタのデータをRAM上に複写し、更新すべき部分の受信レコードデータを書き込み、更新対象セクタのデータを消去し、書き込まれたRAM上のセクタイメージを更新対象セクタに書き戻す。
【0056】
第3の書き換え方法は、フラッシュメモリ101の構成する全てのセクタにおいて、更新すべきデータのみを受信し、その受信レコードデータの部分のみを書き換える場合である。更新対象セクタのデータをRAM上に複写し、更新すべき部分の受信レコードデータを書き込み、更新対象セクタのデータを消去し、書き込まれたRAM上のセクタイメージを更新対象セクタに書き戻す。
【0057】
図8は、Wブートセクタの書き換え方法の詳細を示す図である。図8(a)は、Wブート処理Aが実行されている場合のWブートセクタの書き換え方法を示す図であり、図8(b)は、Wブート処理Bが実行されている場合のWブートセクタの書き換え方法を示す図である。例えば、図8(a)に示すように、Wブート処理Aが実行されている場合は、WブートセクタB203のWブートデータBを順次受信し、その受信レコードデータを所定の格納開始アドレスに基づいて、WブートセクタB203に書き込む。次に、WブートセクタB203のWブート更新回数を算出し、WブートセクタB203の所定の領域に書き込む。ここで、WブートセクタA202のブートセクタ更新回数がNである場合、WブートセクタB203のWブート更新回数は(N+1)となる。次に、WブートセクタB203のチェックサムを算出し、WブートセクタB203の所定の領域に書き込む。また、図8(b)に示すように、Wブート処理Bが実行されている場合も、Wブート処理Aが実行されている場合と同様である。即ち、WブートセクタA202のWブートデータAは、受信レコードデータに基づいて書き換えられ、WブートセクタA202のWブート更新回数とWブートセクタA202のチェックサムは、算出した値が書き込まれる。
【0058】
既に正常に機能しているブート処理に新しい機能を追加する場合に、追加される機能についてのブートデータをWブートデータとしてWブートセクタに書き込むことにより、ブートデータの書き換え作業における、書き換えエラーによる制御装置の起動不能状態を回避することができる。
【0059】
また、本発明のブートデータは、上述したフラッシュメモリのメモリ書き換え制御方法の各工程をコンピュータに実行させるためのプログラムである
【0060】
【発明の効果】
以上説明したように、本発明によれば、ブートセクタとして起動ブートセクタ、WブートセクタAおよびWブートセクタBをフラッシュメモリに設け、起動ブートセクタには、制御装置を起動させるための最低限の機能を実現させる書き換え不要のブートデータを格納し、WブートセクタAには、起動ブートセクタおよびWブートセクタAを除いたフラッシュメモリの所望のセクタを書き換える機能、起動ブートセクタに格納されている以外の起動時の処理機能等を実現させるブートデータを格納し、WブートセクタBには、起動ブートセクタおよびWブートセクタBを除いたフラッシュメモリの所望のセクタを書き換える機能、起動ブートセクタに格納されている以外の起動時の処理機能等を実現させるブートデータを格納することにより、Wブートセクタの書き換え処理異常による制御装置の起動不能状態を回避することができる。
【0061】
また、1回のダウンロード作業のみでブートデータを書き換えることができることから、作業手順が簡素化され、作業エラーの発生を削減することができる。更に、書き換え作業の時間を削減することができる。
【図面の簡単な説明】
【図1】 メモリ書き換え制御システムのハードウェアの構成を示す図である。
【図2】 本発明のフラッシュメモリにおけるブートセクタの構成を示す図である。
【図3】 メモリ書き換え制御システムの構成の一例を示すブロック図である。
【図4】 2個のWブートセクタによるWブートデータの書き換え順序を示す図である。
【図5】 ブート処理の手順を示す図である。
【図6】 Wブート処理AまたはWブート処理Bによるフラッシュメモリ書き換え処理の手順を示す図である。
【図7】 (a)は、Wブート処理Aが実行されている場合のフラッシュメモリの書き換え範囲を示す図であり、
(b)は、Wブート処理Bが実行されている場合のフラッシュメモリの書き換え範囲を示す図である。
【図8】 (a)は、Wブート処理Aが実行されている場合のWブートセクタの書き換え方法を示す図であり、
(b)は、Wブート処理Bが実行されている場合のWブートセクタの書き換え方法を示す図である。
【図9】 従来の書き換え処理によるデータ遷移を説明する図である。
【符号の説明】
100 メモリ書き換え制御システム
101 フラッシュメモリ
102 RAM
103 CPU
201 起動ブートセクタ
202 WブートセクタA
203 WブートセクタB
301 ブートデータ判定部
302 第1の書き換え部
303 第2の書き換え部
[0001]
BACKGROUND OF THE INVENTION
  The present invention relates to a memory rewrite control system for flash memory.InMemory rewrite control methodAnd suchProgram for causing computer to execute each process of memory rewrite control methodInRelated. In particular, a flash memory memory rewrite control system capable of rewriting a desired sector of a flash memory by a single download operation using a flash memory having at least three boot sectors.InMemory rewrite control methodAnd suchProgram for causing computer to execute each process of memory rewrite control methodInRelated.
[0002]
[Prior art]
  In a control device such as a printer or a scanner, a firmware boot program and a main program are separated and stored in a flash memory. For example, in the case of a printer, a main program that is a program for controlling the normal mode of the printer and font data are stored in the main sector. In addition, a program for executing printer startup processing and a program for controlling the printer rewrite control mode and executing rewriting processing such as a main program and font data stored in the main sector are stored in the boot sector. . Here, the sector is an area that can be erased collectively in the flash memory.
[0003]
  When rewriting the data (boot data) stored in the boot sector, the boot data is software-inhibited from rewriting the sector where the program is stored, so three downloads are required. there were.
[0004]
  FIG. 9 is a diagram for explaining data transition by the conventional rewriting process. In the flash memory rewriting process, the flash memory sector rewriting process other than the boot sector is executed by the boot data stored in the boot sector, and the boot sector rewriting process is executed by the newly downloaded boot rewrite data. .
[0005]
  With the boot data, boot rewrite data is acquired in the first download process, the main sector data is erased, and the acquired boot rewrite data is written in the main sector ((1) in FIG. 9).
[0006]
  Next, using the boot rewrite data, new boot data is acquired in the second download process, the boot sector data is erased, and the acquired new boot data is written in the boot sector ((2) in FIG. 9).
[0007]
  With the new boot data, new main data is acquired in the third download process, the boot rewrite data of the main sector is erased, and the acquired new main data is written into the main sector ((3) in FIG. 9).
[0008]
[Problems to be solved by the invention]
  As described above, the rewriting work of the data stored in the boot sector of the flash memory is not completed unless the download process is executed three times, so that the work procedure is complicated and work errors are likely to occur. There was a problem. There is also a problem that the time required for the rewriting work becomes long.
[0009]
  Accordingly, the present invention has been made to solve the above-described problems, and has a function of rewriting a flash memory with boot data for executing a minimum function for starting a control device as a first boot sector. The boot data to be executed is stored in the second boot sector and the third boot sector, and it is determined whether the function of the second boot sector or the function of the third boot sector is executed by the function of the first boot sector. A memory rewrite control system for a flash memory that rewrites a sector of the flash memory excluding the first boot sector and the determined boot sector by the function of the determined second boot sector or the function of the third boot sectorInMemory rewrite control methodAnd suchProgram for causing computer to execute each process of memory rewrite control methodTheThe purpose is to provide.
[0010]
[Means for Solving the Problems]
  The inventor has conducted research to solve the above-described conventional problems. As a result, at least three boot sectors are provided in the flash memory, and the first boot sector stores boot data that does not require rewriting for executing the minimum function for starting the control device, and the second boot sector. In the sector, a boot for executing a function for rewriting a desired sector of the flash memory excluding the first boot sector and the second boot sector, a processing function at startup other than that stored in the first boot sector, etc. Data is stored, and the third boot sector has a function of rewriting a desired sector of the flash memory excluding the first boot sector and the third boot sector, startup other than that stored in the first boot sector By storing boot data for executing processing functions, etc., the control device cannot be started due to an abnormal boot sector rewrite process. Not only it is possible to avoid a state, work procedures of the boot sector rewriting processing of the flash memory is simplified, it has been found that it is possible to shorten the time required for processing. Based on the above research results, the following inventions are provided.
[0011]
[0012]
[0013]
[0014]
[0015]
  One aspect of the flash memory memory rewrite control method of the present invention is as follows.A central processing unit;There are multiple sectors that are batch erasable storage areas, and boot processing is performed in the sectors.Center To processing equipmentFlash memory having at least three boot sectors storing boot data for executionConsisting ofA memory rewrite control method in a memory rewrite control system,Central processing unit(A)When starting the control system,First boot data stored in a first boot sector of at least three boot sectorsRun the relevantAn initialization process for initializing the hardware of the control system;ConcernedA boot mode determining step for determining a boot mode of the control system, and each of a plurality of boot sectors excluding the first boot sector when the boot mode determined by the boot mode determining step is a memory rewrite mode of the flash memory Boot data determination step of determining required boot data from the boot data stored in the boot data update determination data stored in each boot sector;Run(b) The second boot stored in the second boot sector when the required boot data determined in the boot data determination step is stored in the second boot sector of at least three boot sectors. dataRunA first communication interface initialization step for initializing a communication interface for receiving update data of the flash memory from the host device, and a desired flash memory except for the second boot sector and the first boot sector A first rewriting step of rewriting the sector with update data;Run(c) The third boot stored in the third boot sector when the required boot data determined in the boot data determination step is stored in the third boot sector of at least three boot sectors. dataRunA second communication interface initialization step for initializing a communication interface for receiving update data of the flash memory from the host device, and a desired flash memory except for the third boot sector and the first boot sector A second rewriting step of rewriting a sector with update data;RunThis is a memory rewrite control method for a flash memory.
[0016]
  Another aspect of the memory rewrite control method for a flash memory according to the present invention is the first rewrite described above.ProcessThe first update data receiving step for receiving update data for rewriting the flash memory from the host device, and the second boot sector and the first for writing the update data received in the first update data receiving step The first sector determination step of determining a desired sector of the flash memory, excluding the boot sector, and the desired sector of the flash memory determined by the first sector determination step by the first update data reception step Boot data stored in the third boot sector when the desired sector selected in the first update data writing step and the first sector determination step for writing the received update data is the third boot sector. A memory of a flash memory comprising a first update determination data calculation step for calculating and updating update determination data It is an odd place control method.
[0017]
  Another aspect of the memory rewrite control method of the flash memory according to the present invention is the second rewrite described above.ProcessIncludes a second update data receiving step for receiving update data for rewriting the flash memory from the host device, and a third boot sector and a first for writing the update data received in the second update data receiving step. A second sector determination step of determining a desired sector of the flash memory excluding the boot sector, and a desired sector of the flash memory determined by the second sector determination step by the second update data reception step Boot data stored in the second boot sector when the desired sector selected in the second update data writing step for writing the received update data and the second sector determination step is the second boot sector A memory of a flash memory comprising a second update determination data calculation step for calculating and updating update determination data It is an odd place control method.
[0018]
  Another aspect of the memory rewrite control method of the flash memory according to the present invention is a boot update in which the boot data update determination data is added to the number of times the boot data of a plurality of boot sectors provided in the flash memory is rewritten. This is a memory rewrite control method for a flash memory having a number of times and a boot sector checksum for verifying the validity of boot data stored in the boot sector.
[0019]
  Of the present inventionBoot dataAccording to one aspect of the present invention, each step of the above-described flash memory memory rewrite control method includes a plurality of sectors that are batch erasable storage areas, and boot data for executing boot processing in these sectors. Is boot data to be executed by a central processing unit that controls a memory rewrite control system for a flash memory having at least three boot sectors.
[0020]
[0021]
DETAILED DESCRIPTION OF THE INVENTION
  An embodiment of the present invention will be described with reference to the drawings. In addition, the embodiment described below is for explanation, and does not limit the scope of the present invention. Accordingly, those skilled in the art can employ embodiments in which each or all of these elements are replaced by equivalents thereof, and these embodiments are also included in the scope of the present invention.
[0022]
  FIG. 1 is a diagram illustrating a hardware configuration of a memory rewrite control system for a flash memory. The memory rewrite control system 100 includes a flash memory 101 that can be rewritten for each sector, which is a minimum storage area that can be erased collectively, a RAM 102 that can be read and written, and a memory rewrite control system 100. A CPU 103 that executes control of the apparatus is provided.
[0023]
  The flash memory 101 stores a main program that executes control in the normal mode of the control device, font data, and the like, and further controls the startup processing of the control device and rewrites data stored in the flash memory 101. The boot program is stored. Hereinafter, the sector in which the boot program is stored is referred to as “boot sector”, and the sector in which the main program, font data, and the like are stored is referred to as “main sector”. The boot program data stored in the boot sector is referred to as “boot data”, and the main program and font data stored in the main sector are referred to as “main data”.
[0024]
  FIG. 2 is a diagram showing an example of the configuration of the boot sector in the flash memory of the present invention. Hereinafter, a boot sector composed of three sectors will be described as an example. The boot sector in the flash memory 101 is composed of three sectors: a first boot sector 201, a second boot sector 202, and a third boot sector 203.
[0025]
  The first boot sector 201 stores boot data for executing a minimum function for starting the control device. For example, as a minimum function for starting the control device, various initializations such as initialization of the CPU 103 and initialization of the stack, various checks such as a check of the RAM 102 and a check of the gate array register, determination of a start mode, etc. Various determinations are included. Hereinafter, the first boot sector 201 is referred to as a “startup boot sector”. The boot data stored in the boot boot sector 201 is referred to as “boot boot data”, and the process executed by the boot boot data is referred to as “boot boot process”.
[0026]
  The second boot sector 202 is a boot that executes various functions at the time of start-up and functions for rewriting data stored in the flash memory 101 other than the minimum function for starting the control device, which is a start-up boot process. Data is stored. For example, functions at startup other than the minimum function for starting the control device, which is boot boot processing, include communication interface type determination, processing corresponding to each communication interface, processing corresponding to various status commands, etc. It is done. The boot boot process is stored in the flash memory 101 other than the boot boot sector 201 and the second boot sector (own sector) 202 by boot data for executing a function for rewriting data stored in the flash memory 101. A process of rewriting the boot data and main data is executed. Hereinafter, the second boot sector 202 is designated as “W boot sector A”, the W boot data stored in the W boot sector A 202 is designated as “W boot data A”, and the W boot processing executed by the W boot data A is designated as “W boot Called “Process A”.
[0027]
  The third boot sector 203 executes various functions at the time of start-up other than the minimum function for starting the control device, which is a start-up boot process, and a function for rewriting data stored in the flash memory 101. Boot data substantially similar to the boot data A is stored. The boot boot process is stored in the flash memory 101 other than the boot boot sector 201 and the third boot sector (own sector) 203 by boot data for executing a function for rewriting data stored in the flash memory 101. Rewrite the boot data and main data. Hereinafter, the third boot sector 203 is “W boot sector B”, the W boot data stored in the W boot sector B 203 is “W boot data B”, and the W boot process executed by the W boot data B is “W boot”. Called “Process B”.
[0028]
  The startup boot data stored in the startup boot sector 201 is data that cannot be rewritten except for bug correction when a firmware bug is found. Therefore, the boot sectors to be rewritten (hereinafter referred to as “W boot sector”) are the W boot sector A 202 and the W boot sector B 203. That is, by rewriting the other W boot sector by one boot process of the W boot sector, at least one W boot sector operating normally can be guaranteed. Hereinafter, boot data stored in the W boot sector is referred to as “W boot data”, and boot processing executed by the W boot data is referred to as “W boot processing”.
[0029]
  In addition, the W boot sector A 202 and the W boot sector B 203 are designated with a checksum for verifying the validity of each W boot sector area, the W boot update count and the W boot sector, which are the data update count of the W boot sector. W boot ID is stored. The checksum and W boot update count are used as boot data update determination data. That is, the startup boot process determines the W boot sector in which the latest W boot data is stored based on the W boot update count and the checksum, and the W boot data stored in the determined W boot sector determines the W boot sector. Run the boot process.
[0030]
  FIG. 3 is a block diagram showing an example of the configuration of a flash memory memory rewrite control system. The memory rewrite control system 100 includes a boot data determination unit 301, a first rewrite unit 302, and a second rewrite unit 303. Further, the first rewriting unit 302 includes a first update data receiving unit 321, a first sector determining unit 322, a first update data writing unit 323, and a first update determining data calculating unit 324, and The rewriting unit 303 includes a second update data receiving unit 331, a second sector determining unit 332, a second update data writing unit 333, and a second update determining data calculating unit 334.
[0031]
  The boot data determination unit 301 is a function unit of the boot boot process of the boot boot sector 201 in FIG. 2, and executes either the W boot process A of the W boot sector A 202 or the W boot process B of the W boot sector B 203. Is determined based on the checksum stored in the W boot sector, which is the boot data update determination data, and the W boot update count.
[0032]
  The first rewriting unit 302 is a functional unit of the W boot process A of the W boot sector A 202 of FIG. 2, and a plurality of desired sectors constituting the flash memory 101 excluding the boot boot sector 201 and the W boot sector A 202 are desired. Rewrite the sector. That is, the first rewriting unit 302 rewrites the W boot data B stored in the W boot sector B 203.
[0033]
  The first update data receiving unit 321 of the first rewriting unit 302 receives update data from the host device using a predetermined communication interface. The update data is received in data units (record units) of a predetermined size according to a predetermined format. The first sector determining unit 322 of the first rewriting unit 302 determines which sector of the flash memory 101 storing the update data received by the first update data receiving unit 321 is the boot boot In the case of the sector 201 and the W boot sector A 202, rewriting with update data is not executed. The first update data writing unit 323 of the first rewriting unit 302 writes the update data to a desired sector of the flash memory 101 excluding the boot boot sector 201 and the W boot sector A 202. The first update determination data calculation unit 324 of the first rewriting unit 302 calculates the checksum of the W boot sector B203 and the main sector of the rewritten flash memory 101, and updates the W boot sector A202 with the W boot update. Based on the number of times, the W boot update number of the W boot sector B203 is calculated.
[0034]
  The second rewriting unit 303 is a functional unit of the W boot process B of the W boot sector B 203 in FIG. 2 and is used for a plurality of sectors constituting the flash memory 101 excluding the boot boot sector 201 and the W boot sector B 203. Rewrite the sector. That is, the second rewriting unit 303 rewrites the W boot data A stored in the W boot sector A 202.
[0035]
  The second update data receiving unit 331 of the second rewriting unit 303 receives update data from the host device using a predetermined communication interface. The update data is received according to a predetermined format with data of a predetermined size as a reception data unit. The second sector determination unit 332 of the second rewrite unit 303 determines which sector of the flash memory 101 that stores the update data received by the second update data reception unit 331 is, and boots up In the case of the sector 201 and the W boot sector B203, rewriting with update data is not executed. The second update data writing unit 333 of the second rewrite unit 303 writes the update data to a desired sector of the flash memory 101 excluding the boot boot sector 201 and the W boot sector B 203. The second update determination data calculation unit 334 of the second rewrite unit 303 calculates the checksum of the W boot sector A202 and the main sector of the rewritten flash memory 101, and updates the W boot sector B203 with the W boot update. Based on the number of times, the W boot update number of the W boot sector A202 is calculated.
[0036]
  FIG. 4 is a diagram showing a rewrite order of W boot data by two W boot sectors. First, the W boot sector A 202 and the W boot sector B 203 of the flash memory 101 are shipped with both the W boot data A and the W boot data B stored therein. The number of times of W boot update is shipped with one W boot sector as “1” and the other W boot sector as “0”. For example, the W boot update number of the W boot sector A 202 is set to “1”, and the W boot update number of the W boot sector B 203 is set to “0”.
[0037]
  Whether the latest W boot process executed by the boot process is the W boot process A or the W boot process B, checksum and W boot of each W boot sector area in the W boot sector A 202 and the W boot sector B 203 Determine based on the number of updates. When the checksums of the W boot sector A 202 and the W boot sector B 203 are both normal, the W boot process of the W boot sector having a large number of W boot updates is executed. When one of the checksums of the W boot sector A 202 and the W boot sector B 203 is normal, the W boot process of the W boot sector having the normal check sum is executed.
[0038]
  The W boot data of the non-executed W boot sector is rewritten by the W boot process of the executing W boot sector, and the W boot update count is updated. For example, as shown in the figure, in the case of the first rewrite of the W boot sector, that is, in the case of the first write, the W boot process being executed is the W boot process A. Therefore, the W boot sector to be rewritten is the W boot sector B203. That is, the W boot data A of the W boot sector B 203 is updated by the W boot process A.
[0039]
  The number of times of W boot update of the W boot sector B 203 is the number obtained by adding 1 to the number of times of W boot update of the W boot sector A 202. That is, the number of times of W boot update of the updated W boot sector is larger than the number of times of W boot update of the W boot sector being executed. As shown in the figure, as an exception, when the number of updates is FFFFh, the next number of updates is 0. That is, when the W boot update count is written 10,000 h times, it returns to the state at the time of shipment.
[0040]
  FIG. 5 is a diagram illustrating an example of a boot processing procedure. An example of the processing procedure by the startup boot process of the startup boot sector 201, the W boot process A of the W boot sector A 202, and the W boot process B of the W boot sector B 203 is shown. First, when the control device is turned on, various initializations such as initialization of the CPU 103, initialization of the stack, etc., checks of the RAM 102, checks of the gate array registers, etc., various determinations such as determination of the start mode, etc. Is executed (S501).
[0041]
  Next, it is determined whether or not the memory rewrite mode is set (S502). If the memory rewrite mode is not set (S502; No), the checksum of the main sector is verified (S512), and whether the checksum is normal or not. It is determined whether or not the main sector data is normal (S513). If the checksum is abnormal (S513; No), error processing such as error display is executed (S515). On the other hand, when the checksum is normal (S513; Yes), various processes of the main program are executed (S514).
[0042]
  When the memory rewrite mode is selected (S502; Yes), the checksum of the W boot sector A202 and the checksum of the W boot sector B203 are verified (S503). It is determined whether or not the checksums of the W boot sector A202 and the W boot sector B203 are both abnormal (S504). When the checksums of the W boot sector A202 and the W boot sector B203 are both abnormal (S504; Yes) Executes error processing such as error display (S505).
[0043]
  On the other hand, if the checksums of W boot sector A202 and W boot sector B203 are not abnormal (S504; No), it is determined whether or not the checksums of W boot sector A202 and W boot sector B203 are both normal. (S506) When the checksums of the W boot sector A202 and the W boot sector B203 are both normal (S506; Yes), the W boot update count of the W boot sector A202 and the W boot update count of the W boot sector B203 are acquired. Then, it is determined whether or not the W boot update count of the W boot sector A202 is larger than the W boot update count of the W boot sector B203 (S508).
[0044]
  When the W boot update count of the W boot sector A202 is larger than the W boot update count of the W boot sector B203, that is, when the W boot data A is newer than the W boot data B (S508; Yes). Then, the memory rewriting process by the W boot process A of the W boot sector A 202 is executed (S510). On the other hand, when the W boot update count of the W boot sector A202 is less than or equal to the W boot update count of the W boot sector B203, that is, when the W boot data B is newer than the W boot data A (S508; No) Executes the memory rewrite process by the W boot process B of the W boot sector B 203 (S509).
[0045]
  If the checksums of the W boot sector A 202 and the W boot sector B 203 are not normal, that is, if one of the W boot sectors is abnormal (S506; No), the check sum of the W boot sector A 202 is normal. If the checksum of the W boot sector A202 is normal (S511; Yes), the memory rewriting process by the W boot process A of the W boot sector A202 is executed (S510). On the other hand, when the checksum of the W boot sector A202 is abnormal, that is, when the checksum of the W boot sector B203 is normal (S511; No), the memory rewriting process by the W boot process B of the W boot sector B203 is performed. Execute (S509).
[0046]
  When shifting from the normal mode to the memory rewrite mode, when a memory rewrite mode shift command is received (S516), the process proceeds to step S503, and the flash memory is rewritten.
[0047]
  FIG. 6 is a diagram illustrating an example of a procedure of flash memory rewriting processing by W boot processing A or W boot processing B. First, the communication interface for receiving update data for rewriting the flash memory 101 from the host device is determined and various initializations are performed (S601), and the W boot process of the currently executing W boot sector is recognized. A boot ID is acquired (S602).
[0048]
  Next, update data is received in record units (S603). Hereinafter, the received update data for each record is referred to as “received record data”. Next, it is determined whether or not the received record data is an end record, that is, whether or not the reception of update data is complete (S604).
[0049]
  If the received record data is not the end record (S604; No), it is determined whether the received record data is update data of a sector of the flash memory to be stored (S605). The reception record data stores a storage start address, and based on this storage start address, the sector of the flash memory to be stored is determined. The sectors to be rewritten are sectors other than the boot boot sector and the W boot sector being executed.
[0050]
  When the received record data is update data of the sector of the flash memory to be stored (S605; Yes), the received record data is written (S606) to notify the host device that the data has been normally received. The normal reception status is transmitted (S607), the process returns to step S603, and the record data as the next update data is received. On the other hand, if the received record data is not the update data of the sector of the flash memory to be stored (S605; No), the process returns to step S603, and the record data that is the next update data is received.
[0051]
  If the received record data is an end record (S604; Yes), the main sector checksum and the non-executed W boot sector checksum are calculated and written (S608), and predetermined end processing in the memory rewrite mode is performed. This is executed (S609), and finally CPU reset processing is executed (S610).
[0052]
  FIG. 7 is a diagram showing the rewrite range of the flash memory. FIG. 7A is a diagram showing a rewrite range of the flash memory when the W boot process A is executed, and FIG. 7B is a diagram of the flash memory when the W boot process B is executed. It is a figure which shows the rewriting range. As shown in the figure, data other than the following four items of data is rewritten based on the received record data.
[0053]
• Boot data: Boot data that cannot be rewritten.
W boot data of the W boot sector being executed: W boot data A when the W boot process A is being executed, and W boot data B when the W boot process B is being executed.
Checksum of non-executed W boot sector: When W boot process A is being executed, it is the checksum of W boot sector B203, and when W boot process B is being executed, check of W boot sector A202 Sam.
Main sector checksum: The checksum of the entire main sector area.
[0054]
  There are various methods for rewriting data in the flash memory 101. For example, it can be executed using the rewriting method described below.
  The first rewriting method is a case where update data of the entire sector is sequentially received as record data in all sectors constituting the flash memory 101. Here, the record data of the unused area is received as 0xff. When the received record data is the first update data of the sector to be rewritten (update target sector), the data of the update target sector is erased and the received record data is written to the update target sector based on a predetermined storage start address . If the received record data is not the first update data of the update target sector, the received record data is written to the update target sector based on a predetermined storage start address.
[0055]
  In the second rewriting method, in the data of the W boot sector, the update data of the portion where the data exists is received and the entire sector is rewritten, and in the sectors other than the W boot sector, only the data to be updated is received. In this case, only the received record data portion is rewritten. When the W boot sector is an update target sector, if the received record data is the first update data of the update target sector, the update target sector data is copied onto the RAM and the update target sector data is erased. All the received record data of a portion where data exists in the sector image on the RAM is written, and the written sector image on the RAM is written back to the update target sector. If a sector other than the W boot sector is the update target sector, the data of the update target sector is copied onto the RAM, the received record data of the part to be updated is written, the data of the update target sector is erased, and the data is written The sector image on the RAM is written back to the update target sector.
[0056]
  The third rewriting method is a case in which only data to be updated is received in all sectors constituting the flash memory 101 and only the received record data portion is rewritten. The data of the update target sector is copied onto the RAM, the received record data of the part to be updated is written, the data of the update target sector is erased, and the written sector image on the RAM is written back to the update target sector.
[0057]
  FIG. 8 is a diagram showing details of the W boot sector rewriting method. FIG. 8A is a diagram illustrating a method for rewriting the W boot sector when the W boot process A is executed, and FIG. 8B is a diagram illustrating the W boot when the W boot process B is executed. It is a figure which shows the rewriting method of a sector. For example, as shown in FIG. 8A, when the W boot process A is executed, the W boot data B of the W boot sector B 203 is sequentially received, and the received record data is based on a predetermined storage start address. Write to the W boot sector B203. Next, the number of times of updating the W boot sector B 203 is calculated and written in a predetermined area of the W boot sector B 203. Here, when the boot sector update count of the W boot sector A 202 is N, the W boot update count of the W boot sector B 203 is (N + 1). Next, the checksum of the W boot sector B203 is calculated and written in a predetermined area of the W boot sector B203. Further, as shown in FIG. 8B, the case where the W boot process B is executed is the same as the case where the W boot process A is executed. That is, the W boot data A of the W boot sector A 202 is rewritten based on the received record data, and the calculated values are written in the W boot sector A 202 W boot update count and the W boot sector A 202 checksum.
[0058]
  When a new function is added to a boot process that is already functioning normally, the boot data for the added function is written to the W boot sector as the W boot data, thereby controlling by a rewrite error in the boot data rewriting operation. It is possible to avoid a state in which the apparatus cannot be started.
[0059]
  In addition, the present inventionBoot dataIs a program for causing a computer to execute each step of the above-described flash memory rewrite control method.is there.
[0060]
【The invention's effect】
  As described above, according to the present invention, the boot boot sector, the W boot sector A, and the W boot sector B are provided in the flash memory as the boot sector, and the boot boot sector has a minimum for starting the control device. The boot data that does not need to be rewritten to realize the function is stored, and the W boot sector A has a function for rewriting a desired sector of the flash memory excluding the boot boot sector and the W boot sector A, except for being stored in the boot boot sector The boot data for realizing the processing function at the time of start-up is stored, and the W boot sector B is stored in the start boot sector, the function of rewriting a desired sector of the flash memory excluding the start boot sector and the W boot sector B By storing boot data that realizes processing functions at startup other than W can be avoided start disabled state of the rewrite process abnormal by the control device of the boot sector.
[0061]
  In addition, since the boot data can be rewritten with only one download operation, the operation procedure is simplified and the occurrence of operation errors can be reduced. Furthermore, the time required for rewriting can be reduced.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a hardware configuration of a memory rewrite control system.
FIG. 2 is a diagram showing a configuration of a boot sector in the flash memory of the present invention.
FIG. 3 is a block diagram showing an example of the configuration of a memory rewrite control system.
FIG. 4 is a diagram showing a rewrite order of W boot data by two W boot sectors.
FIG. 5 is a diagram illustrating a procedure of boot processing.
FIG. 6 is a diagram showing a procedure of flash memory rewriting processing by W boot processing A or W boot processing B.
FIG. 7A is a diagram showing a flash memory rewrite range when W boot processing A is executed;
  (b) is a diagram showing the rewrite range of the flash memory when the W boot process B is executed.
FIG. 8A is a diagram showing a W boot sector rewriting method when W boot processing A is executed;
  (b) is a diagram showing a method of rewriting the W boot sector when the W boot process B is executed.
FIG. 9 is a diagram for explaining data transition by a conventional rewriting process.
[Explanation of symbols]
      100 Memory rewrite control system
      101 flash memory
      102 RAM
      103 CPU
      201 Boot boot sector
      202 W boot sector A
      203 W boot sector B
      301 Boot data determination unit
      302 First rewriting unit
      303 2nd rewriting part

Claims (5)

中央処理装置と、一括消去可能な記憶領域であるセクタを複数個有し、前記セクタの中にブート処理を前記中央処理装置に実行させるためのブートデータを格納した少なくとも3個のブートセクタを有したフラッシュメモリとからなるメモリ書き換え制御システムにおけるメモリ書き換え制御方法であって、
前記中央処理装置が、
(a)前記制御システムの起動時に、少なくとも3個の前記ブートセクタの中の第1のブートセクタに格納されている第1のブートデータを実行して、
当該制御システムのハードウェアの初期化を行う初期化工程と、
当該制御システムの起動モードを判定する起動モード判定工程と、
前記起動モード判定工程によって判定された前記起動モードが前記フラッシュメモリのメモリ書き換えモードである場合に、前記第1のブートセクタを除いた複数の前記ブートセクタのそれぞれに格納されている前記ブートデータの中から所要の前記ブートデータを、それぞれの前記ブートセクタに格納されているブートデータ更新判定データに基づいて判定するブートデータ判定工程と、を実行し、
)前記ブートデータ判定工程によって判定された前記所要のブートデータが少なくとも3個の前記ブートセクタの中の第2のブートセクタに格納されている場合に、前記第2のブートセクタに格納されている第2のブートデータを実行して、
前記フラッシュメモリの更新データをホスト装置から受信するための通信インタフェースの初期化を行う第1の通信インタフェース初期化工程と、
前記第2のブートセクタおよび前記第1のブートセクタを除いた、前記フラッシュメモリの所望の前記セクタを前記更新データにより書き換える第1の書き換え工程と、を実行し、
)前記ブートデータ判定工程によって判定された前記所要のブートデータが少なくとも3個の前記ブートセクタの中の第3のブートセクタに格納されている場合に、前記第3のブートセクタに格納されている第3のブートデータを実行して、
前記フラッシュメモリの更新データを前記ホスト装置から受信するための通信インタフェースの初期化を行う第2の通信インタフェース初期化工程と、
前記第3のブートセクタおよび前記第1のブートセクタを除いた、前記フラッシュメモリの所望の前記セクタを前記更新データにより書き換える第2の書き換え工程と、を実行する、
ことを特徴とするフラッシュメモリのメモリ書き換え制御方法。
There are a central processing unit and a plurality of sectors that are batch erasable storage areas, and the sector has at least three boot sectors that store boot data for causing the central processing unit to execute boot processing. A memory rewrite control method in a memory rewrite control system comprising a flash memory,
The central processing unit is
(A) executing the first boot data stored in the first boot sector of at least three of the boot sectors when starting the control system ;
An initialization step for performing hardware initialization of the control system,
An activation mode determination step for determining an activation mode of the control system;
When the startup mode is determined by the activation mode determining step is a memory rewrite mode of the flash memory, the boot data stored in each of the plurality of the boot sector excluding the first boot sector Performing the boot data determination step for determining the required boot data from among the boot data update determination data stored in each of the boot sectors ;
( B ) When the required boot data determined in the boot data determination step is stored in the second boot sector of at least three of the boot sectors, the boot data is stored in the second boot sector. Running the second boot data ,
A first communication interface initialization step for initializing a communication interface for receiving update data of the flash memory from a host device;
Excluding the second boot sector and the first boot sector, running a first rewrite step of rewriting by the update data of the desired said sector of said flash memory,
( C ) If the required boot data determined by the boot data determination step is stored in a third boot sector of at least three of the boot sectors, the boot data is stored in the third boot sector. Running the third boot data
A second communication interface initialization step for initializing a communication interface for receiving update data of the flash memory from the host device;
Excluding the third boot sector and the first boot sector, executes, and a second rewrite step of rewriting the desired said sector of said flash memory by the update data,
A memory rewrite control method for a flash memory.
前記第1の書き換え工程が、
前記フラッシュメモリを書き換えるための前記更新データを前記ホスト装置から受信する第1の更新データ受信工程と、
前記第1の更新データ受信工程によって受信した前記更新データを書き込むための、前記第2のブートセクタおよび前記第1のブートセクタを除いた、前記フラッシュメモリの所望の前記セクタを判定する第1のセクタ判定工程と、
前記第1のセクタ判定工程によって判定された前記フラッシュメモリの所望の前記セクタに、前記第1の更新データ受信工程によって受信した前記更新データを書き込む第1の更新データ書き込み工程と、
前記第1のセクタ判定工程によって選択された所望の前記セクタが前記第3のブートセクタである場合に、前記第3のブートセクタに格納される前記ブートデータ更新判定データを算出し更新する第1の更新判定データ算出工程と、
を備えたことを特徴とする請求項に記載のフラッシュメモリのメモリ書き換え制御方法。
The first rewriting step includes
A first update data receiving step of receiving the update data for rewriting the flash memory from the host device;
Wherein for writing the update data received by the first update data receiving step, except the second boot sector and the first boot sector, desired first determining the sector of the flash memory A sector determination step;
A first update data writing step of writing the update data received by the first update data receiving step into the desired sector of the flash memory determined by the first sector determination step;
If desired the sector selected by the first sector determination step is the third boot sector, first to update calculates the boot data update determination data stored in the third boot sector Update determination data calculation process of
The memory rewrite control method for a flash memory according to claim 1 , comprising:
前記第2の書き換え工程が、
前記フラッシュメモリを書き換えるための前記更新データを前記ホスト装置から受信する第2の更新データ受信工程と、
前記第2の更新データ受信工程によって受信した前記更新データを書き込むための、前記第3のブートセクタおよび前記第1のブートセクタを除いた、前記フラッシュメモリの所望の前記セクタを判定する第2のセクタ判定工程と、
前記第2のセクタ判定工程によって判定された前記フラッシュメモリの所望の前記セクタに、前記第2の更新データ受信工程によって受信した前記更新データを書き込む第2の更新データ書き込み工程と、
前記第2のセクタ判定工程によって選択された所望の前記セクタが前記第2のブートセクタである場合に、前記第2のブートセクタに格納される前記ブートデータ更新判定データを算出し更新する第2の更新判定データ算出工程と、
を備えたことを特徴とする請求項またはに記載のフラッシュメモリのメモリ書き換え制御方法。
The second rewriting step includes
A second update data receiving step of receiving the update data for rewriting the flash memory from the host device;
Wherein for writing the update data received by the second update data receiving step, excluding the third boot sector and the first boot sector, the desired second determining said sector of said flash memory A sector determination step;
A second update data writing step of writing the update data received by the second update data receiving step into the desired sector of the flash memory determined by the second sector determination step;
If desired the sector selected by the second sector determination step is the second boot sector, the second to be stored in the second boot sector the boot data update determination data is calculated the update Update determination data calculation process of
Memory rewriting control method of a flash memory according to claim 1 or 2, further comprising a.
前記ブートデータ更新判定データが、
前記フラッシュメモリに備えられている複数個の前記ブートセクタの前記ブートデータを書き換えた回数を通算したブート更新回数と、
前記ブートセクタに格納されている前記ブートデータの正当性を検証するための前記ブートセクタのチェックサムと、
を備えていることを特徴とする請求項からのいずれか1項に記載のフラッシュメモリのメモリ書き換え制御方法。
The boot data update determination data is
The number of times of boot update including the number of times of rewriting the boot data of the plurality of boot sectors provided in the flash memory,
A checksum of the boot sector for verifying the validity of the boot data stored in the boot sector;
The memory rewrite control method for a flash memory according to any one of claims 1 to 3 , further comprising:
請求項からのいずれか1項に記載のブートデータ。The boot data according to any one of claims 1 to 4 .
JP2002170633A 2002-06-11 2002-06-11 Memory rewrite control method and program for executing each step of memory rewrite control method Expired - Fee Related JP4062421B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2002170633A JP4062421B2 (en) 2002-06-11 2002-06-11 Memory rewrite control method and program for executing each step of memory rewrite control method
EP03011150A EP1372068A3 (en) 2002-06-11 2003-05-23 System, method and program for rewriting a flash memory
US10/460,459 US7383431B2 (en) 2002-06-11 2003-06-11 Control system and method for rewriting data in a flash memory and a data storage medium in which a program is stored for rewriting data in a flash memory
KR10-2003-0037432A KR100507884B1 (en) 2002-06-11 2003-06-11 System for controlling rewrite in memory, method for controlling rewrite in memory, and information recording media for storing programs which excute each steps in method for controlling rewrite in memory
CN031424147A CN100407177C (en) 2002-06-11 2003-06-11 Flash memory rewriting control system and memory rewriting control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002170633A JP4062421B2 (en) 2002-06-11 2002-06-11 Memory rewrite control method and program for executing each step of memory rewrite control method

Publications (2)

Publication Number Publication Date
JP2004013854A JP2004013854A (en) 2004-01-15
JP4062421B2 true JP4062421B2 (en) 2008-03-19

Family

ID=30436836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002170633A Expired - Fee Related JP4062421B2 (en) 2002-06-11 2002-06-11 Memory rewrite control method and program for executing each step of memory rewrite control method

Country Status (1)

Country Link
JP (1) JP4062421B2 (en)

Also Published As

Publication number Publication date
JP2004013854A (en) 2004-01-15

Similar Documents

Publication Publication Date Title
KR100437230B1 (en) Method and apparatus for updating a nonvolatile memory
KR100507884B1 (en) System for controlling rewrite in memory, method for controlling rewrite in memory, and information recording media for storing programs which excute each steps in method for controlling rewrite in memory
US6836859B2 (en) Method and system for version control in a fault tolerant system
TWI515660B (en) Firmware variable update method
KR101427755B1 (en) Device and method for firmware upgrade using usb
CN101815988A (en) Firmware image update and management
KR20010070416A (en) Computer
JP2006260330A (en) Firmware version management method and information processing apparatus for computer system
US7634648B2 (en) Data processing apparatus and control method for a data processing apparatus that temporarily provides a plurality of boot sectors in flash ROM
CN111026417A (en) Embedded equipment upgrading method and embedded equipment
US7558949B2 (en) Data processing apparatus and control method for verifying that version codes in selected boot sector and main sector match
JP2005157528A (en) Memory device
US20050223268A1 (en) Method of writing non-volatile memory that avoids corrupting the vital initialization code
JP4238930B2 (en) Memory rewrite control system.
JP4062429B2 (en) Memory rewrite control method and program for executing each step of memory rewrite control method
JP4062421B2 (en) Memory rewrite control method and program for executing each step of memory rewrite control method
WO2018150820A1 (en) Information processing device
JP6575157B2 (en) Firmware download method and firmware embedded device
EP4113288B1 (en) Systems and method for bootup activation of firmware images
JP2004013536A (en) Flash memory rewrite control system, flash memory rewrite control method, program for executing each step of flash memory rewrite control method, and information recording medium
JP2002007152A (en) Download method and device
JPH1063497A (en) How to update the program
JP6812332B2 (en) Information processing system and information processing method
TWI839278B (en) Method for performing firmware update in electronic device and micro-control unit equipped with firmware update function
JP2014112419A (en) Mobile terminal apparatus, software update method, operation control method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070327

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070515

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070528

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070627

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070919

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071108

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071218

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: 20110111

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120111

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120111

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140111

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees