(57)【要約】【課題】  ファームウェアの更新プログラムとして不揮発性メモリに書換え不能に記憶したもののみを有する組込み機器においてファームウェアの更新処理の変更を可能にした、組込み機器のファームウェアの更新方法を提供する。【解決手段】  書換え可能なファームウェアが記憶されている第１領域と、前記ファームウェアを起動または更新する書換え不能な不変ブートプログラムが記憶されている第２領域とを有する記憶部と、前記記憶部に記憶されたプログラムを実行する処理部と、を有する組込み機器におけるファームウェアの更新方法であって、前記不変ブートプログラムにより前記第１領域に可変ブートプログラムを書込む第１ステップと、前記可変ブートプログラムにより前記第１領域にファームウェアを書込む第２ステップと、を含むことを特徴とする。【選択図】  図４
2019046030.tif 000002
【特許請求の範囲】
【請求項１】
書換え可能なファームウェアが記憶されている第１領域と、前記ファームウェアを起動または更新する書換え不能な不変ブートプログラムが記憶されている第２領域とを有する記憶部と、
前記記憶部に記憶されたプログラムを実行する処理部と、
を有する組込み機器におけるファームウェアの更新方法であって、
前記不変ブートプログラムにより前記第１領域に可変ブートプログラムを書込む第１ステップと、
前記可変ブートプログラムにより前記第１領域にファームウェアを書込む第２ステップと、
を含むことを特徴とする更新方法。
【請求項２】
前記第１ステップは、前記不変ブートプログラムが書込み完了を検知するための第１完了データを前記第１領域に書込むステップを含むことを特徴とする請求項１に記載の更新方法。
【請求項３】
前記第２ステップは、前記可変ブートプログラムが書込み完了を検知するための第２完了データを前記第１領域に書込むステップを含むことを特徴とする請求項１又は２に記載の更新方法。
【請求項４】
前記可変ブートプログラムは、前記ファームウェアから当該ファームウェアの更新の要求を受け、前記要求が前記可変ブートプログラムの書込みを対象として含むかを判断し、前記要求が当該書込みを含まない場合、前記ファームウェアを更新し、前記要求が当該書込みを含む場合、前記不変ブートプログラムに前記可変ブートプログラムを書込ませ、書込まれた該可変ブートプログラムが前記ファームウェアを更新する、ことを特徴とする請求項１乃至３のうちいずれか１項に記載の更新方法。
【請求項５】
書換え可能なファームウェアが記憶されている第１領域と、前記ファームウェアを起動または更新する書換え不能な不変ブートプログラムが記憶されている第２領域とを有する記憶部と、
前記記憶部に記憶されたプログラムを実行する処理部と、
を有する組込み機器であって、
前記処理部は、
前記不変ブートプログラムにより前記第１領域に可変ブートプログラムを書込み、
前記可変ブートプログラムにより前記第１領域にファームウェアを書込む、
ことを特徴とする組込み機器。
【請求項６】
請求項５に記載の組込み機器を含むことを特徴とする光学装置。
【請求項７】
光学装置を制御するための操作装置であって、請求項５に記載の組込み機器を含むことを特徴とする操作装置。
【請求項８】
光学装置からの光を受けるカメラ装置であって、請求項５に記載の組込み機器を含むことを特徴とするカメラ装置。
【請求項９】
請求項５に記載の組込み機器を含むことを特徴とする撮像装置。
【請求項１０】
光学装置と、前記光学装置を制御するための操作装置と、前記光学装置からの光を受けるカメラ装置とを含む撮像装置であって、
前記光学装置、前記操作装置及び前記撮像装置のうちの少なくとも１つは、請求項５に記載の組込み機器を含む、
ことを特徴とする撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込み機器のファームウェアの更新方法、組込み機器、光学装置、操作装置、カメラ装置および撮像装置に関するものである。
【背景技術】
【０００２】
従来、組込み機器のファームウェアを更新するために、予め不揮発性メモリに固定的に記憶した更新プログラムを用いる手法が知られている。これにより、ファームウェアを更新して、その不具合の修正や性能の改善、機能の追加等を行うことが可能であった。
【０００３】
ただし、上記の手法では、更新プログラム自体を更新するための手段が存在せず、ファームウェアの更新処理の変更や動作改善を行うことができなかった。従って、例えば、ファームウェアの更新時に組込み機器に接続する外部機器との通信プロトコルの変更や、不揮発性メモリにデータ書込みを行う手順の変更などを行うことができなかった。
【０００４】
特許文献１では、固定的に記憶した更新（変更）対象外である更新プログラムに加えて、更新対象となる別の更新プログラムを不揮発性メモリに予め記憶している。そして、上記更新対象となる更新プログラムを必要に応じて更新し、それを用いてファームウェアを更新する。このようにして、ファームウェアの更新処理の変更を可能としている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２４９３６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示された従来技術は、更新プログラムを多重化して不揮発性メモリに予め記憶しておく必要があるため、更新プログラムとして不揮発性メモリに書換え不能に記憶したもののみを有する構成の組込み機器に対しては適用することができない。すなわち、当該構成で市場に既に出回っている組込み機器に対しては、特許文献１の手法ではファームウェア更新処理の変更（ファームウェアの更新プログラムの更新）を行うことができない。
【０００７】
本発明は、ファームウェアの更新プログラムとして不揮発性メモリに書換え不能に記憶したもののみを有する組込み機器においてファームウェアの更新処理の変更を可能にした、組込み機器のファームウェアの更新方法を提供することを例示的目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の組込み機器におけるファームウェアの更新方法は、書換え可能なファームウェアが記憶されている第１領域と、前記ファームウェアを起動または更新する書換え不能な不変ブートプログラムが記憶されている第２領域とを有する記憶部と、前記記憶部に記憶されたプログラムを実行する処理部と、を有する組込み機器におけるファームウェアの更新方法であって、前記不変ブートプログラムにより前記第１領域に可変ブートプログラムを書込む第１ステップと、前記可変ブートプログラムにより前記第１領域にファームウェアを書込む第２ステップと、を含むことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、例えば、ファームウェアの更新プログラムとして不揮発性メモリに書換え不能に記憶したもののみを有する組込み機器においてファームウェアの更新処理の変更を可能にした、組込み機器のファームウェアの更新方法を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態にかかわる組込み機器の概略を示すブロック図である。
【図２】図１における組込み機器のプログラム構成（第一の構成）を示すメモリマップである。
【図３】図１における組込み機器のプログラム構成（第二の構成）を示すメモリマップである。
【図４】図２におけるプログラム構成（第一の構成）を有する組込み機器によって実行されるファームウェア更新処理の手順を示すフローチャートである。
【図５】図４における可変ブートプログラムの書込み処理の詳細な手順を示すフローチャートである。
【図６】図３におけるプログラム構成（第二の構成）を有する組込み機器によって実行されるファームウェア更新処理の手順を示すフローチャートである。
【図７】本発明のファームウェアの更新方法を撮像装置の構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本発明の組込み機器のファームウェアの更新方法についての好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
【００１２】
［実施形態１］
以下、図１〜図５を参照して、本発明の実施形態１について説明する。
図１は、本発明の実施形態にかかわる組込み機器の概略を示すブロック図である。
図１の組込み機器１００はケーブルを介して書込みツール２００と通信接続している。
【００１３】
組込み機器１００は、ＣＰＵ１０１（処理部）、ＲＯＭ１０２、ＲＡＭ１０３、及び外部Ｉ／Ｆ１０４を備え、これらはバスを介して互いに接続されている。ここで、「組込み機器」とは、ソフトウェアを含み、特定の機能を果たすために機械に組み込まれるコンピューターシステムを指す。
【００１４】
ＣＰＵ１０１はＲＯＭ１０２に記憶されているプログラムを読み出し、ＲＡＭ１０３に展開する。また、ＲＡＭ１０３に展開したプログラムを実行する。
ＲＯＭ１０２はフラッシュＲＯＭやＥＥＰＲＯＭなどの書換え可能な不揮発性メモリ（記憶部）であり、組込み機器１００を制御するためのプログラムが記憶されている。
ＲＡＭ１０３は各種データ・プログラムを一時的に記憶するメモリであり、例えばＲＯＭ１０２の内容を更新するためのプログラムデータを一時的に記憶する場合などに用いられる。
【００１５】
外部Ｉ／Ｆ１０４は書込みツール２００と通信接続可能な接続部であり、ＲＯＭ１０２の内容を更新するためのプログラムデータを書込みツール２００から受信してＲＡＭ１０３に転送する。
【００１６】
書込みツール２００は外部Ｉ／Ｆ１０４を介して組込み機器１００と通信接続し、ファームウェア更新のためのデータを送受信する。書込みツール２００は組込み機器１００と通信を行い、任意のデータを送受信できるものであれば、どのような形態であってもよく、一例としてＰＣアプリケーションが用いられる。
【００１７】
図２は、組込み機器１００におけるＲＯＭ１０２のメモリ領域の構成（第１構成）を示すメモリマップである。
図２において、ＲＯＭ１０２は書換え不能に保護された更新対象外のメモリ領域と、書換え可能な更新対象のメモリ領域とで構成される。
【００１８】
更新対象外のメモリ領域（第２領域）には不変ブートプログラム３０１が記憶され、更新対象のメモリ領域（第１領域）にはファームウェア３０２、及び不変ブートプログラムによる書込みが完了したことを検知するための第１完了データ３０３が記憶される。
【００１９】
不変ブートプログラム３０１はファームウェア３０２を更新する機能、及び電源投入時などに装置を起動する機能を有するプログラムであり、組込み機器１００における更新プログラムを含むものである。本実施形態では不変ブートプログラム３０１を更新対象外のメモリ領域に記憶するが、不変ブートプログラム３０１が更新対象のメモリ領域に記憶されていてもよい。
【００２０】
ファームウェア３０２は組込み機器１００の定常的な動作を制御するプログラムであり、メモリ領域内のその先頭アドレスをアドレスＡ（起動アドレス）、終端アドレスをアドレスＢとする。アドレスＡから始まるメモリ（ＲＯＭ）の領域にはファームウェア３０２の実行を開始するためのプログラムが記憶され、アドレスＢから始まるメモリ（ＲＯＭ）の領域には第１完了データ３０３が記憶される。
【００２１】
アドレスＡ、及びアドレスＢは不変ブートプログラム３０１によって起動されるプログラムの実行開始アドレス、及び書込み完了確認用アドレスを示すものであり、ＲＯＭ１０２の物理的なメモリ配置を限定するものではない。例えば、アドレスＡがメモリ空間の末尾に、アドレスＢがメモリ空間の先頭にあってもよい。
【００２２】
第１完了データ３０３は、不変ブートプログラム３０１がファームウェア３０２の書込み完了を検知するために用いられるデータであり、ファームウェア３０２の書換え前に消去され、ファームウェア３０２の書換え完了後に書き込まれるデータである。不変ブートプログラム３０１は、ファームウェア３０２の書込み中に電源断が発生した場合であっても、第１完了データ３０３が正しく書込まれているか確認することで、書込みが完了しなかったファームウェア３０２を誤って起動しないようにすることができる。
【００２３】
図２で示した構成（第１構成）では、更新対象のメモリ領域に更新プログラムが存在しないため、特許文献１で示された従来技術ではファームウェア更新処理の変更または動作改善を行うことができない。そこで本実施形態においては、ファームウェア更新のため、図３に示す構成（第２構成）にＲＯＭ１０２の内容を変更する。本発明は、書換え可能な第１領域と、第１領域のアドレスＡからファームウェアが記憶されていることを前提として構成される。また本発明は、アドレスＡから記憶されたプログラム（第１ファームウェア）のみを起動及び更新可能な不変ブートプログラムが記憶される書換え不能な領域とを含むＲＯＭを有する組込み機器に適用する。
【００２４】
図３は組込み機器１００におけるＲＯＭ１０２のメモリ領域の構成（第２構成）を示すメモリマップである。
図３において、ＲＯＭ１０２の更新対象外のメモリ領域には、図２で示した第１構成の場合と同様に不変ブートプログラム３０１が記憶されている。また、更新対象のメモリ領域にはファームウェア（更新ファームウェア）３０６、及び第１完了データ３０３に加えて、新たに可変ブートプログラム３０４、及び可変ブートプログラムによる書込みが完了したことを検知するための第２完了データ３０５が記憶されている。
【００２５】
不変ブートプログラム３０１は更新対象外であるため、第１構成の場合とメモリアドレス・メモリ内容共に同一である。従って、不変ブートプログラム３０１は第２構成であっても、第１成の場合と同一の動作を行う。
【００２６】
ファームウェア３０６は、第１構成の場合のファームウェア３０２とは、書込まれるアドレスが異なる。第２構成におけるファームウェア３０６の先頭アドレスをアドレスＸ、終端アドレスをアドレスＹとすると、アドレスＸから始まるメモリ（ＲＯＭ）の領域にはファームウェア３０６が記憶されている。アドレスＹから始まるメモリ（ＲＯＭ）の領域（第２完了データ領域）には第２完了データ３０５が記憶されている。なおアドレスＸ及びアドレスＹは、アドレスＡ及びアドレスＢとは異なる任意のアドレスとしうる。第２構成においては、不変ブートプログラム３０１は、ファームウェア３０６及び第２完了データ３０５の存在は認識していない。それらは、可変ブートプログラム３０４が認識している。また、アドレスＸ及びアドレスＹは、可変ブートプログラム３０４が更新される毎に、可変ブートプログラム３０４の大きさなどに依存して変わるように設定されうる。
【００２７】
第１完了データ３０３は、メモリアドレス・メモリ内容共に、第１構成のものと同一である。ただし、第１完了データ３０３は、第１構成の場合、ファームウェア３０２の書込み完了を検知するために用いられるが、第２構成の場合、可変ブートプログラム３０４の書込み完了を検知するために用いられる。
【００２８】
可変ブートプログラム３０４は、ファームウェア３０６を更新する機能及び起動する機能を有するプログラムであり、第２構成において新たに書込まれる。不変ブートプログラム３０１と同様に、可変ブートプログラム３０４は、組込み機器１００における更新プログラムを含む。可変ブートプログラム３０４は、先頭アドレスがアドレスＡとなるように書込まれている。
【００２９】
第２完了データ３０５は、可変ブートプログラム３０４がファームウェア３０６の書込み完了を検知するために用いられるデータであり、第２構成においてファームウェア３０６の書込み前に消去され、ファームウェア３０６の書込み完了後に書込まれる。可変ブートプログラム３０４は、ファームウェア３０６の書込み中に電源断が発生した（書込み未完了の）場合でも、第２完了データ３０５が正しく書込まれているか否かの確認により、書込み未完了のファームウェア３０６を誤って起動しないようにすることができる。
【００３０】
なお、更新対象のメモリ領域における可変ブートプログラム３０４及び第１完了データ３０３は、不変ブートプログラム３０１によって書込まれている。一方、ファームウェア３０６及び第２完了データ３０５は、可変ブートプログラム３０４によって書込まれている。すなわち、ファームウェア３０６の更新処理を可変ブートプログラム３０４に定義でき、もって、ファームウェアの更新処理の変更または動作改善を行うことができる。
【００３１】
図４は、図２で示した第１構成のＲＯＭ１０２を有する組込み機器１００によって実行されるファームウェアの更新処理の手順を示すフローチャートである。
最初に、ファームウェアの更新の作業者は、第１構成を有する組込み機器１００に接続された書込みツール２００において、ファームウェアの更新を開始するための操作を実行する。これによりファームウェアの更新の処理が開始され、ステップＳ４０１に移行する。
【００３２】
ステップＳ４０１では、書込みツール２００から、ファームウェア３０２の更新の処理を開始する通知を受信する。ファームウェア３０２は、上記開始通知（指令）を受信すると、不変ブートプログラム３０１による更新処理を要求してステップＳ４０２に移行する。これにより不変ブートプログラム３０１が起動する。
【００３３】
ステップＳ４０２では、書込みツール２００から、起動された不変ブートプログラム３０１が、ファームウェア３０２及び第１完了データ３０３を消去させる命令を受信してステップＳ４０３に移行する。これにより更新対象のメモリ領域は全て初期化される。
【００３４】
ステップＳ４０３では、書込みツール２００からの書込まれるプログラムデータに可変ブートプログラム３０４が含まれるか判断を行い、含まれる場合にはステップＳ４０４に移行し、含まれない場合にはステップＳ４０８に移行する。なお、可変ブートプログラム３０４が含まれるかは、書込みツール２００が判断する以外に、作業者が判断する形態でもよい。または、可変ブートプログラムが判断するようにしてもよい。更に、可変ブートプログラムが判断し、判断結果に応じて、不変ブートプログラムに可変ブートプログラムの更新をさせるようにしてもよい。
【００３５】
ステップＳ４０４では、ファームウェアの更新処理の変更を行うため、不変ブートプログラム３０１を用いて、更新対象のメモリ領域に可変ブートプログラム３０４及び第１完了データ３０３を書込む処理（第１ステップ）を行い、ステップＳ４０５に移行する。このとき、図３で示したように、可変ブートプログラム３０４は、アドレスＡから始まる領域に、第１完了データ３０３は、アドレスＢから始まる領域にそれぞれ書込まれる。ステップＳ４０４における処理の詳細は図５で説明する。
【００３６】
ステップＳ４０５では、書込みツール２００から、不変ブートプログラム３０１が、アドレスＡから始まる領域に保存されているファームウェア３０２の起動命令を受信する。ここで、実際には、ファームウェア３０２の開始アドレスであったアドレスＡには可変ブートプログラム３０４が書込まれている。そのため、上記起動命令によって、アドレスＡから始まる領域に保存されている可変ブートプログラム３０４が起動され、ステップＳ４０６に移行する。この時点では新しいバージョンのファームウェアは書込まれていないが、不変ブートプログラム３０１は、第１完了データ３０３を参照することで、ファームウェア（実際には可変ブートプログラム）の書込み（更新）が完了したと判断し、更新処理を終了する。
【００３７】
ステップＳ４０６では、書込まれた可変ブートプログラム３０４を用いて、新しいバージョンのファームウェア３０６及び第２完了データ３０５を書込む処理（第２ステップ）を行い、ステップＳ４０７に移行する。このとき、例えば、書込みツール２００との通信に係る通信プロトコルやＲＯＭ１０２への書込み手順等を可変ブートプログラム３０４に定義することにより、ファームウェアの更新処理の変更を行うことができる。
【００３８】
ステップＳ４０７では、書込みツール２００から、可変ブートプログラム３０４が、新しいバージョン（更新後）のファームウェア３０６の起動命令を受信する。可変ブートプログラム３０４は、新しいバージョンのファームウェア３０６を起動する処理を行い、ファームウェアの更新処理を終了する。こうして、ＲＯＭ１０２の構成は第２構成となる。
【００３９】
なお、第２構成では、ファームウェア３０６の起動手段を可変ブートプログラム３０４のみが持つ。なぜならば、不変ブートプログラム３０１のファームウェア起動手段は、可変ブートプログラム３０４の起動に使用され、ファームウェア３０６の起動には使用できないためである。言い換えると、不変ブートプログラム３０１は、アドレスＡから始まる領域に保存されているプログラムのみを起動できる構成であるため、ファームウェア３０６は起動せず、可変ブートプログラム３０４を起動するのである。
【００４０】
ステップＳ４０８では、ファームウェアの更新処理の変更は行わず、予め記憶してある不変ブートプログラム３０１を用いて新しいバージョンのファームウェア３０２及び第１完了データ３０３の書込みを行い、ステップＳ４０９に移行する。
【００４１】
ステップＳ４０９では、書込みツール２００から、不変ブートプログラム３０１が、ファームウェア３０２の起動命令を受信する。不変ブートプログラム３０１は、上記起動命令を受けてファームウェア３０２を起動し、ファームウェアの更新処理を終了する。この場合、ＲＯＭ１０２の構成は変化せず第１構成のままである。
【００４２】
図５は、図４のステップＳ４０４における可変ブートプログラム３０４の書込み処理の詳細な手順を示すフローチャートである。
ステップＳ５０１では、書込みツール２００により、ＲＯＭ１０２の書込みアドレスをアドレスＡに設定され、ステップＳ５０２に移行する。
【００４３】
ステップＳ５０２では、設定された書込みアドレスに書込む１ブロック分の可変ブートプログラム３０４のプログラムデータを受信し、不変ブートプログラム３０１によるＲＯＭ１０２への書込みを行ったのち、ステップＳ５０３に移行する。
【００４４】
ステップＳ５０３では、不変ブートプログラム３０１が書込み完了通知を書込みツール２００に送信する。書込みツール２００は、上記完了通知（指令）を受信すると、書込みアドレスを次のブロックにインクリメントして、ステップＳ５０４に移行する。
【００４５】
ステップＳ５０４では、書込みツール２００により、可変ブートプログラム３０４の全てのデータの書込みが完了したか判断され、書込みが完了している場合には、ステップＳ５０５に移行し、書込みが完了していない場合には、ステップＳ５０２に移行する。
【００４６】
ステップＳ５０５では、書込みツール２００により、ＲＯＭ１０２の書込みアドレスがアドレスＢに設定され、ステップＳ５０６に移行する。
【００４７】
ステップＳ５０６では、書込みツール２００により、第１完了データ３０３が送信され、不変ブートプログラム３０１による第１完了データ３０３の書込みを行ったのち、可変ブートプログラム３０４の書込み処理を終了する。
【００４８】
上記手順により、不変ブートプログラム３０１は、ファームウェア３０２の書込みが完了したと判断する状態になる。そして、不変ブートプログラム３０１がファームウェア３０２の起動処理を実行すると、アドレスＡに書込まれた可変ブートプログラム３０４が起動することになる。
【００４９】
なお、アドレスＡに書込むプログラムを単純な分岐命令プログラムとし、可変ブートプログラム３０４を別のメモリ空間に持たせて、分岐命令プログラムにより可変ブートプログラム３０４を起動するようにしてもよい。
【００５０】
以上のように、ファームウェア更新にあたって更新プログラムの更新により、例えば、ファームウェアの更新プログラムとして不揮発性メモリに書換え不能に記憶したもののみを有する組込み機器においてファームウェアの更新処理の変更を可能にした、組込み機器のファームウェアの更新方法を提供することができる。
【００５１】
［実施形態２］
以下、図１、及び図３〜図６を参照して、本発明の実施形態２について説明する。なお、実施形態１と同一の構成については共通の記号を付与し、その説明は省略する。
【００５２】
本実施形態では実施形態１で説明した図３での構成（第２構成）となった組込み機器１００において、ファームウェア３０２の更新を行う場合について説明する。このような場合、ファームウェアの更新処理の変更を再度行う場合と行わない場合とで処理内容を切替える必要がある。
【００５３】
しかしながら、不変ブートプログラム３０１は、図２で示した構成（第１構成）から一切変更を加えていないため、可変ブートプログラム３０４の存在を認識することができない。不変ブートプログラム３０１は、図２に示した第１構成において、アドレスＡを、ファームウェアの書き込みを開始するアドレスとして、また、起動させるファームウェアの処理を開始するアドレスとして認識しているに過ぎない。従って、不変ブートプログラム３０１は、可変ブートプログラム３０４を書換えるか認識することができない。
そこで、次の図６に示す方法により、可変ブートプログラム３０４が自身の書換え要否を認識（判断）する。
【００５４】
図６は、図３で示した第２構成のＲＯＭ１０２を有する組込み機器１００によって実行されるファームウェアの更新処理の手順を示すフローチャートである。
最初に、ファームウェアを更新する作業者は、第２構成を有する組込み機器１００に接続された書込みツール２００において、ファームウェアの更新を行うための操作を実行する。これによりファームウェアの更新処理が開始され、ステップＳ６０１に移行する。
【００５５】
ステップＳ６０１では、書込みツール２００から、ファームウェアの更新処理を開始させる通知を受信する。ファームウェア３０２は、上記開始通知（指令）を受信すると、可変ブートプログラム３０４に更新処理を要求してステップＳ６０２に移行する。これにより、可変ブートプログラム３０４が起動する。
【００５６】
ステップＳ６０２では、可変ブートプログラム３０４は、書込みツール２００から送信されたら更新要求に、可変ブートプログラム３０４の書換えを含むか判断する。その結果、可変ブートプログラム３０４の書換えを含む場合はステップＳ６０３に移行し、含まない場合はステップＳ６０５に移行する。
【００５７】
ステップＳ６０３では、可変ブートプログラム３０４を書換えるため、可変ブートプログラム３０４は不変ブートプログラム３０１に更新処理を要求してステップＳ６０４に移行する。これにより、不変ブートプログラム３０１が起動する。
【００５８】
ステップＳ６０４では、書込みツール２００から、不変ブートプログラム３０１は、ファームウェア（実際には可変ブートプログラム）３０４及び第１完了データ３０３を消去させる命令を受信する。これにより、ファームウェア３０６及び第２完了データ３０５も含めて、更新対象のメモリ領域が全て初期化され、ステップＳ４０４に移行する。
【００５９】
ステップＳ４０４及びステップＳ４０５では、実施形態１と同様に、不変ブートプログラム３０１による可変ブートプログラム３０４の書込み及びその起動処理を行い、ステップＳ４０６に移行する。
【００６０】
ステップＳ６０５では、可変ブートプログラム３０４の書換えを含まないため、書込みツール２００から、可変ブートプログラム３０４は、ファームウェア３０６及び第２完了データ３０５を消去させる命令を受信し、メモリの消去を行う。メモリの該当領域が消去されると、ステップＳ４０６に移行する。
【００６１】
ステップＳ４０６及びステップＳ４０７では、実施形態１と同様に、可変ブートプログラム３０４によるファームウェア３０６の書込み及び起動処理を行い、ファームウェアの更新処理を終了する。
【００６２】
以上によって、不変ブートプログラム３０１が可変ブートプログラム３０４の認識していない第２構成においても、必要な場合のみ可変ブートプログラム３０４を書換えることができる。これにより、ファームウェアの更新プログラムとして不揮発性メモリに書換え不能に記憶したもののみを有する組込み機器に対して、ファームウェアの更新処理の変更を一度行った後でも、任意のタイミングでファームウェアの更新処理の変更を再度行うことができる。
【００６３】
〔撮像装置に係る実施形態〕
図７は、撮像装置の構成例を示す図である。当該撮像装置は、操作装置１０と、光学装置（レンズ装置としうる）２０と、当該光学装置からの光（光像）を受ける撮像素子３０ａを有するカメラ装置（撮像部）３０とを含んで構成されている。操作装置１０は、ユーザが操作する操作部材１０ａ（例えば操作ノブ）を含み、例えば、フォーカスデマンド（単にデマンドともいう）としうるものである。操作装置１０は、光学装置２０の光学特性（例えば被写体距離）を変更するために可動の光学素子２０ａ（例えばフォーカスレンズ）を制御するために用いられる。ここで、操作装置１０、光学装置２０及びカメラ装置３０のうちの少なくとも１つは、上述の組込み機器を含んで構成されうる。その場合、組込み機器に含まれているファームウェアは、操作部材１０ａに係る制御（例えば、操作部材１０ａの状態（例えばノブの操作量（回転角等））に基づいて、可動の光学素子２０ａの制御のための指令値を生成する制御）に関するものとしうる。また、当該ファームウェアは、可動の光学素子２０ａに係る制御（例えば、可動の光学素子２０ａの状態（例えば位置）のフィードバック制御）に関するものとしうる。また、当該ファームウェアは、撮像素子３０ａに係る制御（例えば、撮像素子３０ａから出力された画像信号の処理（例えば各種補正、調整または強調のための画像処理）の制御）に関するものとしうる。本実施形態によれば、例えば、ファームウェアの更新処理の変更の点で有利な撮像装置（または操作装置１０、光学装置２０及びカメラ装置３０のうちの少なくとも１つ）を提供することができる。
【００６４】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、以上では、光学装置の光学特性を変更するために可動の光学素子として、被写体距離を変更するために可動のレンズ（フォーカスレンズ）を例示した。しかしながら、当該光学素子は、それには限定されず、例えば、光学装置（レンズ装置）の焦点距離の変更（変倍）のために可動のレンズや、光学装置のＦ値（Ｆナンバー）または有効口径の調整のために絞り羽根が可動の絞り部材としうるものである。
【符号の説明】
【００６５】
１００  組込み機器
１０１  ＣＰＵ（処理部）
１０２  ＲＯＭ
１０３  ＲＡＭ
３０１  不変ブートプログラム
３０２  ファームウェア
３０４  可変ブートプログラム
【図１】
2019046030.tif 000003
【図２】
2019046030.tif 000004
【図３】
2019046030.tif 000005
【図４】
2019046030.tif 000006
【図５】
2019046030.tif 000007
【図６】
2019046030.tif 000008
【図７】
2019046030.tif 000009