JP2005293476A - フラッシュメモリ書き換えシステム、フラッシュメモリ書き換え方法及びプログラム - Google Patents
フラッシュメモリ書き換えシステム、フラッシュメモリ書き換え方法及びプログラム Download PDFInfo
- Publication number
- JP2005293476A JP2005293476A JP2004111079A JP2004111079A JP2005293476A JP 2005293476 A JP2005293476 A JP 2005293476A JP 2004111079 A JP2004111079 A JP 2004111079A JP 2004111079 A JP2004111079 A JP 2004111079A JP 2005293476 A JP2005293476 A JP 2005293476A
- Authority
- JP
- Japan
- Prior art keywords
- rewriting
- flash memory
- data
- memory
- predetermined 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.)
- Withdrawn
Links
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】 書き換えた後のフラッシュメモリ内に、書き換え前の古い内容が残ることのないフラッシュメモリ書き換えシステムを提供する。
【解決手段】 複合処理装置1は、データ書き換え可能なフラッシュメモリ63と、フラッシュメモリ63に書き込まれるデータを一時的に保存するRAM62と、フラッシュメモリ63へのデータの書き込みを制御するCPU61と、を備え、前記CPU61は、ホストコンピュータ100から受信する書き換え方法指示コマンドに応じて、フラッシュメモリ63の書き換え方法を選択する。
【選択図】 図2
【解決手段】 複合処理装置1は、データ書き換え可能なフラッシュメモリ63と、フラッシュメモリ63に書き込まれるデータを一時的に保存するRAM62と、フラッシュメモリ63へのデータの書き込みを制御するCPU61と、を備え、前記CPU61は、ホストコンピュータ100から受信する書き換え方法指示コマンドに応じて、フラッシュメモリ63の書き換え方法を選択する。
【選択図】 図2
Description
本発明は、フラッシュメモリ書き換えシステム、フラッシュメモリ書き換え方法及びプログラムに関する。
情報機器、たとえばプリンタ、スキャナ等の機器においては、ファームウェアがブートセクタとメインプログラムセクタとに分離されて、フラッシュメモリに格納されている。例えば、プリンタの場合、プリンタの通常モードを制御するプログラムであるメインプログラムがメインプログラムセクタに格納されている。また、プリンタの起動処理を実行する起動プログラムや、プリンタの書き換えモードを制御してフラッシュメモリを書き換える書き換えモードプログラムなどはブートセクタに格納されている。ここで、セクタとは、フラッシュメモリにおいて一括して消去書き込み可能な領域である。
フラッシュメモリの書き換えは、セクタ単位で行われる。通常、情報機器への新しい機能の追加や、ファームウェアのバグ修正や、特定顧客向けのカスタマイズなどのために、情報機器のファームウェアはバージョンアップされるので、フラッシュメモリの書き換えは比較的頻繁に行われる。
従来のフラッシュメモリの書き換え時には、先ず、フラッシュメモリ内の更新対象セクタ内のデータをRAMにコピーする。そして、コピーの終了後、更新対象セクタをセクタ消去プログラムにより一括消去(セクタの初期化)する。
次に、RAMにコピーされたデータを編集し、RAMでの編集の終了後、編集されたデータ(以下、新セクタ格納データ)を、書き込み可能なデータサイズ分(例えば、1ワード)取り出して更新対象セクタに書き込む。そして、新セクタ格納データを更新対象セクタに全て書き込んだか否かを判定し、新セクタ格納データを更新対象セクタに全て書き込んでいない場合には書き込みを続行し、一方新セクタ格納データを更新対象セクタに全て書き込んだ場合には、セクタの書き換え処理を終了する(特許文献1参照)。
特開2004-13536号公報(請求項1)
上述のフラッシュメモリの書き換え方法では、フラッシュメモリのプログラムの一部だけを書き換える場合には、書き換え対象のプログラムコードを1セクタ単位でRAMにコピーしてからRAM上で編集し、書き換えた内容をフラッシュメモリのセクタに書き戻すという手順により実行されている。
この手順では、図6(b)のように1セクタ中の書き換え前のデータ領域が書き換え後のデータ領域と全く同じであり、例えばフラッシュメモリ中に記録された所定値の変更(例えば“値1”から“値0”への変更)等の場合には問題が発生しないが、図6(a)に示すように、プログラム全体におよぶ更新が必要で、1セクタ中の書き換え前のデータ領域が書き換え後のデータ領域より大きい場合、書き換え後のセクタ中に書き換え前の古い内容が一部残ってしまう可能性がある。この場合、書き換え後のセクタ中のファームウェアは、古い内容のデータにはアクセスしないため問題が発生しないと考えられるが、この書き換えにより厳密には製造メーカ内で評価中のファームウェア(旧プログラム領域なし)と製品に組み込まれたファームウェア(旧プログラム領域あり)が全く同じではなくなる。したがって、ファームウェア中にプログラムエラー等が存在した場合、製品版のファームウェアでは、偶然旧プログラム領域中の値を読んで装置が異常動作する等、評価中には顕在化しなかった問題が生じてしまうおそれがあり、ファームウェアの品質を確保できたとは言えない状況が生じてしまう虞もある。
本発明は、書き換え前の領域より小さい領域の書き換えを実行した場合でも、書き換えた後のフラッシュメモリのセクタには、書き換えた新プログラム領域の外部に、書き換え前の古い内容が残ることのないフラッシュメモリ書き換えシステム、フラッシュメモリ書き換え方法及びプログラムを提供しつつ、必要な状況に応じて、部分的なフラッシュメモリの書き換え方法を選択する方法を提供することを目的とする。
(1) データ書き換え可能なフラッシュメモリと、
前記フラッシュメモリに書き込まれるデータを一時的に保存する揮発性メモリと、
前記フラッシュメモリへの前記データの書き込みを制御する制御部とを備え、
前記制御部は、ホストコンピュータから受信する書き換え方法指示コマンドに応じて、前記フラッシュメモリの書き換え方法を選択することを特徴とするフラッシュメモリ書き換えシステム。
(2) 前記制御部は、前記ホストコンピュータから受信する前記書き換え方法指示コマンドに応じて、部分書き換えプログラム及び一括書き換えプログラムのうち何れか一つを実行して、前記フラッシュメモリ内のデータを書き換えることを特徴とする(1)記載のフラッシュメモリ書き換えシステム。
(3) 前記制御部は、前記部分書き換えプログラムに応じて、前記フラッシュメモリ内の所定領域に記憶されているデータを前記揮発性メモリ内のデータ展開領域に展開し、前記フラッシュメモリ内の前記所定領域を初期化し、前記揮発性メモリにコピーされたデータを編集し、編集された前記データを前記フラッシュメモリの前記所定領域に書き込むことを特徴とする(2)記載のフラッシュメモリ書き換えシステム。
(4) 前記制御部は、前記一括書き換えプログラムに応じて、前記揮発性メモリ内のデータ展開領域を初期化し、前記フラッシュメモリ内の所定領域を初期化し、前記データ展開領域に書き込みデータを展開し、前記書き込みデータを前記フラッシュメモリの前記所定領域に書き込むことを特徴とする(2)記載のフラッシュメモリ書き換えシステム。
(5) (1)〜(4)の何れか1項に記載のフラッシュメモリ書き換えシステムを備えたプリンタ。
(6) (1)〜(4)の何れか1項に記載のフラッシュメモリ書き換えシステムを備えた情報機器。
(7) ホストコンピュータから受信する書き換え方法指示コマンドに応じて、フラッシュメモリの書き換え方法を選択する選択ステップと、
選択された書き換え方法に応じてフラッシュメモリの書き換えを行う書き換えステップと、を備えたことを特徴とするフラッシュメモリ書き換え方法。
(8) 前記書き換えステップでは、前記ホストコンピュータから受信する前記書き換え方法指示コマンドに応じて、部分書き換え及び一括書き換えのうち何れか一つを実行して、前記不揮発性メモリ内のデータを書き換えることを特徴とする(7)記載のフラッシュメモリ書き換え方法。
(9) 前記部分書き換えを実行する場合には、
前記不揮発性メモリ内の所定領域に記憶されているデータを前記揮発性メモリ内のデータ展開領域に展開するステップと、
前記不揮発性メモリ内の前記所定領域を初期化するステップと、
前記揮発性メモリにコピーされたデータを編集するステップと、
編集された前記データを前記不揮発性メモリの前記所定領域に書き込むステップと、を実行することを特徴とする(8)記載のフラッシュメモリ書き換え方法。
(10) 前記一括書き換えを実行する場合には、
前記揮発性メモリ内のデータ展開領域を初期化するステップと、
前記不揮発性メモリ内の所定領域を初期化するステップと、
前記データ展開領域に書き込みデータを展開するステップと、
前記書き込みデータを前記不揮発性メモリの前記所定領域に書き込むステップと、を実行することを特徴とする(8)記載のフラッシュメモリ書き換え方法。
(11) ホストコンピュータから受信する書き換え方法指示コマンドに応じて、フラッシュメモリの書き換え方法を選択する選択ステップと、
選択された書き換え方法に応じてフラッシュメモリの書き換えを行う書き換えステップと、をコンピュータに実行させることを特徴とするフラッシュメモリ書き換えプログラム。
(12) 前記書き換えステップでは、前記ホストコンピュータから受信する前記書き換え方法指示コマンドに応じて、部分書き換え及び一括書き換えのうち何れか一つを実行して、前記不揮発性メモリ内のデータを書き換えることを特徴とする(11)記載のフラッシュメモリ書き換えプログラム。
(13) 前記部分書き換えを実行する場合には、
前記不揮発性メモリ内の所定領域に記憶されているデータを前記揮発性メモリ内のデータ展開領域に展開するステップと、
前記不揮発性メモリ内の前記所定領域を初期化するステップと、
前記揮発性メモリにコピーされたデータを編集するステップと、
編集された前記データを前記不揮発性メモリの前記所定領域に書き込むステップと、をコンピュータに実行させることを特徴とする(12)記載のフラッシュメモリ書き換えプログラム。
(14) 前記一括書き換えを実行する場合には、
前記揮発性メモリ内のデータ展開領域を初期化するステップと、
前記不揮発性メモリ内の所定領域を初期化するステップと、
前記データ展開領域に書き込みデータを展開するステップと、
前記書き込みデータを前記不揮発性メモリの前記所定領域に書き込むステップと、をコンピュータに実行させることを特徴とする(12)記載のフラッシュメモリ書き換えプログラム。
前記フラッシュメモリに書き込まれるデータを一時的に保存する揮発性メモリと、
前記フラッシュメモリへの前記データの書き込みを制御する制御部とを備え、
前記制御部は、ホストコンピュータから受信する書き換え方法指示コマンドに応じて、前記フラッシュメモリの書き換え方法を選択することを特徴とするフラッシュメモリ書き換えシステム。
(2) 前記制御部は、前記ホストコンピュータから受信する前記書き換え方法指示コマンドに応じて、部分書き換えプログラム及び一括書き換えプログラムのうち何れか一つを実行して、前記フラッシュメモリ内のデータを書き換えることを特徴とする(1)記載のフラッシュメモリ書き換えシステム。
(3) 前記制御部は、前記部分書き換えプログラムに応じて、前記フラッシュメモリ内の所定領域に記憶されているデータを前記揮発性メモリ内のデータ展開領域に展開し、前記フラッシュメモリ内の前記所定領域を初期化し、前記揮発性メモリにコピーされたデータを編集し、編集された前記データを前記フラッシュメモリの前記所定領域に書き込むことを特徴とする(2)記載のフラッシュメモリ書き換えシステム。
(4) 前記制御部は、前記一括書き換えプログラムに応じて、前記揮発性メモリ内のデータ展開領域を初期化し、前記フラッシュメモリ内の所定領域を初期化し、前記データ展開領域に書き込みデータを展開し、前記書き込みデータを前記フラッシュメモリの前記所定領域に書き込むことを特徴とする(2)記載のフラッシュメモリ書き換えシステム。
(5) (1)〜(4)の何れか1項に記載のフラッシュメモリ書き換えシステムを備えたプリンタ。
(6) (1)〜(4)の何れか1項に記載のフラッシュメモリ書き換えシステムを備えた情報機器。
(7) ホストコンピュータから受信する書き換え方法指示コマンドに応じて、フラッシュメモリの書き換え方法を選択する選択ステップと、
選択された書き換え方法に応じてフラッシュメモリの書き換えを行う書き換えステップと、を備えたことを特徴とするフラッシュメモリ書き換え方法。
(8) 前記書き換えステップでは、前記ホストコンピュータから受信する前記書き換え方法指示コマンドに応じて、部分書き換え及び一括書き換えのうち何れか一つを実行して、前記不揮発性メモリ内のデータを書き換えることを特徴とする(7)記載のフラッシュメモリ書き換え方法。
(9) 前記部分書き換えを実行する場合には、
前記不揮発性メモリ内の所定領域に記憶されているデータを前記揮発性メモリ内のデータ展開領域に展開するステップと、
前記不揮発性メモリ内の前記所定領域を初期化するステップと、
前記揮発性メモリにコピーされたデータを編集するステップと、
編集された前記データを前記不揮発性メモリの前記所定領域に書き込むステップと、を実行することを特徴とする(8)記載のフラッシュメモリ書き換え方法。
(10) 前記一括書き換えを実行する場合には、
前記揮発性メモリ内のデータ展開領域を初期化するステップと、
前記不揮発性メモリ内の所定領域を初期化するステップと、
前記データ展開領域に書き込みデータを展開するステップと、
前記書き込みデータを前記不揮発性メモリの前記所定領域に書き込むステップと、を実行することを特徴とする(8)記載のフラッシュメモリ書き換え方法。
(11) ホストコンピュータから受信する書き換え方法指示コマンドに応じて、フラッシュメモリの書き換え方法を選択する選択ステップと、
選択された書き換え方法に応じてフラッシュメモリの書き換えを行う書き換えステップと、をコンピュータに実行させることを特徴とするフラッシュメモリ書き換えプログラム。
(12) 前記書き換えステップでは、前記ホストコンピュータから受信する前記書き換え方法指示コマンドに応じて、部分書き換え及び一括書き換えのうち何れか一つを実行して、前記不揮発性メモリ内のデータを書き換えることを特徴とする(11)記載のフラッシュメモリ書き換えプログラム。
(13) 前記部分書き換えを実行する場合には、
前記不揮発性メモリ内の所定領域に記憶されているデータを前記揮発性メモリ内のデータ展開領域に展開するステップと、
前記不揮発性メモリ内の前記所定領域を初期化するステップと、
前記揮発性メモリにコピーされたデータを編集するステップと、
編集された前記データを前記不揮発性メモリの前記所定領域に書き込むステップと、をコンピュータに実行させることを特徴とする(12)記載のフラッシュメモリ書き換えプログラム。
(14) 前記一括書き換えを実行する場合には、
前記揮発性メモリ内のデータ展開領域を初期化するステップと、
前記不揮発性メモリ内の所定領域を初期化するステップと、
前記データ展開領域に書き込みデータを展開するステップと、
前記書き込みデータを前記不揮発性メモリの前記所定領域に書き込むステップと、をコンピュータに実行させることを特徴とする(12)記載のフラッシュメモリ書き換えプログラム。
本発明によれば、部分書き換えの方が好ましい状況においては、フラッシュメモリの部分書き換えを実行させ、そして一括書き換えの方が好ましい状況においては、フラッシュメモリの一括書き換えを実行させることができる。すなわち、書き換え前の領域より書き換え後の領域が小さい時等、部分書き換えを行った場合には、書き換えた後のフラッシュメモリのセクタに書き換えた新データ領域の外部に、書き換え前の古い内容が残るような場合には一括書き換えを行い、それ以外の場合には部分書き換えを実行するように構成することができる。これにより、フラッシュメモリ内に常に不要なデータが存在しない状態を作り出すことが可能となり、誤動作の少ないシステムを提供することが可能となる。
以下、図面を参照しながら、本発明に係るフラッシュメモリ書き換えシステムの実施の形態について詳細に説明する。以下の説明では、フラッシュメモリ書き換えシステムを備えた複合処理装置を例に挙げ、この複合処理装置のファームウェアを書き換える場合について例示する。
図1は、本実施形態の複合処理装置を含むデータ処理システムを示す斜視図である。
本実施形態の複合処理装置1は、図1に示すように、給紙部3に装填される小切手Sを筐体1aに形成された用紙搬送路P1に沿って排紙部4まで搬送するとともに、カード挿入口20から挿入される第2の読み取り媒体であるカードCを同じく筐体1aに形成された用紙搬送路P2に沿って搬送可能に構成されている。そして、複合処理装置1は、用紙搬送路P1に沿って小切手Sを搬送しながら、小切手S上の画像を読み取り、小切手Sに印字された磁気文字を読み取り、かつ小切手S上への印字を行うとともに、用紙搬送路P2に沿ってカードCを搬送しながら、カードC上の画像を読み取ることが可能な画像読取装置兼磁気文字読み取り装置兼印字装置である。複合処理装置1は、通信ケーブル50を介してホストコンピュータ100と通信可能に接続されている。
本実施形態の複合処理装置1は、図1に示すように、給紙部3に装填される小切手Sを筐体1aに形成された用紙搬送路P1に沿って排紙部4まで搬送するとともに、カード挿入口20から挿入される第2の読み取り媒体であるカードCを同じく筐体1aに形成された用紙搬送路P2に沿って搬送可能に構成されている。そして、複合処理装置1は、用紙搬送路P1に沿って小切手Sを搬送しながら、小切手S上の画像を読み取り、小切手Sに印字された磁気文字を読み取り、かつ小切手S上への印字を行うとともに、用紙搬送路P2に沿ってカードCを搬送しながら、カードC上の画像を読み取ることが可能な画像読取装置兼磁気文字読み取り装置兼印字装置である。複合処理装置1は、通信ケーブル50を介してホストコンピュータ100と通信可能に接続されている。
ホストコンピュータ100は、本体部100aと、この本体部100aに一体に設けられたディスプレイとしての表示部103と、オペレータが各種入力を行うための入力部102を有している。このホストコンピュータ100は、複合処理装置1を制御する制御端末であり、複合処理装置1は、このホストコンピュータ100から送信される各種制御コマンドに応じて画像読取、印字、磁気文字読取等の実行を行う。ホストコンピュータ100は、ファームウェアの書き換え時には、複合処理装置1にファームウェア書き換え指示コマンドを送信するとともに、新しいファームウェアデータをコマンド形式で送信する。これにより、複合処理装置1は、フラッシュメモリ内のファームウェアの書き換えを実行する。
図2は、本実施形態の複合処理装置1とホストコンピュータ100を備えたデータ処理システムの電気的構成を示すブロック図であり、図3はフラッシュメモリ63内に保存されたデータを示すメモリマップである。
まず、複合処理装置1の構成について説明する。
複合処理装置1は、CPU61と、RAM62と、フラッシュメモリ63と、通信制御部64と、搬送制御部65と、印字制御部66と、画像読取制御部67と、磁気文字読取制御部68とを備えて構成されている。
複合処理装置1は、CPU61と、RAM62と、フラッシュメモリ63と、通信制御部64と、搬送制御部65と、印字制御部66と、画像読取制御部67と、磁気文字読取制御部68とを備えて構成されている。
CPU61は、複合処理装置1の制御中枢を担うメイン制御部である。CPU61は、フラッシュメモリ63に書き込まれているファームウェアを実行して、複合処理装置1の全体を制御する各種処理を実行する。
RAM62は、複合処理装置1のメインメモリとして設けられた揮発性のメモリである。RAM62は、CPU61の各種演算における一時データバッファ、受信データを一時保存する受信バッファ、印刷データを一時保存する印刷バッファ等として用いられる。また、RAM62は、後述するフラッシュメモリ63のデータ書き換え時におけるデータ一時退避・書き換え領域としても用いられる。
フラッシュメモリ63は、複合処理装置1で実行されるブートプログラム、メインプログラム等のファームウェアや複合処理装置1の制御に用いられる各種設定値等が書き込まれた不揮発性のメモリであり、複合処理装置1の電源オフ時でもその内部のデータを失うことなく、保持することができる。
図3に示すように、フラッシュメモリ63内の記憶領域は、複数のセクタと呼ばれる領域に分割されている。本実施形態の例では、セクタ10に複合処理装置1の起動処理を実行するブートプログラムを記憶する「ブートプログラム領域」が、セクタ7およびセクタ8に起動処理後の複合処理装置1の各種動作を制御するメインプログラムを記憶する「メインプログラム領域」が、そしてセクタ9に各種設定値が記憶された「データ領域」がそれぞれ割り当てられている。
この、フラッシュメモリ63は、各セクタ単位でのみデータの消去および書き込みが可能となっている。フラッシュメモリ63のデータを書き換える具体的な方法については、後述する。
この、フラッシュメモリ63は、各セクタ単位でのみデータの消去および書き込みが可能となっている。フラッシュメモリ63のデータを書き換える具体的な方法については、後述する。
通信制御部64は、ホストコンピュータ100との通信を制御する制御部である。ホストコンピュータ100から送信される各種コマンドは、通信制御部64を介して受信され、RAM62内の受信バッファに保存される。また、複合処理装置1内の各種状況を示すステータス信号は、この通信制御部64を介してホストコンピュータ100に送信される。
搬送制御部65は、用紙搬送路P1内の小切手Sの搬送動作および用紙搬送路P2内のカードCの搬送動作を制御する制御部である。具体的に、搬送制御部65は、図示せぬ用紙検出器の検出結果に応じて、図示せぬステッピングモータを駆動して各用紙搬送路P1、P2に沿って配置された搬送ローラを回転駆動することにより、小切手SやカードCを搬送する。
印字制御部66は、筐体1a内に設けられた印字ヘッドを駆動する制御部である。複合処理装置1内には、インクジェット方式の印字ヘッドが設けられており、ホストコンピュータ100から受信した印字データに基づき、この印字ヘッドから吐出されるインク量および吐出タイミング等を制御する。
画像読取制御部67は、複合処理装置1の用紙搬送路P1、P2に沿って設けられた画像読取センサ(スキャナ)を制御する制御部である。画像読取センサは、この画像読取制御部67からの指示に応じて、用紙搬送路P1、P2を搬送される小切手SまたはカードCに読取光を照射し、その反射光を受信して小切手SまたはカードCの画像データを取得する。
磁気文字読取制御部68は、複合処理装置1の用紙搬送路P1に沿って設けられたMICR(Magnet Ink Character Reader)の動作制御を行う制御部である。MICRは、磁気文字読取制御部68の指示に応じて、用紙搬送路P1に沿って搬送される小切手Sに磁気インクで印字された磁気文字を読み取り、磁気文字データを取得する。
次に、ホストコンピュータ100の構成について説明する。
ホストコンピュータ100は、主制御部101と、入力部102と、表示部103と、通信制御部104と、データ保持部105とを備えている。
ホストコンピュータ100は、主制御部101と、入力部102と、表示部103と、通信制御部104と、データ保持部105とを備えている。
主制御部101は、CPU、RAM、ROM、他各種コントローラから構成されるホストコンピュータ100の制御中枢であり、入力部102、表示部103、通信制御部104、データ保持部105の動作を制御する。また、主制御部101は、各種プログラムを実行することにより、複合処理装置1を制御するための各種コマンドを生成し、複合処理装置1を制御する。
入力部102は、オペレータが各種データ入力をするためのマンマシンインターフェースであり、キーボードや各種入力機器等から構成することができる。また、表示部103は、液晶等のディスプレイ装置で構成されており、オペレータへの視覚的な情報の通知を行う。
通信制御部104は、複合処理装置1との通信を制御する制御部である。主制御部101によって生成された各種コマンドは、この通信制御部104を介して複合処理装置1に送信される。また、複合処理装置1内の各種状況を示すステータス信号は、この通信制御部104を介して複合処理装置1から受信される。
データ保持部105は、ホストコンピュータ100のデータ記憶領域として構成されるものである。本実施形態では、このデータ保持部105にフラッシュメモリ63内の書き換え用データが保存されているとして、以下説明を行う。
次に、本実施形態における複合処理装置1のフラッシュメモリ1の書き換えについて説明する。ここでは、まずフラッシュメモリ1の書き換え方法を選択するコマンドについて説明する。
本実施形態のホストコンピュータ100は、複合処理装置1にフラッシュメモリ63の書き換え方法を指定する書き換え方式選択コマンドを送信可能に構成されている。書き換え方式選択コマンドの形式としては、たとえば、以下のようなものが例示される。
ESC 100 n ・・・(1)
ESC 100 n ・・・(1)
式(1)において、“ESC”はコマンド体系の種類を示しており、引数“100”は、このESCコマンド体系におけるコマンドの種類、ここでは式(1)のコマンドがフラッシュメモリ書き換え方法を指定するコマンドであることを示している。そして、nは、書き換え方法を示す因数であり、例えば「n=0」の場合は、このコマンドがフラッシュメモリの部分書き換えを、そして「n=1」の場合はフラッシュメモリの一括書き換えをそれぞれ指定するものであることを意味している。
図4は、フラッシュメモリ63の書き換え方法を模式的に示す模式図であり、(a)はフラッシュメモリのセクタnの部分書き換えを、(b)はフラッシュメモリのセクタnの一括書き換えを示している。
まず、図4(a)を参照しながら、フラッシュメモリの部分書き換えについて説明する。
「フラッシュメモリの部分書き換え」とは、フラッシュメモリ63のセクタnにおける一部のデータのみを書き換える処理を指す。この部分書き換えにおいては、CPU61がフラッシュメモリ63内の例えばブートプログラム領域に書き込まれたフラッシュメモリ書き換えプログラムを実行することにより処理がなされる。
「フラッシュメモリの部分書き換え」とは、フラッシュメモリ63のセクタnにおける一部のデータのみを書き換える処理を指す。この部分書き換えにおいては、CPU61がフラッシュメモリ63内の例えばブートプログラム領域に書き込まれたフラッシュメモリ書き換えプログラムを実行することにより処理がなされる。
図4(a)を参照しながら具体的に説明すると、この部分書き換えでは、まずデータの書き換え対象となるフラッシュメモリ63内のセクタn内の全データをRAM62内のデータ展開領域にコピーする(ステップS1)。
RAM62内のデータ展開領域にセクタnの全データがコピーされると、セクタnの全データXは、フラッシュメモリ63内におけるアドレスに対応してRAM62内に展開された状態となる。そして、この全データXのうち、部分書き換えを行う書き換え領域Yのデータを新しいデータで置換することにより書き換えが実行され、書き換え領域Yが書き換えれたセクタnのデータZが生成される(ステップS2)。
なお、この部分書き換えを行う場合には、書き換えを行う前と後で書き換え領域Yの大きさが変化してはならない。
なお、この部分書き換えを行う場合には、書き換えを行う前と後で書き換え領域Yの大きさが変化してはならない。
次に、フラッシュメモリ63内のセクタnに対して初期化処理が施され、セクタn内のデータは一括消去(例えば、すべてのアドレスに何も書き込まれていない状態=0xFFが書き込まれている状態)される(ステップS3)。そして、RAM62内に展開されている書き換え後のセクタnのデータZは、フラッシュメモリ63のセクタnへ書き込みがなされ、セクタnに記録されることにより、フラッシュメモリの部分書き換えが終了する(ステップS4)。
以上が、「フラッシュメモリの部分書き換え」のフローである。このフラッシュメモリの部分書き換えは、例えばフラッシュメモリ中に記録された所定値の変更(例えば“値1”から“値0”への変更)等、書き換えを行う前と後で書き換え領域Yの大きさが変化しないような状況の場合に好適に適用できる。
以上が、「フラッシュメモリの部分書き換え」のフローである。このフラッシュメモリの部分書き換えは、例えばフラッシュメモリ中に記録された所定値の変更(例えば“値1”から“値0”への変更)等、書き換えを行う前と後で書き換え領域Yの大きさが変化しないような状況の場合に好適に適用できる。
次に、図4(b)を参照しながら、フラッシュメモリの一括書き換えについて説明する。
「フラッシュメモリの一括書き換え」とは、図4(a)を使って述べた「フラッシュメモリの部分書き換え」のフローの中で、フラッシュメモリ63からRAM62へのデータのコピーを行うことなくフラッシュメモリ63のセクタnの全データを消去し、全く新しいデータをセクタnに書き込む処理を指す。この一括書き換えにおいても、CPU61がフラッシュメモリ63内の例えばブートプログラム領域に書き込まれたフラッシュメモリ書き換えプログラムを実行することにより処理がなされる。
「フラッシュメモリの一括書き換え」とは、図4(a)を使って述べた「フラッシュメモリの部分書き換え」のフローの中で、フラッシュメモリ63からRAM62へのデータのコピーを行うことなくフラッシュメモリ63のセクタnの全データを消去し、全く新しいデータをセクタnに書き込む処理を指す。この一括書き換えにおいても、CPU61がフラッシュメモリ63内の例えばブートプログラム領域に書き込まれたフラッシュメモリ書き換えプログラムを実行することにより処理がなされる。
図4(b)を参照しながら具体的に説明すると、この一括書き換えでは、まずフラッシュメモリ63のセクタnに書き込まれるべきデータが展開される予定のRAM62内のデータ展開領域が初期化されて、データ展開領域にデータが無い状態(例えば、すべてのアドレスに何も書き込まれていない状態=0xFFが書き込まれている状態)とされる(ステップS11)。
RAM62のデータ展開領域の初期化がなされると、この初期化がなされたデータ展開領域内にセクタnに書き込まれるデータWが書き込まれて、セクタn内のアドレスに応じて展開される(ステップS12)。そして、フラッシュメモリ63内のセクタnに対して初期化処理が施され、セクタn内のデータは一括消去(例えば、すべてのアドレスに何も書き込まれていない状態=0xFFが書き込まれている状態)される(ステップS13)。そして、このRAM62に展開されたデータWをフラッシュメモリ63のセクタnに書き込まれ、セクタnに記録されることにより、フラッシュメモリの一括書き換えが終了する(ステップS14)。
以上が、「フラッシュメモリの一括書き換え」のフローである。このフラッシュメモリの一括書き換えは、例えばプログラム全体におよぶ完全更新時の書き換え等、フラッシュメモリ中の書き換えを行う前と後でセクタn内のデータ量が変化するような状況の場合に好適に適用できる。
以上が、「フラッシュメモリの一括書き換え」のフローである。このフラッシュメモリの一括書き換えは、例えばプログラム全体におよぶ完全更新時の書き換え等、フラッシュメモリ中の書き換えを行う前と後でセクタn内のデータ量が変化するような状況の場合に好適に適用できる。
本実施形態では、このフラッシュメモリの部分書き換えと一括書き換えの特徴を考慮し、ホストコンピュータ100は、書き換え方式選択コマンドを複合処理装置1に送信して、複合処理装置1におけるフラッシュメモリの書き換え方法を変化させるようにしている。複合処理装置1は、書き換え方式選択コマンドを受信し、そのコマンド解析を行った結果、部分書き換えが指示されていれば、例えばRAM62内に部分書き換えに対応する書き換えプログラムを実行し、一方、一括書き換えが指示されていれば、RAM62内に一括書き換えに対応する書き換えプログラムを実行することにより、書き換え方法が選択される。
次に、このフラッシュメモリの書き換えの全体のフローを説明する。
図5は、本実施形態のフラッシュメモリの書き換えの全体の流れを示すフローチャートである。
図5は、本実施形態のフラッシュメモリの書き換えの全体の流れを示すフローチャートである。
まず、ホストコンピュータ100は、例えばオペレータが入力部102を介して複合処理装置100のフラッシュメモリ63の書き換え指示を入力すると、複合処理装置1にフラッシュメモリ書き換えコマンドを送信して、フラッシュメモリ63の書き換えモードへの移行を指示する(ステップS21)。
複合処理装置1は、ホストコンピュータ100からフラッシュメモリ書き換えコマンドを受信すると(ステップS22)、複合処理装置1を再起動してCPU、RAM等の初期化を行い、ブートプログラム領域からフラッシュメモリ書き換えプログラムを読み出して、フラッシュメモリ書き換えモードに移行するとともに、フラッシュメモリ書き換えモードへのホストコンピュータ100に移行完了を通知する(ステップS23)。
そして、ホストコンピュータ100は、複合処理装置1がフラッシュメモリ書き換えモードへ移行すると、まず書き換え方法指示コマンドを複合処理装置1に送信して、フラッシュメモリ63の書き換え方法として部分書き換えかまたは一括書き換えを指示する(ステップS24)。そして、複合処理装置1は書き換え方法指示コマンドを受信すると(ステップS25)、書き換え方法指示コマンドに応じたフラッシュメモリ63の書き換えプログラムを実行する(ステップS26)。
ここで、書き換え方法指示コマンドが部分書き換えを指示していれば、部分書き換えプログラムを実行し、ステップS27でホストコンピュータ100から送信される書き換えデータを基に、図4(a)に示すようにフラッシュメモリ63のデータを書き換えが指示されたセクタ毎に部分書き換えする(ステップS28)。
一方、書き換え方法指示コマンドが一括書き換えを指示していれば、一括書き換えプログラムを実行し、ステップS27でホストコンピュータ100から送信される書き換えデータを基に、図4(b)に示すようにフラッシュメモリ63のデータを書き換えが指示されたセクタ毎に一括書き換えする(ステップS29)。
一方、書き換え方法指示コマンドが一括書き換えを指示していれば、一括書き換えプログラムを実行し、ステップS27でホストコンピュータ100から送信される書き換えデータを基に、図4(b)に示すようにフラッシュメモリ63のデータを書き換えが指示されたセクタ毎に一括書き換えする(ステップS29)。
そして、ステップS28及びステップS29において、フラッシュメモリ63の書き換えが終了すると、終了処理を行って複合処理装置1はリセットされて再起動される(ステップS30)。これにより、複合処理装置1のフラッシュメモリ63内のデータが書き換えられ、書き換え後は、フラッシュメモリ63内の書き換えられたデータに基づいて、複合処理装置1は動作する。
以上が、本実施形態におけるフラッシュメモリ書き換えのフローである。
以上が、本実施形態におけるフラッシュメモリ書き換えのフローである。
以上説明したように、本実施形態の複合処理装置1は、データ書き換え可能なフラッシュメモリ63と、フラッシュメモリ63に書き込まれるデータを一時的に保存するRAM62と、フラッシュメモリ63へのデータの書き込みを制御するCPU61と、を備え、前記CPU61は、ホストコンピュータ100から受信する書き換え方法指示コマンドに応じて、フラッシュメモリ63の書き換え方法を選択する。
具体的には、CPU61は、ホストコンピュータ100から受信する書き換え方法指示コマンドに応じて、部分書き換えプログラム及び一括書き換えプログラムのうち何れか一つのを実行して、フラッシュメモリ63内のデータを書き換える。
具体的には、CPU61は、部分書き換えプログラムが実行される場合には、フラッシュメモリ63内の所定領域に記憶されているデータをRAM62内のデータ展開領域に展開し、そしてフラッシュメモリ62内の所定領域を初期化し、RAM62に展開されたデータを編集し、編集されたデータをフラッシュメモリ63の所定領域に書き込む。
また、CPU61は、一括書き換えプログラムが実行される場合には、RAM62内のデータ展開領域を初期化し、フラッシュメモリ63内の所定領域を初期化し、データ展開領域に書き込みデータを展開し、書き込みデータをフラッシュメモリ63の所定領域に書き込む。
本実施形態によれば、部分書き換えの方が好ましい状況においては、複合処理装置1にフラッシュメモリ63の部分書き換えを実行させ、そして一括書き換えの方が好ましい状況においては、複合処理装置1にフラッシュメモリ63の一括書き換えを実行させることができる。例えば、書き換え前の領域より書き換え後の領域が小さい時等部分書き換えを行った場合には、書き換えた後のフラッシュメモリのセクタに書き換えた新プログラム領域の外部に、書き換え前の古い内容が残るような場合には一括書き換えを行い、それ以外の場合には部分書き換えを実行するように構成することができる。
したがって、例えばフラッシュメモリ63内のプログラム全体におよぶ完全更新時の書き換え等、フラッシュメモリ内のデータの増減が予想されるような場合には、複合処理装置1に一括書き換えを選択させることにより、書き換えられるセクタ内に書き換え前のプログラムが残らず、製造メーカー側が意図したとおりのデータ構造をフラッシュメモリ63内に構築することができる。これにより、意図せぬプログラムエラー等により、書き換え後のプログラムを実行することにより書き換え前のプログラムの一部が実行され、誤動作が発生するといった問題の生じない複合処理装置1を提供することが可能となる。
一方、フラッシュメモリ63内のある設定値を書き換える等、その領域の書き換えが他の領域に影響を及ぼさないような場合には、部分書き換えを選択させることにより、プログラムを書き換えることが可能となる。部分書き換えの場合には、ホストコンピュータ100から複合処理装置へのデータ転送量が少なくてすむので、迅速にフラッシュメモリ63内のデータ書き換えが実行できる。
また、ホストコンピュータ100は、フラッシュメモリ63内に不要なプログラムが残ったままとならないような書き換え方法を指示する書き換え方法指示コマンドを生成し、書き換え方法指示コマンドに応じてフラッシュメモリ63内のデータを書き換えるように構成することにより、フラッシュメモリ63内の書き換え履歴を保持していれば、今現在のフラッシュメモリ63内の状態がどのような状態になっているか完全に把握することが可能である。したがって、フラッシュメモリ63の書き換え回数が増加しても、常にフラッシュメモリ63内の状態を鑑みながら、フラッシュメモリ63内に不要なデータが存在しないように書き換えを実行して、常に安定な動作を実現できるデータ状態をフラッシュメモリ63内に構築することができる。
なお、本実施形態では、印刷機能、画像読取機能及び磁気文字読取機能を備えた複合処理装置1を例に挙げて説明を行ったが、これに限られることはなく、印刷機能のみを有するプリンタ、画像読取機能のみを有するスキャナ、磁気文字読取機能のみを有するMICR装置、その他フラッシュメモリを有する各種情報機器に適用してもよい。
1・・ 複合処理装置 61・・CPU 62・・RAM 63・・フラッシュメモリ 64・・通信制御部 65・・搬送制御部 66・・印字制御部 67・・画像読取制御部 68・・磁気文字読取制御部 100・・ホストコンピュータ 101・・主制御部 102・・入力部 103・・表示部 104・・通信制御部 105・・データ保持部
Claims (14)
- データ書き換え可能なフラッシュメモリと、
前記フラッシュメモリに書き込まれるデータを一時的に保存する揮発性メモリと、
前記フラッシュメモリへの前記データの書き込みを制御する制御部とを備え、
前記制御部は、ホストコンピュータから受信する書き換え方法指示コマンドに応じて、前記フラッシュメモリの書き換え方法を選択することを特徴とするフラッシュメモリ書き換えシステム。 - 前記制御部は、前記ホストコンピュータから受信する前記書き換え方法指示コマンドに応じて、部分書き換えプログラム及び一括書き換えプログラムのうち何れか一つを実行して、前記フラッシュメモリ内のデータを書き換えることを特徴とする請求項1記載のフラッシュメモリ書き換えシステム。
- 前記制御部は、前記部分書き換えプログラムに応じて、前記フラッシュメモリ内の所定領域に記憶されているデータを前記揮発性メモリ内のデータ展開領域に展開し、前記フラッシュメモリ内の前記所定領域を初期化し、前記揮発性メモリにコピーされたデータを編集し、編集された前記データを前記フラッシュメモリの前記所定領域に書き込むことを特徴とする請求項2記載のフラッシュメモリ書き換えシステム。
- 前記制御部は、前記一括書き換えプログラムに応じて、前記揮発性メモリ内のデータ展開領域を初期化し、前記フラッシュメモリ内の所定領域を初期化し、前記データ展開領域に書き込みデータを展開し、前記書き込みデータを前記フラッシュメモリの前記所定領域に書き込むことを特徴とする請求項2記載のフラッシュメモリ書き換えシステム。
- 請求項1〜4の何れか1項に記載のフラッシュメモリ書き換えシステムを備えたプリンタ。
- 請求項1〜4の何れか1項に記載のフラッシュメモリ書き換えシステムを備えた情報機器。
- ホストコンピュータから受信する書き換え方法指示コマンドに応じて、フラッシュメモリの書き換え方法を選択する選択ステップと、
選択された書き換え方法に応じてフラッシュメモリの書き換えを行う書き換えステップと、を備えたことを特徴とするフラッシュメモリ書き換え方法。 - 前記書き換えステップでは、前記ホストコンピュータから受信する前記書き換え方法指示コマンドに応じて、部分書き換え及び一括書き換えのうち何れか一つを実行して、前記不揮発性メモリ内のデータを書き換えることを特徴とする請求項7記載のフラッシュメモリ書き換え方法。
- 前記部分書き換えを実行する場合には、
前記不揮発性メモリ内の所定領域に記憶されているデータを前記揮発性メモリ内のデータ展開領域に展開するステップと、
前記不揮発性メモリ内の前記所定領域を初期化するステップと、
前記揮発性メモリにコピーされたデータを編集するステップと、
編集された前記データを前記不揮発性メモリの前記所定領域に書き込むステップと、を実行することを特徴とする請求項8記載のフラッシュメモリ書き換え方法。 - 前記一括書き換えを実行する場合には、
前記揮発性メモリ内のデータ展開領域を初期化するステップと、
前記不揮発性メモリ内の所定領域を初期化するステップと、
前記データ展開領域に書き込みデータを展開するステップと、
前記書き込みデータを前記不揮発性メモリの前記所定領域に書き込むステップと、を実行することを特徴とする請求項8記載のフラッシュメモリ書き換え方法。 - ホストコンピュータから受信する書き換え方法指示コマンドに応じて、フラッシュメモリの書き換え方法を選択する選択ステップと、
選択された書き換え方法に応じてフラッシュメモリの書き換えを行う書き換えステップと、をコンピュータに実行させることを特徴とするフラッシュメモリ書き換えプログラム。 - 前記書き換えステップでは、前記ホストコンピュータから受信する前記書き換え方法指示コマンドに応じて、部分書き換え及び一括書き換えのうち何れか一つを実行して、前記不揮発性メモリ内のデータを書き換えることを特徴とする請求項11記載のフラッシュメモリ書き換えプログラム。
- 前記部分書き換えを実行する場合には、
前記不揮発性メモリ内の所定領域に記憶されているデータを前記揮発性メモリ内のデータ展開領域に展開するステップと、
前記不揮発性メモリ内の前記所定領域を初期化するステップと、
前記揮発性メモリにコピーされたデータを編集するステップと、
編集された前記データを前記不揮発性メモリの前記所定領域に書き込むステップと、をコンピュータに実行させることを特徴とする請求項12記載のフラッシュメモリ書き換えプログラム。 - 前記一括書き換えを実行する場合には、
前記揮発性メモリ内のデータ展開領域を初期化するステップと、
前記不揮発性メモリ内の所定領域を初期化するステップと、
前記データ展開領域に書き込みデータを展開するステップと、
前記書き込みデータを前記不揮発性メモリの前記所定領域に書き込むステップと、をコンピュータに実行させることを特徴とする請求項12記載のフラッシュメモリ書き換えプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004111079A JP2005293476A (ja) | 2004-04-05 | 2004-04-05 | フラッシュメモリ書き換えシステム、フラッシュメモリ書き換え方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004111079A JP2005293476A (ja) | 2004-04-05 | 2004-04-05 | フラッシュメモリ書き換えシステム、フラッシュメモリ書き換え方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005293476A true JP2005293476A (ja) | 2005-10-20 |
Family
ID=35326303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004111079A Withdrawn JP2005293476A (ja) | 2004-04-05 | 2004-04-05 | フラッシュメモリ書き換えシステム、フラッシュメモリ書き換え方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005293476A (ja) |
-
2004
- 2004-04-05 JP JP2004111079A patent/JP2005293476A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7634648B2 (en) | Data processing apparatus and control method for a data processing apparatus that temporarily provides a plurality of boot sectors in flash ROM | |
US7558949B2 (en) | Data processing apparatus and control method for verifying that version codes in selected boot sector and main sector match | |
US7383431B2 (en) | 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 | |
JP6543122B2 (ja) | 情報処理装置と、前記情報処理装置による不揮発記憶装置の初期化方法、及びプログラム | |
JP2006011818A (ja) | 携帯可能電子装置及び携帯可能電子装置の制御方法 | |
JP4784100B2 (ja) | 処理装置およびそのファームウェアダウンロード方法。 | |
US20070150072A1 (en) | Method for controlling electronic apparatus, program for controlling electronic apparatus, electronic apparatus, and recording apparatus | |
KR100503484B1 (ko) | 화상형성장치 | |
KR20070044268A (ko) | 메인 보드의 부팅 처리 방법 및 그 장치 | |
JP2005293476A (ja) | フラッシュメモリ書き換えシステム、フラッシュメモリ書き換え方法及びプログラム | |
JPH06314202A (ja) | 画像形成装置 | |
JP2001344156A (ja) | フラッシュメモリを有する装置およびデータの書き換え方法 | |
JP2001060196A (ja) | 画像処理装置 | |
JP2003114807A (ja) | 電子機器及び本体制御プログラムの書き換え方法 | |
JP2009238071A (ja) | 組込システム | |
JP2007069514A (ja) | インクジェット記録装置 | |
JP4238930B2 (ja) | メモリ書き換え制御システム。 | |
JP2000263897A (ja) | 画像形成装置及び画像形成装置の制御プログラム更新方法 | |
JPH05274157A (ja) | 画像形成装置 | |
JP2002007152A (ja) | ダウンロード方法および装置 | |
JPH11232183A (ja) | プリンタの制御情報管理装置および制御情報管理プログラムを記録した記録媒体 | |
JPH06219021A (ja) | 画像形成装置 | |
JP2004334443A (ja) | ファームウェアダウンロード方法、ファームウェアダウンロードシステム及びファームウェアダウンロードプログラム | |
JP2008003668A (ja) | 制御プログラム書換システム、書換プログラム及び制御プログラム書換方法、並びに情報処理装置、情報処理装置制御プログラム及び情報処理装置制御方法 | |
JPH10289077A (ja) | 印刷装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070605 |