JP2014191601A - ファームウェア更新方法及びファームウェアプログラム - Google Patents

ファームウェア更新方法及びファームウェアプログラム Download PDF

Info

Publication number
JP2014191601A
JP2014191601A JP2013066809A JP2013066809A JP2014191601A JP 2014191601 A JP2014191601 A JP 2014191601A JP 2013066809 A JP2013066809 A JP 2013066809A JP 2013066809 A JP2013066809 A JP 2013066809A JP 2014191601 A JP2014191601 A JP 2014191601A
Authority
JP
Japan
Prior art keywords
parameter
update
firmware
memory
setting value
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.)
Granted
Application number
JP2013066809A
Other languages
English (en)
Other versions
JP5929809B2 (ja
Inventor
Takahiro Yamada
孝宏 山田
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Data 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 Oki Data Corp filed Critical Oki Data Corp
Priority to JP2013066809A priority Critical patent/JP5929809B2/ja
Publication of JP2014191601A publication Critical patent/JP2014191601A/ja
Application granted granted Critical
Publication of JP5929809B2 publication Critical patent/JP5929809B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】ファームウェアの更新前のパラメータをバイナリ形式のままで更新することを可能とし、暗号化されてテキスト形式では取り扱うことができないようなデータでも取り扱うことができるようにする。
【解決手段】ファームウェア更新前のパラメータ識別子と配置情報とを含むパラメータ定義情報を第2の不揮発性メモリ112から読み出すステップと、メモリ107上に更新前のパラメータ設定値と同じ形式のメモリイメージを作成するステップと、メモリイメージから読み出したパラメータ設定値をパラメータ識別子と関連付けてメモリ107に保持させるステップと、更新後のパラメータ配置情報に従って更新前のパラメータ設定値をメモリイメージに再配置するステップと、再配置後のメモリイメージを第1の不揮発メモリ105にコピーするステップと、更新後のパラメータ定義情報を第2の不揮発性メモリ112上に書き出すステップとを有する。
【選択図】図1

Description

本発明は、ファームウェア更新方法及び更新機能を備えたファームウェアプログラムに関するものである。
プリンタといった画像形成装置が実行する動作は、予め装置内に組み込まれた制御プログラム(以下、ファームウェアと称する)によって制御される。ファームウェアは、メモリに記憶されたパラメータを読み出すことにより、例えば、印刷設定等の個別に設定された設定内容を再現することができる。
このようなファームウェアを更新する場合において、ファームウェアの更新前後でパラメータの配置情報が異なるため、ファームウェア更新前後のパラメータをリセットしなければならないといった問題を解決するため、ファームウェア更新前のパラメータを一旦、RAM(Random Access Memory)上に書き出して、ファームウェア更新後の配置情報に従い、書き出したパラメータを再配置する方法が知られている。
例えば、特許文献1には、バイナリ形式でメモリ上に保持されているパラメータをテキスト形式に変換して書き出すことにより、ファームウェアの仕様によって適切な読み出し方が異なるバイナリ形式で読み出すよりも容易にパラメータを引き継ぐことができるファームウェアの更新方法が提案されている。
特開2009−254513号公報
しかしながら、従来技術においては、バイナリ形式のパラメータをテキスト形式に変換することにより、制御コードが含まれる暗号化された情報、例えば、パスワード等の秘匿情報を元のバイナリデータに正しく戻せない場合があるといった問題があった。
本発明はこのような実情に鑑みてなされたものであり、本発明の課題は、ファームウェアの更新前のパラメータをパラメータ仕様に基づきバイナリ形式のままで更新することを可能とし、暗号化されてテキスト形式では取り扱うことができないようなデータでも取り扱うことができるファームウェア更新方法及びファームウエアプログラムを提供することである。
上記課題を解決するために、本発明に係るファームウェア更新方法は、第1の不揮発性メモリに記憶されたパラメータ設定値を参照して装置を動作させるファームウェアを更新する方法であって、前記ファームウェアを更新するファームウェア更新ステップと、前記ファームウェアの更新前に、更新前の前記ファームェアのパラメータ識別子と配置情報とを含むパラメータ定義情報を第2の不揮発性メモリから読み出す更新前パラメータ定義読み出しステップと、メモリ上にファームウェア更新前の前記第1の不揮発性メモリに記憶されたパラメータ設定値と同じ形式のメモリイメージを作成する更新前メモリイメージ作成ステップと、前記メモリイメージから前記ファームウェア更新前のパラメータ設定値を読み出しパラメータ識別子と関連付けて前記メモリに保持させる更新前パラメータ設定値保持ステップと、前記ファームウェア更新後のパラメータ配置情報に従って前記メモリに保持させたファームウェア更新前のパラメータ設定値を前記メモリイメージに再配置するパラメータ設定値再配置ステップと、パラメータ設定値が再配置された前記メモリイメージを前記第1の不揮発メモリにコピーする第1の不揮発性メモリ書き込みステップと、前記ファームウェア更新後に、更新後の前記ファームウェアのパラメータ定義情報を前記第2の不揮発性メモリ上に書き出す第2の不揮発性メモリ書き出しステップとを有することを特徴としている。
また、本発明に係るファームウェアプログラムは、第1の不揮発性メモリに記憶されたパラメータ設定値を参照して装置を動作させるファームウェアを更新するファームウェアプログラムであって、前記ファームウェアを更新するファームウェア更新プログラムと、前記ファームウェアの更新前に、更新前の前記ファームェアのパラメータ識別子と配置情報とを含むパラメータ定義情報を第2の不揮発性メモリから読み出す更新前パラメータ定義読み出しプログラムと、メモリ上にファームウェア更新前の前記第1の不揮発性メモリに記憶されたパラメータ設定値と同じ形式のメモリイメージを作成する更新前メモリイメージ作成プログラムと、前記メモリイメージから前記ファームウェア更新前のパラメータ設定値を読み出しパラメータ識別子と関連付けて前記メモリに保持させる更新前パラメータ設定値保持プログラムと、前記ファームウェア更新後のパラメータ配置情報に従って前記メモリに保持させたファームウェア更新前のパラメータ設定値を前記メモリイメージに再配置するパラメータ設定値再配置プログラムと、パラメータ設定値が再配置された前記メモリイメージを前記第1の不揮発メモリにコピーする第1の不揮発性メモリ書き込みプログラムと、前記ファームウェア更新後に、更新後の前記ファームウェアのパラメータ定義情報を前記第2の不揮発性メモリ上に書き出す第2の不揮発性メモリ書き出しプログラムとを有することを特徴としている。
としている。
本発明によれば、ファームウェアの更新前のをパラメータ仕様に基づきバイナリ形式のままで更新することを可能とし、暗号化されてテキスト形式では取り扱うことができないようなデータでも取り扱うことができるファームウェア更新方法及びファームウエアプログラムを提供することができる。
画像形成装置の機能構成を説明する機能ブロック図である。 ファームウェア更新前のパラメータ仕様を説明する概略図である。 ファームウェア更新前のEEPROMの設定パラメータがRAMにコピーされた仮想EEPROMの概略図である。 ファームウェア更新後のパラメータ仕様で初期化された仮想EEPROMの概略図である。 仮想EEPROMをファームウェア更新前の設定パラメータに書き換えた仮想EEPROMの概略図である。 仮想EEPROMの作成、更新方法を説明する図である。 仮想EEPROMをファームウェア更新後のパラメータ仕様で初期化するため、一時的にRAMに待避させた状態を説明する図である。 ファームウェア更新後のパラメータ仕様を説明する概略図である。 更新後のファームウェアを動作させるための設定パラメータにファームウェア更新前の設定パラメータを反映させるための処理を説明するフローチャートである。 ファームウェア更新前のパラメータ仕様を説明する概略図である。 ファームウェア更新後のパラメータ仕様を説明する概略図である。 更新後のファームウェアを動作させるための設定パラメータにファームウェア更新前の設定パラメータを反映させるための処理を説明するフローチャートである。
以下、本発明の実施形態について図面を参照して説明する。なお、本発明は以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
[第1の実施形態]
第1の実施形態の説明においては、本発明に係るファームウェアプログラムが適用された画像形成装置を一例とし、当該ファームウェアの更新方法について説明する。
図1は、画像形成装置100の機能構成を説明する機能ブロック図である。画像形成装置100は、CPU(Central Processing Unit)101と、受信部102と、画像処理部103と、印刷部104と、第1の不揮発性メモリとしてのEEPROM(Electrically Erasable Programmable Read-Only Memory)105と、メモリとしてのRAM107と、FlashA109と、第2の不揮発性メモリとしてのFlashB112と、媒体給紙部115と、電源供給部116とを備え、受信部102を介して受信したデータに基づく画像を用紙等の媒体上に印刷することが可能な装置である。
CPU101は、受信部102、画像処理部103、印刷部104、EEPROM105、RAM107、FlashA109、FlashB112、媒体給紙部115、及び電源供給部116とシステムバス114を介して接続されており、画像形成装置100全体を統括的に制御する。
受信部102は、例えば、USB(universal Serial Bus)やネットワークで接続された図示せぬ外部の通信装置、PC(Personal Computer)から送信されたデータを受信するデータ受信部である。
画像処理部103は、受信部102を介して受信したデータ又は画像形成装置100に蓄積されたデータを印刷部104において印刷可能な印刷データに変換して生成する印刷データ生成部である。
印刷部104は、例えば、電子写真方式の印刷エンジンを備え、画像処理部103において生成された印刷データを媒体としての用紙に印刷して出力する出力部である。
EEPROM105は、電気信号により複数回の書き換えが可能な不揮発性メモリであり、画像形成装置100への給電が停止しても情報を保持する。EEPROM105は、画像形成装置100の動作設定を定義するである設定パラメータ106を保持する。
RAM107は揮発性のメモリであり、受信部102を介して受信したデータや、画像処理部103が生成した印刷データを一時的に保持する。また、RAM107は、設定パラメータ106を後述するファームウェア更新後のパラメータ仕様に基づきEEPROM105に再配置するための設定パラーメータ106と同形式のパラメータデータである仮想EEPROM108を保持する。
FlashA109は、電気信号により複数回の書き換えが可能な不揮発性メモリであり、画像形成装置100への給電が停止しても情報を保持する。FlashA109は、画像形成装置100の動作を制御するファームウェア110を保持する。ファームウェア110は、画像形成装置100の動作を制御するプログラムであり、当該ファームウェア110を動作させるためのパラメータ仕様である、ファームウェア更新後のパラメータ仕様111を有する。なお、ファームウェア110は、RAM107上にコピーされてCPU101により実行される。
FlashB112は、FlashA109と同様な不揮発性メモリであり、印刷データやログデータ等を保持する。また、FlashB112は、FlashA109上のファームウェア110が書き換えられた後、EEPROM105の設定パラメータ106にファームウェア更新前の設定パラメータを書き戻す際に使用されるファームウェア更新前のパラメータ仕様113を保持する。パラメータ仕様113は、ファームウェア更新後、ファームウェア更新前の設定パラメータがEEPROM105の設定パラメータ106に書き戻された後に、FlashA109のパラメータ仕様111として更新される。
媒体給紙部115は、例えば、A4サイズやレターサイズの用紙がセットされるカセットを有し、印刷部104に対して用紙を給紙する媒体給紙部である。
電源供給部116は、画像形成装置100に所定の電力を供給する電源部である。
次に、本実施形態に係るパラメータ仕様について説明する。本実施形態に係るパラメータ仕様とは、パラメータを一意に識別するためのパラメータ識別子としてのIDと、後述する配置等のパラメータ属性とが関連付けられたパラメータ仕様のことを表す。図2は、ファームウェア更新前のパラメータ仕様113を説明する概略図である。本実施形態に係るパラメータ仕様113は、パラメータID121と、パラメータ名122と、パラメータの属性である型123と、初期値124と、サイズ125と、配置(オフセット)126(以下、配置126と称する)とを有する。
ID121は、パラメータを一意に識別するためのIDである。ID121はパラメータに対して一意に割り当てられ、異なるファームウェアの版数で別のパラメータに割り当てられることはない。パラメータ名122は、パラメータの名称である。型123は、パラメータの属性の一つであり、文字列型(STRING)、数値型(INT)、列挙型(ENUM)といったパラメータの型である。初期値124は、パラメータの初期値である。サイズ125は、パラメータのデータ長である。配置126は、EEPROM105上の設定パラメータ106の先頭アドレスからのビットオフセットである。なお、パラメータの属性は本実施形態で挙げたもの以外にも多数存在するが、ここでは説明を容易とするために代表的な属性だけを取り上げた。
より具体的に説明すると、ID121が"1"のパラメータ名122"ModelName"は、画像形成装置のモデル名を表し、そのパラメータの型123は文字列型である。パラメータの初期値124は"model"であり、そのサイズ125たるデータ長は"6"バイト、設定パラメータ106の先頭に配置されるパラメータである。次に、ID121が"2"のパラメータ名122"AdminPassword"は装置管理者のパスワードを表し、そのパラメータの型123は文字列型である。パラメータの初期値124は"12334"であり、そのデータ長は"4"バイト、設定パラメータ106の先頭から100バイト目に配置されるパラメータである。ここで、IDが連続しているからといって、設定パラメータで連続した領域に配置されるとは限らない。ここで挙げた、パラメータ"ModelName"とパラメータ"AdminPassword"とはIDが"1"と"2"とで連続しているが、設定パラメータ上はその間に別のIDが配置されることもある。なお、パラメータ"AdminPassword"は暗号化されて、設定パラメータ106に格納されるが、その暗号化方式は周知の技術を用いることができるため、ここでの説明は省略する。
そして、ID121が"3"のパラメータ名122"ModeSize"は、A4サイズ、レターサイズといった印刷に供される用紙のサイズを表し、そのパラメータの型123は列挙型である。パラメータの初期値124は"12"であり、そのデータ長は"2"バイト、配置126は"0×1FE"である。ID121が"500"のパラメータ名122"PowerSaveMode"は、印刷終了後に所定の時間が経過し、電源供給部116が低消費電力であるパワーセーブ状態に移行するでまでの時間を表し、そのパラメータの型123は、例えば、1分、5分、10分、30分、60分、120分といった列挙型である。パラメータの初期値124は"3"であり、そのデータ長は"1"バイト、設定パラメータ106の最後に配置されるパラメータである。
次に、RAM107が保持する仮想EEPROM108について説明する。仮想EEPROM108は、ファームウェアの更新前後において、RAM107に保持される内容が異なる。図3は、ファームウェア更新前のEEPROM105上の設定パラメータ106がRAM107にコピーされた仮想EEPROM108Aの概略図であり、図4は、ファームウェア更新後のパラメータ仕様で初期化された仮想EEPROM108Bの概略図であり、図5は、仮想EEPROM108Bをファームウェア更新前の設定パラメータに書き換えた仮想EEPROM108Cの概略図である。
ここで、RAM107において仮想EEPROM108が作成され、どのように更新されていくのかを図6を用いて説明する。
更新前パラメータ定義情報450は、FlashB112で保持されたパラメータ仕様113がRAM106に展開されたデータである。更新前パラメータ設定値451は、仮想EEPROM108Aのを更新前パラメータ定義情報450に従ってメモリ上に展開したデータである。更新後パラメータ定義情報452は、更新後のファームウェア110のパラメータ仕様111をRAM107上に展開したデータである。すなわち、EEPROM105上のをRAM107上にコピーした状態が仮想EEPROM108A、更新後のファームウェア110のパラメータ定義情報452で仮想EEPROM108Aを初期化した状態が仮想EEPROM108B、仮想EEPROM108Bに更新前のパラメータを再配置した状態が仮想EEPROM108Cである。
そして、図3に示すように、仮想EEPROM108Aには、パラメータ仕様113の配置126に従い、各パラメータが配置されている。具体的には、設定パラメータが保持されている先頭アドレスからオフセット0×0にID121が"1"のパラメータ名122"ModelName"がデータ長"6"バイトで割り当てられている。同様に、オフセット0×100にID121が"2"のパラメータ名"Adminpassword"がデータ長"4"バイトで割り当てられている。オフセット0×1FEにID121が"3"のパラメータ名"MediaSize"がデータ長"2"で、オフセット0×71EにID121が"500"のパラメータ名122"PowerSaveMode"がデータ長"1"バイトで割り当てられている。
図7は、仮想EEPROM108Aをファームウェア更新後のパラメータ仕様111で初期化するため、一時的にRAM107に待避させた状態を説明する図である。
図7(a)に示すID−設定パラメータ関連テーブルは、各パラメータを待避させる前に、パラメータID160の数だけ用意される固定長のテーブルである。ID−設定パラメータ関連テーブルは、パラメータID160とパラメータ属性とを関連付けるテーブルであるが、実際は、パラメータID160とパラメータ属性が格納されたメモリへのアドレス161のポインタとを関連付ける。これは、パラメータ属性のサイズがパラメータ毎に異なり、パラメータID160とパラメータ属性とを直接関連付けると、ID−設定パラメータ関連テーブルのRAM107上におけるサイズが非常に大きくなってしまうからである。図7(a)に示されるように、パラメータ属性の代わりにそのパラメータ属性が格納されているメモリのアドレス161であれば、パラメータ毎に固定の4バイトのデータ長であるため、ID−設定関連テーブルのサイズも小さくすることができる。
図7(b)は、各パラメータの格納メモリを表す概略図である。各パラメータの待避は、パラメータ毎にパラメータ仕様113のサイズ125で定義されたサイズ分だけメモリが確保され、確保されたメモリへ仮想EEPROM108Aから取り出されたデータがバイナリ形式のまま格納される。図7(b)に示す例においては、ID121が"1"のパラメータ名122"ModelName"においてはアドレス0×500000からデータ長"6"バイトのデータ長がメモリ171に確保され、格納されている様子が示されている。同様に、ID121が"2"のパラメータ名122"AdminPassword"においてはアドレス0×500010からデータ長"4"バイトのデータ長がメモリ171に確保され、ID121が"3"のパラメータ名122"MediaSize"においてはアドレス0×500020からデータ長"2"バイトのデータ長がメモリ171が確保され、ID121が"500"のパラメータ名122"PowerSaveMode"においてはアドレス0×501F40からデータ長"1"バイトのデータ長がメモリ171に確保され、それぞれ格納されている。なお、ID121が"2"のパラメータ名122"AdminPassword"はデータ長"4"バイトの数値文字列で形成されるが、このパラメータは暗号化された状態で格納される。なお、本実施形態に係るファームウェア更新前のパラメータ仕様113では登録されているパラメータ数は500であるものとする。ID121が"500"のパラメータ名122"PowerSaveMode"は、パラメータ仕様113の最後に登録されているパラメータであり、オフセットの値も一番大きな値である。
図8は、ファームウェア更新後のパラメータ仕様111を説明する概略図である。図8に示すファームウェア更新後のパラメータ仕様111では、ID121が"2"のパラメータ名122"AdminPassword"のデータ長が"4"バイトから"6"バイトにサイズが変更になっている。これに伴い、図4で示した仮想EEPROM108Bも、"AdminPassword"よりも後ろに配置されている全てのパラメータのオフセットが2バイトだけ後ろに配置されている。更に、ファームウェア更新で新たに追加されたパラメータ"WirelessLAN"も最後に追加されている。図4で示した仮想EEPROM108Bの各パラメータは全て、ファームウェア更新後のパラメータ仕様111の初期値124の値である。EEPROM108Bに示すように、一旦、各パラメータを初期化する理由は、ファームウェア更新前後でパラメータ仕様に差異があった場合に、ファームウェア更新前の値を書き戻すと、その値は利用者の期待通りの振る舞いをするとは限らないためである。
一旦、初期化して(仮想EEPROM108B)、その後、仕様に変更がないパラメータだけを図7に示した一時保持されたファームウェア更新前の設定パラメータから仮想EEPROM108に書き戻せば、前述したように、ファームウェア更新前後で仕様が変更になったパラメータは更新後のファームウェアの初期値に初期化される。
図5のEEPROM108Cの概略図に示したように、仕様に変更があった、ID121が"2"のパラメータ名122"AdminPassword"だけは、ファームウェア設定前のパラメータが書き戻されず、ファームウェア更新後のパラメータ仕様113に示された初期値に置き換わっている。
次に、更新後のファームウェアを動作させるための設定パラメータにファームウェア更新前の設定パラメータを反映させるための処理について図9のフローチャートを用いて説明する。
なお、ファームウェアの更新は、RAM107上に展開されたファームウェアをCPU101が実行することによって行われる。そして、画像形成装置100の再起動後に同様にRAM107上に展開された更新後のファームウェアをCPU101が実行することによってステップS400以降の処理が行われる。
ステップS400において、ファームウェアが更新されると、CPU101はRAM107上にEEPROM105のメモリイメージ(仮想EEPROM108A)を作成する(ステップS500)。以降の設定パラメータ処理においては、EEPROM105に最終的な設定パラメータが書き込まれるまで、この仮想EEPROM108に対して処理が行われる。これは、一般的なEEPROMには書き込み回数に制限があるためであり、書き込み回数の増加によってEEPROMの寿命を必要以上に縮めないための配慮である。
RAM107上に仮想EEPROM108Aを作成した後、CPU101はFlashB112が保持するファームウェア更新前のパラメータ仕様113に基づいて、仮想EEPROM108Aからファームウェア更新前の設定パラメータを読み出す(ステップS502)。そして、CPU101は、読み出した設定パラメータをRAM107に保持させる。
次に、CPU101は、仮想EEPROM108Aをファームウェア更新後のパラメータ仕様111に従って初期化し仮想EEPROM108Bを作成する(ステップS502)。そして、CPU101は、以下の手順に従って、仮想EEPROM108Bに対して、ファームウェア更新前の設定パラメータをID121が"1"のパラメータ名122"ModelName"からID121が"500"のパラメータ名122"PowerSaveMode"まで順番に1つずつ再配置して仮想EEPROM108Cを作成する。
ステップS503において、CPU101はファームウェア更新後のパラメータ仕様に同じIDのパラメータが存在するか否かを確認する。ここで、同じIDのパラメータが存在する場合(ステップS503 有)、CPU101はファームウェア更新前後の属性の差異を確認する(ステップS504)。
すなわち、CPU101は、パラメータの型(ステップS505)、初期値(ステップS506)、サイズ(ステップ507)を確認する。全ての仕様に差異が見つからなかった場合(ステップS505 無、ステップS506 無、ステップS507 無)、CPU101は、仮想EEPROM108Bの値をファームウェア更新前の値に書き戻す(ステップS508)。これに対して、同じIDのパラメータが存在しない場合(ステップS503 無)、又はパラメータの型、初期値、サイズの何れの値に差異があった場合(ステップS505、ステップS506、ステップS507の何れかが有)、CPU101はEEPROM108Bの値をファームウェア更新前の値に書き戻さない。
ファームウェア更新前後において、パラメータの仕様に差異があった場合にファームウェア更新前の値を書き戻すと、その値は利用者の期待した通りの振る舞いをするとは限らないため、仕様に変更があった場合、CPU101は新しい初期値を設定する。
ID121が"500"のパラメータ名122"PowerSaveMode"の再配置が完了した後、CPU101は仮想EEPROM108CをEEPROM105にコピーする(ステップS509)。
最後に、CPU101は、FlashB112に保持されているパラーメタ仕様113をファームウェア更新後のパラメータ仕様111に差替えて処理を終了する(ステップS510)。
以上のように、第1の実施形態によれば、ファームウェアの更新前の設定パラメータをパラメータ仕様に基づきバイナリ形式のままで更新することを可能とし、暗号化されてテキスト形式では取り扱うことができないようなデータでも取り扱うことができる。
[第2の実施形態]
図10は、本実施形態に係るファームウェア更新前のパラメータ仕様を説明する図である。本実施形態に係るパラメータ仕様113'は、第1の実施形態において説明したパラメータ仕様113に対して版数401が新たに追加されたものである。版数401は、各パラメータに付属する属性であり、配置126を除く、型123、初期値124、サイズ125の他の属性の何れかに変更があった場合に、ファームウェア更新の単位で前の版数に対して1だけインクリメントされる数である。版数の初期値は"1"であり、これは新規で登録されたパラメータの版数は"1"となるという意味である。図10に示したように、本実施形態に係るファームウェア更新前のパラメータ仕様113'において、例として挙げたパラメータの版数は全て"1"とした。
第1の実施形態においては、パラメータ仕様の属性の1つ1つをチェックしなければ、そのパラメータ仕様に変更があるか否かを確認できなかったのに対し、本実施形態においては、版数401の変更の有無のみをチェックするだけでそのパラメータ仕様に変更があるか否かを確認することができる。なお、本実施形態の説明において、第1の実施形態において説明した構成及び動作について同一な箇所については同一の符号を付してその説明を省略する。
図11は、本実施形態に係るファームウェア更新後のパラメータ仕様111'を説明する概略図である。図11に示すファームウェア更新後のパラメータ仕様111'では、ID121が"2"のパラメータ名122"AdminPassword"の仕様が第1の実施形態と同様にファームウェアの更新前後で変更がなされている。そのため、ID121が"2"のパラメータ名122"AdminPassword"の版数は"2"となっている。
次に、更新後のファームウェアを動作させるための設定パラメータにファームウェア更新前の設定パラメータを反映させるための処理について図12のフローチャートを用いて説明する。
図12のフローチャートに示す処理は、図9のフローチャートにおいて説明したステップS504、ステップS505、ステップS506、及びステップS507に係るパラメータ仕様に差異があるか否かの一連の判断処理が、ステップS700に示される版数に差異があるか否かの判断処理に置き換わったものであり、その他の処理は図9で説明した処理と同一である。したがって、ここでは、ステップS700に示される版数に差異があるか否かの判断処理についてのみ説明する。
図10及び図11に示したように、ID121が"2"のパラメータ名"AdminPassword"の版数は、ファームウェア更新前後で異なる。そのため、CPU101は、版数に差異があると判断し(ステップS700 有)、仮想EEPROM108Bから値を変更しない。一方、ID121が"1"のパラメータ名122"ModelName"、ID121が"3"のパラメータ名"MediaSize"、及びID121が"500"のパラメータ名"PoweerSaveMode"についてはファームウェア更新前後において版数の値は"1"のままである。したがって、CPU101は、版数に差異がないと判断し(ステップS700 無)、ステップS508において、仮想EEPROM108Bに対して更新処理を実行する。なお、ID121が"501"のパラメータ名122"WirelessLAN"は、ファームウェア更新後に新たに追加されたパラメータであるため更新は行われず、ステップS502において仮想EEPROM108Bに書き出された値がそのまま、ステップS509においてEERPOM105にコピーされる。
以上のように、第2の実施形態によれば、第1の実施形態の効果に加え、パラメータ仕様差分の有無を示す版数という属性が追加されたため、各パラメータに対するファームウェアの更新前の設定値に戻すか否かの判断処理に係る処理速度を向上させることできる。これは、パラメータの数、各パラメータの属性の数が増えれば増えるほど大きな効果となる。
本実施形態の説明においては、暗号化されてテキスト形式では取り扱うことができないようなデータとして管理者パスワード(AdminPassword)を例として挙げたが、画像形成装置外部で暗号化され、画像形成装置では復号化できないようなデータに対しても有効である。
また、本実施形態の説明においては、画像形成装置の印刷機能を例にとって説明したが、本発明はこれに限定されず、ファームウェアを更新する機能を備えた全ての装置に適用可能である。
100 画像形成装置
101 CPU
102 受信部
103 画像処理部
104 印刷部
105 EEPROM
106 設定パラメータ
107 RAM
108 仮想EEPROM
109 FlashA
110 ファームウェア
111,111' パラメータ仕様
112 FlashB
113,113' パラメータ仕様
114 システムバス
115 媒体給紙部
116 電源供給部

Claims (10)

  1. 第1の不揮発性メモリに記憶されたパラメータ設定値を参照して装置を動作させるファームウェアを更新する方法であって、
    前記ファームウェアを更新するファームウェア更新ステップと、
    前記ファームウェアの更新前に、更新前の前記ファームェアのパラメータ識別子と配置情報とを含むパラメータ定義情報を第2の不揮発性メモリから読み出す更新前パラメータ定義読み出しステップと、
    メモリ上にファームウェア更新前の前記第1の不揮発性メモリに記憶されたパラメータ設定値と同じ形式のメモリイメージを作成する更新前メモリイメージ作成ステップと、
    前記メモリイメージから前記ファームウェア更新前のパラメータ設定値を読み出しパラメータ識別子と関連付けて前記メモリに保持させる更新前パラメータ設定値保持ステップと、
    前記ファームウェア更新後のパラメータ配置情報に従って前記メモリに保持させたファームウェア更新前のパラメータ設定値を前記メモリイメージに再配置するパラメータ設定値再配置ステップと、
    パラメータ設定値が再配置された前記メモリイメージを前記第1の不揮発メモリにコピーする第1の不揮発性メモリ書き込みステップと、
    前記ファームウェア更新後に、更新後の前記ファームウェアのパラメータ定義情報を前記第2の不揮発性メモリ上に書き出す第2の不揮発性メモリ書き出しステップとを有することを特徴とするファームウエア更新方法。
  2. 前記パラメータ定義情報は版数を有し、前記第2の不揮発メモリの更新前の前記パラメータ定義情報の版数と前記更新後のファームウェアが有する更新後の前記パラメータ定義情報の版数とを比較し、一致する場合は、前記第1の不揮発性メモリのパラメータ設定値の更新を行わないパラメータ定義版数判断ステップをさらに備えることを特徴とする請求項1記載のファームウェア更新方法。
  3. 前記更新前パラメータ設定値保持ステップで保持される前記パラメータ設定値はバイナリ形式であることを特徴とする請求項1又は請求項2記載のファームウェア更新方法。
  4. 前記パラメータ定義情報はパラメータごとに版数を属性としてもち、前記パラメータ設定値再配置ステップは、前記パラメータの版数が異なるパラメータについては、更新前のを前記メモリイメージに再配置しないことを特徴とする請求項3記載のファームウェア更新方法。
  5. 前記パラメータ定義情報はパラメータごとの初期値を有し、前記パラメータ設定値再配置ステップの実行以前に、前記ファームウェア更新後のパラメータ定義情報に従って、前記パラメータごとの初期値を、前記更新前メモリイメージに書き込むメモリイメージ初期化ステップをさらに有することを特徴とする請求項1記載のファームウェア更新方法。
  6. 第1の不揮発性メモリに記憶されたパラメータ設定値を参照して装置を動作させるファームウェアを更新するファームウェアプログラムであって、
    前記ファームウェアを更新するファームウェア更新プログラムと、
    前記ファームウェアの更新前に、更新前の前記ファームェアのパラメータ識別子と配置情報とを含むパラメータ定義情報を第2の不揮発性メモリから読み出す更新前パラメータ定義読み出しプログラムと、
    メモリ上にファームウェア更新前の前記第1の不揮発性メモリに記憶されたパラメータ設定値と同じ形式のメモリイメージを作成する更新前メモリイメージ作成プログラムと、
    前記メモリイメージから前記ファームウェア更新前のパラメータ設定値を読み出しパラメータ識別子と関連付けて前記メモリに保持させる更新前パラメータ設定値保持プログラムと、
    前記ファームウェア更新後のパラメータ配置情報に従って前記メモリに保持させたファームウェア更新前のパラメータ設定値を前記メモリイメージに再配置するパラメータ設定値再配置プログラムと、
    パラメータ設定値が再配置された前記メモリイメージを前記第1の不揮発メモリにコピーする第1の不揮発性メモリ書き込みプログラムと、
    前記ファームウェア更新後に、更新後の前記ファームウェアのパラメータ定義情報を前記第2の不揮発性メモリ上に書き出す第2の不揮発性メモリ書き出しプログラムとを有することを特徴とするファームウエアプログラム。
  7. 前記パラメータ定義情報は版数を有し、前記第2の不揮発メモリの更新前の前記パラメータ定義情報の版数と前記更新後のファームウェアが有する更新後の前記パラメータ定義情報の版数とを比較し、一致する場合は、前記第1の不揮発性メモリのパラメータ設定値の更新を行わないパラメータ定義版数判断プログラムをさらに備えることを特徴とする請求項6記載のファームウェアプログラム。
  8. 前記更新前パラメータ設定値保持ステップで保持される前記パラメータ設定値はバイナリ形式であることを特徴とする請求項6又は請求項7記載のファームウェアプログラム。
  9. 前記パラメータ定義情報はパラメータごとに版数を属性としてもち、前記パラメータ設定値再配置プログラムは、前記パラメータの版数が異なるパラメータについては、更新前のを前記メモリイメージに再配置しないことを特徴とする請求項8記載のファームウェアプログラム。
  10. 前記パラメータ定義情報はパラメータごとの初期値を有し、前記パラメータ設定値再配置プログラムの実行以前に、前記ファームウェア更新後のパラメータ定義情報に従って、前記パラメータごとの初期値を、前記更新前メモリイメージに書き込むメモリイメージ初期化プログラムをさらに有することを特徴とする請求項6記載のファームウェアプログラム。
JP2013066809A 2013-03-27 2013-03-27 ファームウェア更新方法及びファームウェアプログラム Active JP5929809B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013066809A JP5929809B2 (ja) 2013-03-27 2013-03-27 ファームウェア更新方法及びファームウェアプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013066809A JP5929809B2 (ja) 2013-03-27 2013-03-27 ファームウェア更新方法及びファームウェアプログラム

Publications (2)

Publication Number Publication Date
JP2014191601A true JP2014191601A (ja) 2014-10-06
JP5929809B2 JP5929809B2 (ja) 2016-06-08

Family

ID=51837794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013066809A Active JP5929809B2 (ja) 2013-03-27 2013-03-27 ファームウェア更新方法及びファームウェアプログラム

Country Status (1)

Country Link
JP (1) JP5929809B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016157245A (ja) * 2015-02-24 2016-09-01 日本電気株式会社 情報処理装置、システム設定方法、及び、コンピュータ・プログラム
JP2017004212A (ja) * 2015-06-09 2017-01-05 日立オートモティブシステムズ株式会社 リプログラミングシステム
KR102232069B1 (ko) * 2019-11-26 2021-03-25 (주) 아이스펙 회전기기 운용 장치에 대한 펌웨어 업데이트를 위한 장치 및 방법
CN113568632A (zh) * 2021-06-22 2021-10-29 东莞市奥海科技股份有限公司 服务器电源固件更新方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10283167A (ja) * 1997-04-09 1998-10-23 Nec Corp 装置内部設定情報バックアップ装置及び方法並びに装置内部設定情報バックアップ制御プログラムを記憶した記憶媒体
JP2003256228A (ja) * 2002-02-28 2003-09-10 Denso Corp プログラム書換装置
JP2009254513A (ja) * 2008-04-15 2009-11-05 Fujinon Corp 電子内視鏡ファームウェアの更新方法
JP2010015265A (ja) * 2008-07-01 2010-01-21 Denso Corp プログラム書き換え装置およびプログラム書き換え方法
JP2012118869A (ja) * 2010-12-02 2012-06-21 Fuji Xerox Co Ltd 更新プログラム及び画像形成装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10283167A (ja) * 1997-04-09 1998-10-23 Nec Corp 装置内部設定情報バックアップ装置及び方法並びに装置内部設定情報バックアップ制御プログラムを記憶した記憶媒体
JP2003256228A (ja) * 2002-02-28 2003-09-10 Denso Corp プログラム書換装置
JP2009254513A (ja) * 2008-04-15 2009-11-05 Fujinon Corp 電子内視鏡ファームウェアの更新方法
JP2010015265A (ja) * 2008-07-01 2010-01-21 Denso Corp プログラム書き換え装置およびプログラム書き換え方法
JP2012118869A (ja) * 2010-12-02 2012-06-21 Fuji Xerox Co Ltd 更新プログラム及び画像形成装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016157245A (ja) * 2015-02-24 2016-09-01 日本電気株式会社 情報処理装置、システム設定方法、及び、コンピュータ・プログラム
JP2017004212A (ja) * 2015-06-09 2017-01-05 日立オートモティブシステムズ株式会社 リプログラミングシステム
KR102232069B1 (ko) * 2019-11-26 2021-03-25 (주) 아이스펙 회전기기 운용 장치에 대한 펌웨어 업데이트를 위한 장치 및 방법
CN113568632A (zh) * 2021-06-22 2021-10-29 东莞市奥海科技股份有限公司 服务器电源固件更新方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
JP5929809B2 (ja) 2016-06-08

Similar Documents

Publication Publication Date Title
JP5929809B2 (ja) ファームウェア更新方法及びファームウェアプログラム
WO2018054261A1 (zh) 存储介质、数据处理方法及采用该方法的盒芯片
JP2008238799A (ja) 画像形成装置
JP2009053901A (ja) プリンタ
JP2005346723A (ja) 複数の印刷装置にまたがって複数のリソースを管理するためのシステムおよび方法
JP2012018501A (ja) 情報処理装置、情報処理装置の制御方法、プログラム
JP6431279B2 (ja) 印刷装置、印刷装置の制御方法
WO2019000511A1 (zh) 设备数据远程加密升级的方法、存储介质、电子设备
JP2016181836A (ja) 情報処理装置、暗号装置、情報処理装置の制御方法、およびプログラム
JP6752651B2 (ja) 情報処理システム、情報処理システムにおける方法、及びプログラム
JP5417820B2 (ja) システムファイル共有装置、システムファイル共有方法及びプログラム
JP6740785B2 (ja) 情報処理装置及びプログラム
JP6582438B2 (ja) 情報処理装置、システム設定方法、及び、コンピュータ・プログラム
JP4976759B2 (ja) 画像処理装置
JP5834666B2 (ja) 記憶装置および装置
JP7161125B2 (ja) 情報処理システム、情報処理装置及び情報処理プログラム
US11928217B2 (en) Information processing apparatus, control method of information processing apparatus, and storage medium
JP2018018370A (ja) 情報処理装置及びプログラム
JP2010122717A (ja) サーバ管理システム
JP2023124500A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
JP2024024444A (ja) 印刷装置、印刷装置の制御方法、プログラム
JP2023124089A (ja) 情報処理装置
JP5104992B2 (ja) 出力システム、出力装置、出力装置の制御方法、および、情報記録媒体
JP2022108624A (ja) 情報処理装置、その制御方法、及びプログラム
JP2007083456A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160212

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160418

R150 Certificate of patent or registration of utility model

Ref document number: 5929809

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350