(57)【要約】【課題】  パーティション変更を伴うファームウェア更新の所要時間を短くする。【解決手段】プロセッサ１が、ファームウェア更新のプログラムコードに従って、（ａ）更新後のパーティション定義情報を含むパーティション定義ファイル４１をＲＡＭ３にロードし、（ｂ）パーティション定義情報に基づいて、パーティションサイズを変更するデータ領域を特定し、（ｃ）パーティションサイズ変更後のデータ領域に対応するファームウェアのデータを、パーティション定義情報で特定されるアドレスに書き込む。【選択図】  図１
2011095952.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に記憶されているファームウェアを更新するファームウェア更新方法において、
ファームウェア更新のプログラムコードを実行開始するステップと、
更新後のパーティション定義情報を含むパーティション定義ファイルをロードするステップと、
前記プログラムコードにより、前記パーティション定義情報に基づいて、パーティションサイズを変更するデータ領域を特定するステップと、
前記プログラムコードにより、パーティションサイズ変更後のデータ領域に対応するファームウェアのデータを、前記パーティション定義情報で特定される前記記憶装置のアドレスに書き込むステップと、
を備えることを特徴とするファームウェア更新方法。
【請求項２】
前記データ領域は、ブート領域を含むことを特徴とする請求項１記載のファームウェア更新方法。
【請求項３】
前記プログラムコードにより、パーティションサイズ変更後の複数のデータ領域に対応するファームウェアを、それらのデータ領域にそれぞれ対応する複数のイメージファイルから読み出し、前記パーティション定義情報で特定されるそれらのデータ領域に書き込むことを特徴とする請求項１または請求項２記載のファームウェア更新方法。
【請求項４】
前記パーティション定義ファイルは、前記データ領域についてのパーティション定義情報とそのデータ領域に対応するイメージファイルのファイル名とを含み、
前記パーティション定義ファイルを参照して、前記データ領域に対応するイメージファイルを特定すること、
を特徴とする請求項３記載のファームウェア更新方法。
【請求項５】
ファームウェアが記憶されている記憶装置と、
前記ファームウェアを実行するプロセッサとを備え、
前記プロセッサは、ファームウェア更新のプログラムコードを実行開始し、
更新後のパーティション定義情報を含むパーティション定義ファイルをロードし、前記プログラムコードに従って、前記パーティション定義情報に基づいて、パーティションサイズを変更するデータ領域を特定し、前記プログラムコードに従って、パーティションサイズ変更後のデータ領域に対応するファームウェアのデータを、前記パーティション定義情報で特定される前記記憶装置のアドレスに書き込むこと、
を特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファームウェア更新方法および電子機器に関するものである。
【背景技術】
【０００２】
オペレーティングシステム（ＯＳ）、制御プログラムなどのカーネルプログラムを実行して各種処理を実行する電子機器には、フラッシュメモリなどのＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）にファームウェアが記憶されており、起動時にそのファームウェアをプロセッサが実行され、そのファームウェアに従って上述のカーネルプログラムをロードし実行開始する。
【０００３】
そのようなＥＥＰＲＯＭには、例えば、ブート領域とカーネル領域とアプリケーション領域といった複数のパーティションにそれぞれファームウェアが格納されることがある。その場合、ブート領域は、起動時に最初に呼び出されるアドレスに設けられており、そのアドレスにブートローダを有する。ブートローダは、カーネル領域のコードをＥＥＰＲＯＭからＲＡＭ（Random Access Memory）にロードし、実行させる。アプリケーション領域には、ユーザプログラムなどが記憶されており、適宜実行される。
【０００４】
このようなファームウェアは、機能追加、不具合の修正などの理由で更新されることがある。
【０００５】
ファームウェアを更新する場合、ファームウェアのサイズに変更がなければ、そのまま、ファームウェアを上書きすることで更新が可能であるが、ファームウェアのサイズが変更される場合、ＥＥＰＲＯＭのパーティションを変更する必要がある。
【０００６】
図６は、パーティションの変更を伴うファームウェアの更新を行う場合のファームウェア更新方法（第１の方法）の一例を示す図である。
【０００７】
まず、プロセッサがファームウェア更新を実行するプログラムコードをロードして実行開始する（ステップＳ１０１）。
【０００８】
パーティションの変更を伴うファームウェアの更新を行う場合、プロセッサは、このプログラムコードに従って、現時点のパーティション定義情報（例えば１または複数のパーティションのそれぞれの開始アドレスおよびパーティションサイズ）を有するデータ領域（例えばブート領域）のファームウェアを最初に更新する（ステップＳ１０２）このとき、更新前のファームウェアが起動済みであるため、更新前のファームウェアにおけるパーティション定義情報に基づいて、プロセッサは、更新用のファームウェアの書き込み位置を特定する。
【０００９】
その後、更新後のパーティションを有効にするため、プロセッサは、このプログラムコードに従って、再起動を行って、パーティション定義情報を更新後のものに切り替え（ステップＳ１０３）、再度、ファームウェア更新を実行するプログラムコードをロードして実行開始する（ステップＳ１０４）。そして、プロセッサは、このプログラムコードに従って、各更新対象領域のファームウェアを、更新後のパーティションに書き込む（ステップＳ１０５〜Ｓ１０７）。
【００１０】
このようにして、パーティションの変更を伴うファームウェアの更新を行うことができる。
【００１１】
また、他の方法としては、例えば特許文献１に記載のファームウェア更新方法（第２の方法）がある。図７は、パーティションの変更を伴うファームウェアの更新を行う場合のファームウェア更新方法の別の一例を示す図である。
【００１２】
このファームウェア更新方法では、起動処理を実行しＯＳが実行開始した後（ステップＳ２０１）、所定のブートパラメータ領域におけるパーティション定義情報が更新され（ステップＳ２０２）、現時点のパーティションに合致するように、更新対象領域の更新用ファームウェアを分割して書き込む（ステップＳ２０３）。これにより、再起動後は、新しいパーティションに書き込まれたファームウェアが実行される。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００７−１９３５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、上述の第１の方法では、再起動が必要になるため、ファームウェア更新の所要時間が長くなってしまい、電子機器が使用できない期間が増加してしまう。
【００１５】
また、上述の第２の方法では、ＥＥＰＲＯＭのブートパラメータ領域の更新および更新用ファームウェアの分割が必要になるため、ファームウェア更新の所要時間が長くなってしまい、電子機器が使用できない期間が増加してしまう。さらに、ブートパラメータ領域の更新が必要であるため、ブートパラメータ領域のパーティションが固定となっている必要がある。
【００１６】
本発明は、上記の問題に鑑みてなされたものであり、パーティション変更を伴うファームウェア更新の所要時間を短くすることができるファームウェア更新方法および電子機器を得ることを目的とする。
【課題を解決するための手段】
【００１７】
上記の課題を解決するために、本発明では以下のようにした。
【００１８】
本発明に係るファームウェア更新方法は、ファームウェア更新のプログラムコードを実行開始するステップと、更新後のパーティション定義情報を含むパーティション定義ファイルをロードするステップと、プログラムコードにより、パーティション定義情報に基づいて、パーティションサイズを変更するデータ領域を特定するステップと、プログラムコードにより、パーティションサイズ変更後のデータ領域に対応するファームウェアのデータを、パーティション定義情報で特定されるアドレスに書き込むステップとを備える。
【００１９】
これにより、ファームウェア更新の途中での再起動、更新用イメージデータの分割などを行う必要がないため、パーティション変更を伴うファームウェア更新の所要時間が短くなる。
【００２０】
また、本発明に係るファームウェア更新方法は、上記のファームウェア更新方法に加え、次のようにしてもよい。この場合、上述のデータ領域は、ブート領域を含む。
【００２１】
つまり、この方法によれば、さらに、ブート領域も他のデータ領域と同様にパーティション変更を伴うファームウェア更新を行うことができる。
【００２２】
また、本発明に係るファームウェア更新方法は、上記のファームウェア更新方法のいずれかに加え、次のようにしてもよい。この場合、プログラムコードにより、パーティションサイズ変更後の複数のデータ領域に対応するファームウェアを、それらのデータ領域にそれぞれ対応する複数のイメージファイルから読み出し、パーティション定義情報で特定されるそれらのデータ領域に書き込む。
【００２３】
また、本発明に係るファームウェア更新方法は、上記のファームウェア更新方法のいずれかに加え、次のようにしてもよい。この場合、パーティション定義ファイルは、データ領域についてのパーティション定義情報とそのデータ領域に対応するイメージファイルのファイル名とを含む。そして、そのパーティション定義ファイルを参照して、データ領域に対応するイメージファイルを特定する。
【００２４】
本発明に係る電子機器は、ファームウェアが記憶されている記憶装置と、ファームウェアを実行するプロセッサとを備える。そして、プロセッサは、ファームウェア更新のプログラムコードを実行開始し、更新後のパーティション定義情報を含むパーティション定義ファイルをロードし、プログラムコードに従って、パーティション定義情報に基づいて、パーティションサイズを変更するデータ領域を特定し、プログラムコードに従って、パーティションサイズ変更後のデータ領域に対応するファームウェアのデータを、パーティション定義情報で特定されるアドレスに書き込む。
【００２５】
これにより、ファームウェア更新の途中での再起動、更新用イメージデータの分割などを行う必要がないため、パーティション変更を伴うファームウェア更新の所要時間が短くなる。
【発明の効果】
【００２６】
本発明によれば、パーティション変更を伴うファームウェア更新の所要時間を短くすることができる。
【図面の簡単な説明】
【００２７】
【図１】図１は、本発明の実施の形態に係る電子機器の構成を示すブロック図である。
【図２】図２は、図１におけるファームウェアの構成例を示す図である。
【図３】図３は、本発明の実施の形態におけるパーティション定義ファイルの一例を示す図である。
【図４】図４は、本発明の実施の形態に係るファームウェア更新方法について説明するフローチャートである。
【図５】図５は、本発明の実施の形態におけるファームウェア更新時のパーティションの変更例を示す図である。
【図６】図６は、パーティションの変更を伴うファームウェアの更新を行う場合のファームウェア更新方法の一例を示す図である。
【図７】図７は、パーティションの変更を伴うファームウェアの更新を行う場合のファームウェア更新方法の別の一例を示す図である。
【発明を実施するための形態】
【００２８】
以下、図に基づいて本発明の実施の形態を説明する。
【００２９】
図１は、本発明の実施の形態に係る電子機器の構成を示すブロック図である。
【００３０】
図１に示す電子機器は、プロセッサ１、バス２、ＲＡＭ３、フラッシュメモリ４およびインタフェース５を有する。
【００３１】
プロセッサ１は、各種プログラムを実行するＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）などといった演算処理装置である。
【００３２】
また、バス２は、プロセッサ１に接続され、データ、アドレスおよび命令を送受する信号線である。
【００３３】
また、ＲＡＭ３は、バス２に接続されており、プロセッサ１により使用されるプログラムおよびデータを一時的に記憶するメモリである。ＲＡＭ３には、例えばＤＲＡＭ（Dynamic RAM）が使用される。
【００３４】
また、フラッシュメモリ４は、バス２に接続されており、ファームウェア１１が記憶されている記憶装置である。なお、フラッシュメモリ４の代わりに、別種のＥＥＰＲＯＭを使用してもよい。このようなファームウェア１１が記憶されるフラッシュメモリ４には、ファイルシステムが設けられておらず、プロセッサ１は、アドレスを直接指定して、ファームウェア１１にアクセスする。
【００３５】
図２は、図１におけるファームウェア１１の構成例を示す図である。このファームウェア１１は、ブート領域、カーネル領域およびアプリケーション領域という３つのデータ領域のファームウェアからなり、これらの３つのデータ領域に、フラッシュメモリ４において３つのパーティションが使用される。ブート領域は、起動時にプロセッサ１により最初に呼び出されるアドレスに設けられており、そのアドレスにブートローダを有する。ブートローダは、プロセッサ１により実行され、カーネル領域のコードをフラッシュメモリ４からＲＡＭ３にロードし、実行させる。アプリケーション領域には、ユーザプログラムなどが記憶されており、適宜ＲＡＭ３にロードされ実行される。この実施の形態では、これらのデータ領域のいずれかに、このファームウェア１１を更新するためのＦ／Ｗ更新プログラムコードが存在する。このＦ／Ｗ更新プログラムコードが実行されることで、後述のパーティションサイズの変更を伴うファームウェア更新が実行される。
【００３６】
また、インタフェース５は、バス２に接続されており、記録媒体や外部のホスト装置との間でデータの入出力を行う回路である。インタフェース５を介して、更新用のファームウェアのイメージファイルが供給される。
【００３７】
この実施の形態では、インタフェース５に記録媒体２１が接続され、記録媒体２１から、ファームウェア更新のためのインストールパッケージ３１が供給される。インストールパッケージ３１には、パーティション定義ファイル４１と、ファームウェア更新の対象とするデータ領域に対応するイメージファイル（ここでは、ブートイメージファイル４２、カーネルイメージファイル４３、およびアプリケーションイメージファイル４４）とが含まれている。
【００３８】
パーティション定義ファイル４１は、ファームウェア更新後のパーティション定義情報を含む。図３は、本発明の実施の形態におけるパーティション定義ファイル４１の一例を示す図である。
【００３９】
パーティション定義ファイル４１は、ファームウェアが更新されるデータ領域を指定する領域識別子を含み、さらに、その領域識別子に関連付けて、イメージファイル４２〜４４のファイル名、並びに更新後のパーティションの定義情報（開始アドレスおよびサイズ）を含む。図３に示すパーティション定義ファイル４１は、ブート領域を示すboot、カーネル領域を示すkernel、およびアプリケーション領域を示すaplという３つの領域識別子を含む。したがって、ファームウェア更新の対象として、ブート領域、カーネル領域、およびアプリケーション領域の３つのデータ領域が指定されている。
【００４０】
また、ブートイメージファイル４２は、更新後のブート領域のプログラムコード（つまりファームウェア）を有し、カーネルイメージファイル４３は、更新後のカーネル領域のプログラムコード（つまりファームウェア）を有し、アプリケーションイメージファイル４４は、更新後のアプリケーション領域のプログラムコード（つまりファームウェア）を有する。
【００４１】
次に、本発明の実施の形態に係るファームウェア更新方法について説明する。図４は、本発明の実施の形態に係るファームウェア更新方法について説明するフローチャートである。
【００４２】
まず、Ｆ／Ｗ更新プログラムコードがＲＡＭ３にロードされプロセッサ１により実行開始される（ステップＳ１）。
【００４３】
プロセッサ１は、Ｆ／Ｗ更新プログラムコードに従って、パーティション定義ファイル４１をＲＡＭ３にロードし（ステップＳ２）、パーティション定義ファイル４１を参照して、ファームウェア更新対象のデータ領域を特定するとともに、更新後のパーティション（つまり、データ領域）の開始アドレスおよびサイズを特定する（ステップＳ３）。
【００４４】
そして、プロセッサ１は、Ｆ／Ｗ更新プログラムコードに従って、ファームウェア更新対象であってファームウェア更新が完了していないデータ領域を１つ選択し（ステップＳ４）、そのデータ領域についてのイメージファイルをＲＡＭ３に読み込み、そのイメージファイル内のデータ（つまり更新後のファームウェア）をフラッシュメモリ４に書き込む（ステップＳ５）。このとき、そのデータ（ファームウェア）は、そのデータ領域についてパーティション定義ファイル４１において指定されている開始アドレスに、指定されているサイズで書き込まれる。
【００４５】
プロセッサ１は、Ｆ／Ｗ更新プログラムコードに従って、パーティション定義ファイル４１で指定されているすべてのデータ領域についてファームウェア更新が完了しているか否かを判定する（ステップＳ６）。パーティション定義ファイル４１で指定されているデータ領域のうち、ファームウェア更新が完了していない残りのデータ領域があれば、すべてのデータ領域についてファームウェア更新が完了するまで、ステップＳ４，Ｓ５の処理が繰り返し実行され、すべてのデータ領域についてファームウェア更新が完了すると、ファームウェア更新処理が完了する。
【００４６】
図５は、本発明の実施の形態におけるファームウェア更新時のパーティションの変更例を示す図である。例えば、図３に示すパーティション定義ファイル４１の場合、図５に示すようにパーティションサイズが変更された上で、各データ領域のファームウェアが更新される。
【００４７】
以上のように、上記実施の形態によれば、プロセッサ１が、ファームウェア更新のプログラムコードに従って、（ａ）更新後のパーティション定義情報を含むパーティション定義ファイルをロードし、（ｂ）パーティション定義情報に基づいて、パーティションサイズを変更するデータ領域を特定し、（ｃ）パーティションサイズ変更後のデータ領域に対応するファームウェアのデータを、パーティション定義情報で特定されるアドレスに書き込む。
【００４８】
これにより、ファームウェア更新の途中での再起動、更新用イメージデータの分割などを行う必要がないため、パーティション変更を伴うファームウェア更新の所要時間が短くなる。
【００４９】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【００５０】
例えば、上記実施の形態では、フラッシュメモリ４がバス２を介してプロセッサ１に接続されるシステム構成となっているが、フラッシュメモリ４がプロセッサ１に直接接続されるシステム構成としてもよい。
【産業上の利用可能性】
【００５１】
本発明は、例えば、プリンタ、コピー機、複合機などの画像形成装置のファームウェアの更新に適用可能である。
【符号の説明】
【００５２】
１  プロセッサ
４  フラッシュメモリ（記憶装置の一例）
１１  ファームウェア
４１  パーティション定義ファイル
４２  ブートイメージファイル（イメージファイルの一例）
４３  カーネルイメージファイル（イメージファイルの一例）
４４  アプリケーションイメージファイル（イメージファイルの一例）
【図１】
2011095952.tif 000003
【図２】
2011095952.tif 000004
【図３】
2011095952.tif 000005
【図４】
2011095952.tif 000006
【図５】
2011095952.tif 000007
【図６】
2011095952.tif 000008
【図７】
2011095952.tif 000009