(57)【要約】【構成】メモリＩ／Ｆ３８およびメモリ制御回路２４は、２つのユーザ設定１をフラッシュメモリ４０からＳＤＲＡＭ２６に転送する。ＣＰＵ３４は、転送された２つのユーザ設定１のうち古い方のユーザ設定１をフラッシュメモリ４０に保存された最新のユーザ設定２によって更新する。ＣＰＵ３４はまた、こうしてＳＤＲＡＭ２６に格納された最新のユーザ設定１およびユーザ設定２をユーザ操作に応答して変更する。ＣＰＵ３４はその後、変更されたユーザ設定１をフラッシュメモリ４０に保存された古い方のユーザ設定１に上書きし、変更されたユーザ設定２をフラッシュメモリ４０に保存された古い方のユーザ設定２に上書きする。【効果】書き込みエラーに起因するユーザ設定の消失を回避でき、かつフラッシュメモリの寿命を延長できる。【選択図】図２
2014010793.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性の第１メモリに保存された複数の第１ユーザ設定を揮発性の第２メモリに転送する転送手段、
前記転送手段によって転送された複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定を前記第１メモリに保存された複数の第２ユーザ設定のうち最新の第２ユーザ設定によって更新する更新手段、
前記転送手段および前記更新手段の処理によって前記第２メモリに格納された最新の第１ユーザ設定および最新の第２ユーザ設定の各々をユーザ操作に応答して変更する変更手段、
前記変更手段によって変更された第１ユーザ設定を前記第１メモリに保存された複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定に上書きする第１上書き手段、および
前記変更手段によって変更された第２ユーザ設定を前記第１メモリに保存された複数の第２ユーザ設定のうち最新の第２ユーザ設定と異なる第２ユーザ設定に上書きする第２上書き手段を備える、ユーザ設定処理装置。
【請求項２】
前記転送手段および前記更新手段の処理によって前記第２メモリに格納された最新の第１ユーザ設定および最新の第２ユーザ設定の各々を前記ユーザ操作を受け付ける前に有効化する有効化手段をさらに備える、請求項１記載のユーザ設定処理装置。
【請求項３】
前記更新手段は、前記転送手段によって転送された複数の第１ユーザ設定の中から前記最新の第１ユーザ設定を検出する第１検出手段、および前記第１メモリに保存された複数の第２ユーザ設定の中から前記最新のユーザ設定を検出する第２検出手段を含み、
前記有効化手段は前記第２検出手段の処理の前に前記最新の第１ユーザ設定を有効化する第１ユーザ設定有効化手段を含む、請求項２記載のユーザ設定処理装置。
【請求項４】
光学レンズを通してシーンを捉える撮像手段をさらに備え、
前記第１ユーザ設定は前記光学レンズの倍率設定を含み、
前記第２ユーザ設定は撮像モード設定を含む、請求項１ないし３のいずれかに記載のユーザ設定処理装置。
【請求項５】
前記第１メモリは初期動作においてプログラムをロードするプログラムローダをさらに保存し、
前記転送手段は前記プログラムローダの指示に従って転送処理を実行する、請求項１ないし４のいずれかに記載のユーザ設定処理装置。
【請求項６】
不揮発性の第１メモリに保存された複数の第１ユーザ設定を揮発性の第２メモリに転送する転送手段を備えるユーザ設定処理装置のプロセッサに、
前記転送手段によって転送された複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定を前記第１メモリに保存された複数の第２ユーザ設定のうち最新の第２ユーザ設定によって更新する更新ステップ、
前記転送手段および前記更新ステップの処理によって前記第２メモリに格納された最新の第１ユーザ設定および最新の第２ユーザ設定の各々をユーザ操作に応答して変更する変更ステップ、
前記変更ステップによって変更された第１ユーザ設定を前記第１メモリに保存された複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定に上書きする第１上書きステップ、および
前記変更ステップによって変更された第２ユーザ設定を前記第１メモリに保存された複数の第２ユーザ設定のうち最新の第２ユーザ設定と異なる第２ユーザ設定に上書きする第２上書きステップを実行させるための、ユーザ設定処理プログラム。
【請求項７】
不揮発性の第１メモリに保存された複数の第１ユーザ設定を揮発性の第２メモリに転送する転送手段を備えるユーザ設定処理装置によって実行されるユーザ設定処理方法であって、
前記転送手段によって転送された複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定を前記第１メモリに保存された複数の第２ユーザ設定のうち最新の第２ユーザ設定によって更新する更新ステップ、
前記転送手段および前記更新ステップの処理によって前記第２メモリに格納された最新の第１ユーザ設定および最新の第２ユーザ設定の各々をユーザ操作に応答して変更する変更ステップ、
前記変更ステップによって変更された第１ユーザ設定を前記第１メモリに保存された複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定に上書きする第１上書きステップ、および
前記変更ステップによって変更された第２ユーザ設定を前記第１メモリに保存された複数の第２ユーザ設定のうち最新の第２ユーザ設定と異なる第２ユーザ設定に上書きする第２上書きステップを備える、ユーザ設定処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ユーザ設定処理装置に関し、特に不揮発性のメモリに保存されたユーザ設定をユーザ操作に応答して更新する、ユーザ設定処理装置に関する。
【背景技術】
【０００２】
この種の装置の一例が、特許文献１に開示されている。この背景技術によれば、ＦＡＴ情報は、メモリの管理情報領域に格納される。ＦＡＴ情報の格納ブロックとしては２つのブロックが準備され、更新されたＦＡＴ情報はこの２つのブロックに交互に書き込まれる。つまり、更新前のＦＡＴ情報は一方のブロックに保持され、更新後のＦＡＴ情報が他方のブロックに書き込まれる。これによって、ＦＡＴ情報の書き込みエラーが発生しても更新前のＦＡＴ情報を利用した処理が可能となり、ＦＡＴ情報の書き込みエラーに対する耐性が向上する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２８０７５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、背景技術では、単一の性質の情報であるＦＡＴ情報を更新するに留まるため、性能に限界がある。
【０００５】
それゆえに、この発明の主たる目的は、性質の異なる複数のユーザ設定について、書き込みエラーに起因する消失を防止できかつメモリ寿命を延長することができる、ユーザ設定処理装置を提供することである。
【課題を解決するための手段】
【０００６】
この発明に従うユーザ設定処理装置(10：実施例で相当する参照符号。以下同じ)は、不揮発性の第１メモリ(40)に保存された複数の第１ユーザ設定を揮発性の第２メモリ(26)に転送する転送手段(24, 38)、転送手段によって転送された複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定を第１メモリに保存された複数の第２ユーザ設定のうち最新の第２ユーザ設定によって更新する更新手段(S1~S67, S71~S127)、転送手段および更新手段の処理によって第２メモリに格納された最新の第１ユーザ設定および最新の第２ユーザ設定の各々をユーザ操作に応答して変更する変更手段(S145~S147, S159~S161, S171~S173)、変更手段によって変更された第１ユーザ設定を第１メモリに保存された複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定に上書きする第１上書き手段(S163~S167)、および変更手段によって変更された第２ユーザ設定を第１メモリに保存された複数の第２ユーザ設定のうち最新の第２ユーザ設定と異なる第２ユーザ設定に上書きする第２上書き手段(S175~S179)を備える。
【０００７】
好ましくは、転送手段および更新手段の処理によって第２メモリに格納された最新の第１ユーザ設定および最新の第２ユーザ設定の各々をユーザ操作を受け付ける前に有効化する有効化手段(S69, S139)がさらに備えられる。
【０００８】
さらに好ましくは、更新手段は、転送手段によって転送された複数の第１ユーザ設定の中から最新の第１ユーザ設定を検出する第１検出手段(S1~S67)、および第１メモリに保存された複数の第２ユーザ設定の中から最新のユーザ設定を検出する第２検出手段(S71~S127)を含み、有効化手段は第２検出手段の処理の前に最新の第１ユーザ設定を有効化する第１ユーザ設定有効化手段(S69)を含む。
【０００９】
好ましくは、光学レンズ(12)を通してシーンを捉える撮像手段(18)がさらに備えられ、第１ユーザ設定は光学レンズの倍率設定を含み、第２ユーザ設定は撮像モード設定を含む。
【００１０】
好ましくは、第１メモリは初期動作においてプログラムをロードするプログラムローダをさらに保存し、転送手段はプログラムローダの指示に従って転送処理を実行する。
【００１１】
この発明に従うユーザ設定処理プログラムは、不揮発性の第１メモリ(40)に保存された複数の第１ユーザ設定を揮発性の第２メモリ(26)に転送する転送手段(24)を備えるユーザ設定処理装置(10)のプロセッサ(34)に、転送手段によって転送された複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定を第１メモリに保存された複数の第２ユーザ設定のうち最新の第２ユーザ設定によって更新する更新ステップ(S1~S67, S71~S127)、転送手段および更新ステップの処理によって第２メモリに格納された最新の第１ユーザ設定および最新の第２ユーザ設定の各々をユーザ操作に応答して変更する変更ステップ(S145~S147, S159~S161, S171~S173)、変更ステップによって変更された第１ユーザ設定を第１メモリに保存された複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定に上書きする第１上書きステップ(S169~S167)、および変更ステップによって変更された第２ユーザ設定を第１メモリに保存された複数の第２ユーザ設定のうち最新の第２ユーザ設定と異なる第２ユーザ設定に上書きする第２上書きステップ(S175~S179)を実行させるための、ユーザ設定処理プログラムである。
【００１２】
この発明に従うユーザ設定処理方法は、不揮発性の第１メモリ(40)に保存された複数の第１ユーザ設定を揮発性の第２メモリ(26)に転送する転送手段(24)を備えるユーザ設定処理装置(10)によって実行されるユーザ設定処理方法であって、転送手段によって転送された複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定を第１メモリに保存された複数の第２ユーザ設定のうち最新の第２ユーザ設定によって更新する更新ステップ(S1~S67, S71~S127)、転送手段および更新ステップの処理によって第２メモリに格納された最新の第１ユーザ設定および最新の第２ユーザ設定の各々をユーザ操作に応答して変更する変更ステップ(S145~S147, S159~S161, S171~S173)、変更ステップによって変更された第１ユーザ設定を第１メモリに保存された複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定に上書きする第１上書きステップ(S169~S167)、および変更ステップによって変更された第２ユーザ設定を第１メモリに保存された複数の第２ユーザ設定のうち最新の第２ユーザ設定と異なる第２ユーザ設定に上書きする第２上書きステップ(S175~S179)を備える。
【発明の効果】
【００１３】
複数の第１ユーザ設定および複数の第２ユーザ設定は不揮発性の第１メモリに書き込まれ、このうち最新の第１ユーザ設定および最新の第２ユーザ設定が揮発性の第２メモリに転送される。ユーザ操作が行われると、第２メモリ上の第１ユーザ設定および第２ユーザ設定の各々が変更される。変更後の第１ユーザ設定は第１メモリ上の複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定に上書きされ、変更後の第２ユーザ設定は第１メモリ上の複数の第２ユーザ設定のうち最新の第２ユーザ設定と異なる第２ユーザ設定に上書きされる。
【００１４】
これによって、第１メモリに格納された最新のユーザ設定（互いに性質の異なる第１ユーザ設定または第２ユーザ設定）が次回の書き込みエラーに起因して消失する事態を回避することができる。また、上書き先が分散されるため、第１メモリの寿命を延長することができる。
【００１５】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００１６】
【図１】この発明の一実施例の基本的構成を示すブロック図である。
【図２】この発明の一実施例の構成を示すブロック図である。
【図３】図２実施例に適用されるＮＡＮＤ型フラッシュメモリのマッピング状態の一例を示す図解図である。
【図４】（Ａ）は図３に示すフラッシュメモリに設けられたＮＡＮＤブロック１＿１のマッピング状態の一例を示す図解図であり、（Ｂ）は図３に示すフラッシュメモリに設けられたＮＡＮＤブロック１＿２のマッピング状態の一例を示す図解図であり、（Ｃ）は図３に示すフラッシュメモリに設けられたＮＡＮＤブロック２＿１のマッピング状態の一例を示す図解図であり、（Ｄ）は図３に示すフラッシュメモリに設けられたＮＡＮＤブロック２＿２のマッピング状態の一例を示す図解図である。
【図５】図２実施例に適用されるＳＤＲＡＭのマッピング状態の一例を示す図解図である。
【図６】図５に示すＳＤＲＡＭに設けられた共有メモリ１および２に読み出されたユーザ設定１の配置の一例を示す図解図である。
【図７】（Ａ）は図３に示すＮＡＮＤブロック２＿１から図５に示す共有メモリ２にユーザ設定２を読み出す処理の一例を示す図解図であり、（Ｂ）は図３に示すＮＡＮＤブロック２＿２から図５に示す共有メモリ２にユーザ設定２を読み出す処理の一例を示す図解図であり、（Ｃ）は図３に示すＮＡＮＤブロック２＿１から図５に示す共有メモリ１にユーザ設定２を読み出す処理の一例を示す図解図であり、（Ｄ）は図３に示すＮＡＮＤブロック２＿２から図５に示す共有メモリ１にユーザ設定２を読み出す処理の一例を示す図解図である。
【図８】共有メモリ１に格納されたユーザ設定１をズーム操作に応答して更新する処理の一例を示す図解図である。
【図９】（Ａ）はフラッシュメモリのＮＡＮＤブロック１＿２を更新する処理の一例を示す図解図であり、（Ｂ）はフラッシュメモリのＮＡＮＤブロック１＿１を更新する処理の一例を示す図解図である。
【図１０】共有メモリ２に格納されたユーザ設定２をモード変更操作に応答して更新する処理の一例を示す図解図である。
【図１１】（Ａ）はフラッシュメモリのＮＡＮＤブロック１＿１を更新する処理の一例を示す図解図であり、（Ｂ）はフラッシュメモリのＮＡＮＤブロック２＿１を更新する処理の一例を示す図解図である。
【図１２】図２実施例に適用されるＣＰＵの動作の一部を示すフロー図である。
【図１３】図２実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図１４】図２実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図１５】図２実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフロー図である。
【図１６】図２実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図１７】図２実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図１８】図２実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフロー図である。
【図１９】図２実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図２０】図２実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図２１】図２実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフロー図である。
【図２２】図２実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図２３】図２実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【発明を実施するための形態】
【００１７】
以下、この発明の実施の形態を図面を参照しながら説明する。
［基本的構成］
【００１８】
図１を参照して、この実施例のユーザ設定処理装置は、基本的に次のように構成される。転送手段１は、不揮発性の第１メモリ６に保存された複数の第１ユーザ設定を揮発性の第２メモリ７に転送する。更新手段２は、転送手段１によって転送された複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定を第１メモリ６に保存された複数の第２ユーザ設定のうち最新の第２ユーザ設定によって更新する。変更手段３は、転送手段１および更新手段２の処理によって第２メモリ７に格納された最新の第１ユーザ設定および最新の第２ユーザ設定の各々をユーザ操作に応答して変更する。第１上書き手段４は、変更手段３によって変更された第１ユーザ設定を第１メモリ６に保存された複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定に上書きする。第２上書き手段５は、変更手段３によって変更された第２ユーザ設定を第１メモリ６に保存された複数の第２ユーザ設定のうち最新の第２ユーザ設定と異なる第２ユーザ設定に上書きする。
【００１９】
複数の第１ユーザ設定および複数の第２ユーザ設定は不揮発性の第１メモリ６に書き込まれ、このうち最新の第１ユーザ設定および最新の第２ユーザ設定が揮発性の第２メモリ７に転送される。ユーザ操作が行われると、第２メモリ７上の第１ユーザ設定および第２ユーザ設定の各々が変更される。変更後の第１ユーザ設定は第１メモリ６上の複数の第１ユーザ設定のうち最新の第１ユーザ設定と異なる第１ユーザ設定に上書きされ、変更後の第２ユーザ設定は第１メモリ６上の複数の第２ユーザ設定のうち最新の第２ユーザ設定と異なる第２ユーザ設定に上書きされる。
【００２０】
これによって、第１メモリ６に格納された最新のユーザ設定（互いに性質の異なる第１ユーザ設定または第２ユーザ設定）が次回の書き込みエラーに起因して消失する事態を回避することができる。また、上書き先が分散されるため、第１メモリ６の寿命を延長することができる。
［実施例］
【００２１】
図２を参照して、この実施例のディジタルカメラ１０は、ドライバ２０ａ〜２０ｃによってそれぞれ駆動されるズームレンズ１２，フォーカスレンズ１４および絞りユニット１６を含む。これらの部材を経た光学像は、イメージャ１８の撮像面に照射され、光電変換を施される。
【００２２】
電源オン操作が行われると、まずＮＡＮＤ型のフラッシュメモリ４０がメモリＩ／Ｆ３８によってアクセスされる。図３を参照して、フラッシュメモリ４０には、ＩＰＬ(Initial Program Loader)，ファームウェア，ユーザ設定１，ユーザ設定２およびＦＡＴシステムが保存される。
【００２３】
ファームウェアとしては、μＩＴＲＯＮ仕様のＯＳ(Operating System)、およびこのＯＳの下で実行される複数のタスク（詳しくは後述）が想定される。ＦＡＴシステムは、ＦＡＴ(FAT：File Allocation Table)，ディレクトリエントリおよびデータエリアによって形成される。ディレクトリエントリには、データエリアに保存された画像ファイルのファイル名，サイズサイズ，ファイル作成日時などのファイル属性を示す属性情報が記述される。ＦＡＴには、画像ファイルが書き込まれた複数のクラスタの間のリンクを示すリンク情報が記述される。
【００２４】
ユーザ設定１は、電源オン操作の後に最優先で有効化すべき設定である。また、ユーザ設定２は、ユーザ設定１よりも低い優先度で電源オン操作の後に速やかに有効化すべき設定である。ユーザ設定１としてはズームレンズ１２の倍率を示す倍率情報が想定され、ユーザ設定２としては撮像モードを示すモード情報が想定される。ユーザ設定１の保存領域としてはＮＡＮＤブロック１＿１および１＿２が確保され、ユーザ設定２の保存領域としてはＮＡＮＤブロック２＿１および２＿２が確保される。
【００２５】
前回のズーム操作によって定義された倍率情報はＮＡＮＤブロック１＿１および１＿２の一方に格納され、前々回のズーム操作によって定義された倍率情報はＮＡＮＤブロック１＿１および１＿２の他方に格納される。また、前回のモード変更操作によって定義されたモード情報はＮＡＮＤブロック２＿１および２＿２の一方に格納され、前々回のモード変更操作によって定義されたモード情報はＮＡＮＤブロック２＿１および２＿２の他方に格納される。
【００２６】
ＮＡＮＤブロック１＿１に保存されたユーザ設定１は図４（Ａ）に示すデータ構造を有し、ＮＡＮＤブロック１＿２に保存されたユーザ設定１は図４（Ｂ）に示すデータ構造を有する。また、ＮＡＮＤブロック２＿１に保存されたユーザ設定２は図４（Ｃ）に示すデータ構造を有し、ＮＡＮＤブロック２＿２に保存されたユーザ設定２は図４（Ｄ）に示すデータ構造を有する。
【００２７】
ＮＡＮＤブロック１＿１のユーザ設定１は、実データ（＝倍率情報）と管理データ（＝ＳＩＧＮ１＿１およびＣＮＴ１＿１）とによって形成される。ＮＡＮＤブロック１＿２のユーザ設定１は、実データ（＝倍率情報）と管理データ（＝ＳＩＧＮ１＿２およびＣＮＴ１＿２）とによって形成される。ＮＡＮＤブロック２＿１のユーザ設定２は、実データ（＝モード情報）と管理データ（＝ＳＩＧＮ２＿１およびＣＮＴ２＿１）とによって形成される。ＮＡＮＤブロック２＿２のユーザ設定２は、実データ（＝モード情報）と管理データ（＝ＳＩＧＮ２＿２およびＣＮＴ２＿２）とによって形成される。なお、“ＳＩＧＮ”は“ＳＩＧＮＡＴＵＲＥ”の略に相当し、“ＣＮＴ”は“ＣＯＵＮＴ  ＶＡＬＵＥ”の略に相当する。
【００２８】
管理データを形成する変数ＳＩＧＮ１＿１〜２〜２の各々は、初期状態において“０ｘＦＦＦＦ”を示し、自ブロックに対する少なくとも１回の書き込みが行われたとき固定値に更新される。また、管理データを形成する変数ＣＮＴ１＿１〜２〜２の各々は、自ブロックに対する書き込みが行われる毎に“１”→“２”→“０”→“１”…の順で循環的に更新される。
【００２９】
したがって、ＮＡＮＤブロック１＿１に保存されたユーザ設定１およびＮＡＮＤブロック１＿２に保存されたユーザ設定１のいずれか最新の設定であるかは、変数ＣＮＴ１＿１の値と変数ＣＮＴ１＿２の値とを互いに比較することで判明する。同様に、ＮＡＮＤブロック２＿１に保存されたユーザ設定２およびＮＡＮＤブロック２＿２に保存されたユーザ設定２のいずれか最新の設定であるかは、変数ＣＮＴ２＿１の値と変数ＣＮＴ２＿２の値とを互いに比較することで判明する。
【００３０】
たとえば、変数ＣＮＴ１＿１が“１”でかつ変数ＣＮＴ１＿２が“０”であるか、変数ＣＮＴ１＿１が“２”でかつ変数ＣＮＴ１＿２が“１”であるか、或いは変数ＣＮＴ１＿１が“０”でかつ変数ＣＮＴ１＿２が“２”であれば、ＮＡＮＤブロック１＿１に保存されたユーザ設定１が最新の設定として特定される。
【００３１】
また、変数ＣＮＴ２＿１が“１”でかつ変数ＣＮＴ２＿２が“０”であるか、変数ＣＮＴ２＿１が“２”でかつ変数ＣＮＴ２＿２が“１”であるか、或いは変数ＣＮＴ２＿１が“０”でかつ変数ＣＮＴ２＿２が“２”であれば、ＮＡＮＤブロック２＿１に保存されたユーザ設定２が最新の設定として特定される。
【００３２】
電源オン操作が行われたとき、図２に示すメモリＩ／Ｆ３８は、フラッシュメモリ４０からＩＰＬを読み出し、読み出されたＩＰＬをブートＲＡＭ４２に書き込む。また、電源オン操作に応答して起動したＣＰＵ３４は、フラッシュメモリ４０に保存されたファームウェアをブートＲＡＭ４２に格納されたＩＰＬを参照して読み出し、読み出されたファームウェアをメモリ制御回路２４を通してＳＤＲＡＭ２６（図５参照）に書き込む。
【００３３】
ＣＰＵ３４はさらに、ＮＡＮＤブロック１＿１および１＿２に格納された２ブロック分のユーザ設定１をブートＲＡＭ４２に格納されたＩＰＬを参照して読み出し、読み出された２ブロック分のユーザ設定１をメモリ制御回路２４を通してＳＤＲＡＭ２６に書き込む。図６を参照して、ＮＡＮＤブロック１＿１から読み出されたユーザ設定１は共有メモリ１に格納され、ＮＡＮＤブロック１＿２から読み出されたユーザ設定１は共有メモリ２に格納される。
【００３４】
ＮＡＮＤブロック１＿１からの読み出しにＥＣＣエラーが発生すると、ＣＰＵ３４は、共有メモリ１上の変数ＣＮＴ１＿１の位置に“０ｘＡＡＡＡ”を書き込む。また、ＮＡＮＤブロック１＿２からの読み出しにＥＣＣエラーが発生すると、ＣＰＵ３４は、共有メモリ２上の変数ＣＮＴ１＿２の位置に“０ｘＡＡＡＡ”を書き込む。
【００３５】
こうして共有メモリ１および２の設定が完了すると、ＣＰＵ３４は、ＳＤＲＡＭ２６に格納されたファームウェアを起動する。起動したファームウェアの下で、ＣＰＵ３４はまずメインタスクを実行する。
【００３６】
メインタスクでは、まずＳＤＲＡＭ２６の共有メモリ１に格納された管理データ（変数ＳＩＧＮ１＿１およびＣＮＴ１＿１）がメモリ制御回路２４を通して読み出され、読み出された変数ＳＩＧＮ１＿１およびＣＮＴ１＿１の値に応じて異なる態様で状態情報ＭＳ１が設定される。
【００３７】
つまり、変数ＳＩＧＮ１＿１が“０ｘＦＦＦＦ”でかつ変数ＣＮＴ１＿１が“０ｘＦＦＦＦ”であれば、状態情報ＭＳ１は“初回アクセス”に設定される。変数ＳＩＧＮ１＿１が“０ｘＦＦＦＦ”でかつ変数ＣＮＴ１＿１が“０ｘＡＡＡＡ”であれば、状態情報ＭＳ１は“ＥＣＣエラー”に設定される。変数ＳＩＧＮ１＿１が固定値でかつ変数ＣＮＴ１＿１が“１”，“２”または“０”であれば、状態情報ＭＳ１は“正常”に設定される。なお、状態情報ＭＳ１が“ＥＣＣエラー”に設定されたときは、フラッシュメモリ４０のＮＡＮＤブロック１＿１に保存されたユーザ設定１が消去される。
【００３８】
続いて、ＳＤＲＡＭ２６の共有メモリ２に格納された管理データ（変数ＳＩＧＮ１＿２およびＣＮＴ１＿２）がメモリ制御回路２４を通して読み出され、読み出された変数ＳＩＧＮ１＿２およびＣＮＴ１＿２の値に応じて異なる態様で状態情報ＭＳ２が設定される。
【００３９】
つまり、変数ＳＩＧＮ１＿２が“０ｘＦＦＦＦ”でかつ変数ＣＮＴ１＿２が“０ｘＦＦＦＦ”であれば、状態情報ＭＳ２は“初回アクセス”に設定される。変数ＳＩＧＮ１＿２が“０ｘＦＦＦＦ”でかつ変数ＣＮＴ１＿２が“０ｘＡＡＡＡ”であれば、状態情報ＭＳ２は“ＥＣＣエラー”に設定される。変数ＳＩＧＮ１＿２が固定値でかつ変数ＣＮＴ１＿２が“１”，“２”または“０”であれば、状態情報ＭＳ１は“正常”に設定される。なお、状態情報ＭＳ２が“ＥＣＣエラー”に設定されたときは、フラッシュメモリ４０のＮＡＮＤブロック１＿２に保存されたユーザ設定１が消去される。
【００４０】
状態情報ＭＳ１およびＭＳ２のいずれもが“ＥＣＣエラー”または“初回アクセス”を示すか、或いは状態情報ＭＳ１およびＭＳ２のうち状態情報ＭＳ２だけが“ＥＣＣエラー”または“初回アクセス”を示せば、共有メモリ１がユーザ設定１用最新データメモリ（最新のユーザ設定１を格納するメモリ）として設定され、ＮＡＮＤブロック１＿１がユーザ設定１用最新データブロック（最新のユーザ設定１を格納するブロック）として設定され、そして変数Ｋ（Ｋ：最新のユーザ設定１を格納するメモリまたはブロックを識別する番号）が“１”に設定される。
【００４１】
一方、状態情報ＭＳ１およびＭＳ２のうち状態情報ＭＳ１だけが“ＥＣＣエラー”または“初回アクセス”を示せば、共有メモリ２をユーザ設定１用最新データメモリとして設定され、ＮＡＮＤブロック１＿２をユーザ設定１用最新データブロックとして設定され、そして変数Ｋが“２”に設定される。
【００４２】
これらの条件のいずれもが満たされなければ、共有メモリ１上の管理データを形成する変数ＣＮＴ１＿１と共有メモリ２上の管理データを形成する変数ＣＮＴ１＿２とが互いに比較され、より大きい数値を示す変数が変数ＣＮＴ１＿１およびＣＮＴ１＿２の中から特定される。なお、変数ＣＮＴ１＿１が“０”および“２”の一方を示し、変数ＣＮＴ１＿２が“０”および“２”の他方を示す場合は、“０”を示す方の変数が例外的に特定される。
【００４３】
ユーザ設定１用最新データメモリとしては、共有メモリ１および２のうち上述の要領で特定された変数を格納する共有メモリが設定する。また、ユーザ設定１用最新データブロックとしては、ＮＡＮＤブロック１＿１および１＿２のうち上述の要領で特定された変数を保存するＮＡＮＤブロックが設定する。変数Ｋは、こうして設定されたＮＡＮＤブロックの識別番号の末尾１桁の値（＝１または２）に設定される。
【００４４】
ユーザ設定１用最新データメモリ，ユーザ設定１用最新データブロックおよび変数Ｋがこうして確定すると、ユーザ設定１用最新データメモリに格納された実データ（＝倍率情報）がドライバ２０ａに設定される。ドライバ２０ａは、設定された倍率情報に従う位置にズームレンズ１２を配置する。これによって、前回の電源オフの時点で設定されていたズーム倍率が有効化される。
【００４５】
続いて、フラッシュメモリ４０のＮＡＮＤブロック２＿１に保存された実データが、メモリＩ／Ｆ３８を通して読み出される。読み出しにＥＣＣエラーが発生すると、状態情報ＢＳ２＿１が“ＥＣＣエラー”に設定される。読み出しにＥＣＣエラーが発生しなければ、ＮＡＮＤブロック２＿１に保存された管理データ（＝ＳＩＧＮ２＿１およびＣＮＴ２＿１）を読み出され、読み出された変数ＳＩＧＮ２＿１およびＣＮＴ２＿１の値に応じて異なる態様で状態情報ＢＳ２＿１が設定される。
【００４６】
つまり、変数ＳＩＧＮ２＿１およびＣＮＴ２＿１のいずれもが“０ｘＦＦＦＦ”であれば、状態情報ＢＳ２＿１は“初回アクセス”に設定される。読み出された変数ＳＩＧＮ２＿１およびＣＮＴ２＿１の少なくとも一方が“０ｘＦＦＦＦ”と異なれば、状態情報ＢＳ２＿１は“正常”に設定される。
【００４７】
続いて、フラッシュメモリ４０のＮＡＮＤブロック２＿２に保存された実データが、メモリＩ／Ｆ３８を通して読み出される。読み出しにＥＣＣエラーが発生すると、状態情報ＢＳ２＿２が“ＥＣＣエラー”に設定される。読み出しにＥＣＣエラーが発生しなければ、ＮＡＮＤブロック２＿２に保存された管理データ（＝ＳＩＧＮ２＿２およびＣＮＴ２＿２）が読み出され、読み出された変数ＳＩＧＮ２＿２およびＣＮＴ２＿２の値に応じて異なる態様で状態情報ＢＳ２＿２が設定される。
【００４８】
つまり、読み出された変数ＳＩＧＮ２＿２およびＣＮＴ２＿２のいずれもが“０ｘＦＦＦＦ”であれば、状態情報ＢＳ２＿２は“初回アクセス”に設定する。読み出された変数ＳＩＧＮ２＿２およびＣＮＴ２＿２の少なくとも一方が“０ｘＦＦＦＦ”と異なれば、状態情報ＢＳ２＿２は“正常”に設定される。
【００４９】
状態情報ＢＳ２＿１およびＢＳ２＿２のいずれもが“ＥＣＣエラー”または“初回アクセス”を示すか、或いは状態情報ＢＳ２＿１およびＢＳ２＿２のうち状態情報ＢＳ２＿２だけが“ＥＣＣエラー”または“初回アクセス”を示すときは、ＮＡＮＤブロック２＿１がユーザ設定２用最新データブロック（最新のユーザ設定２を格納するブロック）として設定され、変数Ｌ（Ｌ：最新のユーザ設定２を格納するブロックを識別する番号）が“１”に設定される。
【００５０】
一方、状態情報ＢＳ２＿１およびＢＳ２＿２のうち状態情報ＢＳ２＿１だけが“ＥＣＣエラー”または“初回アクセス”を示すときは、ＮＡＮＤブロック２＿２がユーザ設定２用最新データブロックとして設定され、変数Ｌが“２”に設定される。
【００５１】
これらの条件が満足されなければ、ＮＡＮＤブロック２＿１の管理データを形成する変数ＣＮＴ２＿１とＮＡＮＤブロック２＿２の管理データを形成する変数ＣＮＴ２＿２とが互いに比較され、より大きい数値を示す変数が変数ＣＮＴ２＿１およびＣＮＴ２＿２の中から特定される。なお、変数ＣＮＴ２＿１が“０”および“２”の一方を示し、変数ＣＮＴ２＿２が“０”および“２”の他方を示す場合は、“０”を示す方の変数が例外的に特定される。
【００５２】
ユーザ設定２用最新データブロックとしては、ＮＡＮＤブロック２＿１およびＮＡＮＤブロック２＿２のうち上述の要領で特定された変数を保存するＮＡＮＤブロックが設定される。また、変数Ｌは、こうして設定されたＮＡＮＤブロックの識別番号の末尾１桁の値（＝１または２）に設定される。
【００５３】
続いて、ユーザ設定２用最新データブロックに格納された実データおよび管理データがメモリＩ／Ｆ３８を通してフラッシュメモリ４０から読み出され、読み出された実データおよび管理データがメモリ制御回路２４を通してＳＤＲＡＭ２６に書き込まれる。詳しくは、実データおよび管理データは、共有メモリ１および２のうちユーザ設定１用最新データメモリと異なる共有メモリに書き込まれる。書き込み先の共有メモリは、ユーザ設定２用最新データメモリとして設定される。
【００５４】
共有メモリ１がユーザ設定１用最新データメモリでかつＮＡＮＤブロック２＿１がユーザ設定２用最新データブロックであれば、ＮＡＮＤブロック２＿１に格納されたユーザ設定２が共有メモリ２に読み出される（図７（Ａ）参照）。また、共有メモリ１がユーザ設定１用最新データメモリでかつＮＡＮＤブロック２＿２がユーザ設定２用最新データブロックであれば、ＮＡＮＤブロック２＿２に格納されたユーザ設定２が共有メモリ２に読み出される（図７（Ｂ）参照）。
【００５５】
さらに、共有メモリ２がユーザ設定１用最新データメモリでかつＮＡＮＤブロック２＿１がユーザ設定２用最新データブロックであれば、ＮＡＮＤブロック２＿１に格納されたユーザ設定２が共有メモリ１に読み出される（図７（Ｃ）参照）。また、共有メモリ２がユーザ設定１用最新データメモリでかつＮＡＮＤブロック２＿２がユーザ設定２用最新データブロックであれば、ＮＡＮＤブロック２＿２に格納されたユーザ設定１が共有メモリ２に読み出される（図７（Ｄ）参照）。
【００５６】
なお、状態情報ＢＳ２＿１が“ＥＣＣエラー”を示せば、フラッシュメモリ４０のＮＡＮＤブロック２＿１に保存された実データおよび管理データが消去される。また、状態情報ＢＳ２＿２が“ＥＣＣエラー”を示せば、フラッシュメモリ４０のＮＡＮＤブロック２＿２に保存された実データおよび管理データが消去される。
【００５７】
図２に示す前処理回路２２および後処理回路２８の設定は、上述の要領で共有メモリ１または２に読み出されたユーザ設定２の実データを参照して調整される。これによって、前回の電源オフの時点で設定されていた撮像モードが有効化される。
【００５８】
撮像モードの設定が有効化されると、撮像タスクが起動される。ＣＰＵ３４は、動画取り込み処理を実行するべく、ドライバ２０ｄに露光動作および電荷読み出し動作の繰り返しを命令する。ドライバ２０ｄは、周期的に発生する垂直同期信号Ｖｓｙｎｃに応答して、イメージャ１８の撮像面を露光し、かつ撮像面で生成された電荷をラスタ走査態様で読み出す。イメージャ１８からは、読み出された電荷に基づく生画像データが周期的に出力される。
【００５９】
前処理回路２２は、イメージャ１８から出力された生画像データにゲイン調整や画素欠陥補正などの前処理を施し、処理後の生画像データをメモリ制御回路２４を通してＳＤＲＡＭ２６の生画像エリア（図５参照）に書き込まれる。
【００６０】
後処理回路２８は、こうして生画像エリアに格納された生画像データをメモリ制御回路２４を通して読み出し、読み出された生画像データに白バランス調整，色分離，ＹＵＶ変換などの処理を施す。これによって生成されたＹＵＶ形式の画像データは、メモリ制御回路２４を通してＳＤＲＡＭ２６のＹＵＶ画像エリア（図５参照）に書き込まれる。
【００６１】
ＬＣＤドライバ３０は、ＹＵＶ画像エリアに格納された画像データをメモリ制御回路２４を通して繰り返し読み出し、読み出された画像データに基づいてＬＣＤモニタ３２を駆動する。この結果、撮像面で捉えられたシーンを表すリアルタイム動画像（スルー画像）がモニタ画面に表示される。
【００６２】
前処理回路２２はまた、生画像データを簡易的にＹデータに変換し、変換されたＹデータをＣＰＵ３４に与える。ＣＰＵ３４は、与えられたＹデータに簡易ＡＥ処理を施して適正ＥＶ値を算出し、算出された適正ＥＶ値を定義する絞り量および露光時間をドライバ２０ｃおよび２０ｄにそれぞれ設定する。これによって、スルー画像の明るさが適度に調整される。
【００６３】
キー入力装置３６に設けられたズームボタン３６ｚｍが操作されると、つまりズーム操作が行われると、ＣＰＵ３４は、ドライバ２０ａを通してズームレンズ１２を光軸方向に移動させる。この結果、スルー画像の倍率が変更される。
【００６４】
ＣＰＵ３４は続いて、メモリ制御回路２４を通してＳＤＲＡＭ２６にアクセスし、ユーザ設定１用最新データメモリの実データ（＝倍率情報）を更新するとともに、同じユーザ設定１用最新データメモリの管理データを更新する。変数ＳＩＧＮ１＿Ｋは固定値に更新され、変数ＣＮＴ１＿Ｋは“１”→“２”→“０”→“１”→…の順でインクリメントされる。ユーザ設定１用最新データメモリが共有メモリ１であれば、共有メモリ１に格納されたユーザ設定１の実データおよび管理データがズーム操作に応答して更新される（図８参照）。
【００６５】
管理データの更新が完了すると、ＣＰＵ３４は、メモリＩ／Ｆ３８を通してフラッシュメモリ４０にアクセスし、ＮＡＮＤブロック１＿１およびＮＡＮＤブロック１＿２のうちユーザ設定１用最新データブロックと異なるブロックの実データおよび管理データを消去する。ＣＰＵ３４はさらに、ユーザ設定１用最新データメモリの実データおよび管理データを消去対象となったＮＡＮＤブロックに転送する。実データおよび管理データは、メモリ制御回路２４を通してＳＤＲＡＭ２６から読み出され、メモリＩ／Ｆ３８を通してフラッシュメモリ４０に書き込まれる。
【００６６】
ＮＡＮＤブロック１＿１がユーザ設定１用最新データブロックであれば、ＮＡＮＤブロック１＿２に保存されたユーザ設定１が消去され、ユーザ設定１用最新データメモリの実データおよび管理データがＮＡＮＤブロック１＿２に転送される（図９（Ａ）参照）。これに対して、ＮＡＮＤブロック１＿２がユーザ設定１用最新データブロックであれば、ＮＡＮＤブロック１＿１に保存されたユーザ設定１が消去され、ユーザ設定１用最新データメモリの実データおよび管理データがＮＡＮＤブロック１＿１に転送される（図９（Ｂ）参照）。
【００６７】
ＣＰＵ３４はその後、変数Ｋを更新する。現時点の数値が“１”であれば、この数値は“２”に更新される。これに対して、現時点の数値が“２”であれば、この数値は“１”に更新される。
【００６８】
キー入力装置３６に設けられたモードボタン３６ｍｄが操作されると、つまりモード変更操作が行われると、ＣＰＵ３４は、撮像モードを変更するべく、前処理回路２２および後処理回路２８の設定を調整する。ＣＰＵ３４は続いて、メモリ制御回路２４を通してＳＤＲＡＭ２６にアクセスし、ユーザ設定２用最新データメモリの実データ（＝モード情報）を更新するとともに、同じユーザ設定２用最新データメモリの管理データを更新する。変数ＳＩＧＮ２＿Ｌは固定値に更新され、変数ＣＮＴ２＿Ｌは“１”→“２”→“０”→“１”→…の順でインクリメントされる。ユーザ設定２用最新データメモリが共有メモリ２であれば、共有メモリ２に格納されたユーザ設定２の実データおよび管理データがモード変更操作に応答して更新される（図１０参照）。
【００６９】
管理データの更新が完了すると、ＣＰＵ３４は、メモリＩ／Ｆ３８を通してフラッシュメモリ４０にアクセスし、ＮＡＮＤブロック２＿１およびＮＡＮＤブロック２＿２のうちユーザ設定２用最新データブロックと異なるブロックの実データおよび管理データを消去する。ＣＰＵ３４はまた、ユーザ設定２用最新データメモリの実データおよび管理データを消去対象となったＮＡＮＤブロックに転送する。実データおよび管理データは、メモリ制御回路２４を通してＳＤＲＡＭ２６から読み出され、メモリＩ／Ｆ３８を通してフラッシュメモリ４０に書き込まれる。
【００７０】
ＮＡＮＤブロック２＿１がユーザ設定２用最新データブロックであれば、ＮＡＮＤブロック２＿２に保存されたユーザ設定２が消去され、ユーザ設定２用最新データメモリの実データおよび管理データがＮＡＮＤブロック２＿２に転送される（図１１（Ａ）参照）。これに対して、ＮＡＮＤブロック２＿２がユーザ設定２用最新データブロックであれば、ＮＡＮＤブロック２＿１に保存されたユーザ設定２が消去され、ユーザ設定２用最新データメモリの実データおよび管理データがＮＡＮＤブロック２＿１に転送される（図１１（Ｂ）参照）。
【００７１】
ＣＰＵ３４はその後、変数Ｌを更新する。現時点の数値が“１”であれば、この数値は“２”に更新される。これに対して、現時点の数値が“２”であれば、この数値は“１”に更新される。
【００７２】
キー入力装置３６に設けられたシャッタボタン３６ｓｈが操作されると、つまり撮像操作が行われると、ＣＰＵ３４は、前処理回路２０から与えられたＹデータに厳格ＡＥ処理を施して最適ＥＶ値を算出する。算出された最適ＥＶ値を定義する絞り量および露光時間は、上述と同様、ドライバ２０ｃおよび２０ｄにそれぞれ設定される。この結果、スルー画像の明るさが厳格に調整される。
【００７３】
ＣＰＵ３４はまた、前処理回路２０から与えられたＹデータの高周波成分にＡＦ処理を施す。これによってフォーカスレンズ１４が合焦点に配置され、スルー画像の鮮鋭度が向上する。
【００７４】
ＡＦ処理が完了すると、ＣＰＵ３４は、静止画取り込み処理を実行するとともに、記録処理の実行をメモリＩ／Ｆ３８に命令する。ＡＦ処理が完了した時点のシーンを表す生画像データは、静止画取り込み処理によってＳＤＲＡＭ２６の生画像エリアから静止画像エリア（図５参照）に退避される。
【００７５】
記録処理の実行を命令されたメモリＩ／Ｆ３８は、静止画像エリアに退避された生画像データをメモリ制御回路２４を通して読み出し、読み出された生画像データを収めた画像ファイルをフラッシュメモリ４０のデータエリアに新規に書き込む。メモリＩ／Ｆ３８はまた、新規画像ファイルの属性情報をディレクトリエントリに記述し、新規画像ファイルが書き込まれた複数のクラスタの間でリンクが形成されるようにＦＡＴを更新する。
【００７６】
メインタスクは図１２〜図２０に示すように構成され、撮像タスクは図２１〜図２３に示すように構成される。
【００７７】
図１２を参照して、ステップＳ１では、ＳＤＲＡＭ２６の共有メモリ１に格納された管理データ（変数ＳＩＧＮ１＿１およびＣＮＴ１＿１）をメモリ制御回路２４を通して読み出す。ステップＳ３，Ｓ５およびＳ７の各々では、読み出された管理データを参照して次の判別処理を実行する。
【００７８】
ステップＳ３では、変数ＳＩＧＮ１＿１が“０ｘＦＦＦＦ”でかつ変数ＣＮＴ１＿１が“０ｘＦＦＦＦ”であるか否かを判別する。ステップＳ５では、変数ＳＩＧＮ１＿１が“０ｘＦＦＦＦ”でかつ変数ＣＮＴ１＿１が“０ｘＡＡＡＡ”であるか否かを判別する。ステップＳ７では、変数ＳＩＧＮ１＿１が固定値でかつ変数ＣＮＴ１＿１が“１”，“２”または“０”であるか否かを判別する。
【００７９】
ステップＳ３の判別結果がＹＥＳであれば、ステップＳ９で状態情報ＭＳ１を“初回アクセス”に設定する。ステップＳ５の判別結果がＹＥＳであれば、ステップＳ１１で状態情報ＭＳ１を“ＥＣＣエラー”に設定する。ステップＳ７の判別結果がＹＥＳであれば、ステップＳ１３で状態情報ＭＳ１を“正常”に設定する。ステップＳ３，Ｓ５およびＳ７のいずれの判別結果もＮＯであれば、エラー処理に移行する。
【００８０】
ステップＳ９，Ｓ１１またはＳ１３の処理が完了すると、状態情報ＭＳ１が“ＥＣＣエラー”を示すか否かをステップＳ１５で判別する。判別結果がＮＯであれば、そのままステップＳ１９に進む。一方、判別結果がＹＥＳであれば、メモリＩ／Ｆ３８を通してフラッシュメモリ４０にアクセスし、ＮＡＮＤブロック１＿１に保存されたユーザ設定１を消去する。消去が完了すると、ステップＳ１９に進む。
【００８１】
ステップＳ１９では、ＳＤＲＡＭ２６の共有メモリ２に格納された管理データ（変数ＳＩＧＮ１＿２およびＣＮＴ１＿２）をメモリ制御回路２４を通して読み出す。ステップＳ２１，Ｓ２３およびＳ２５の各々では、読み出された管理データを参照して次の判別処理を実行する。
【００８２】
ステップＳ２１では、変数ＳＩＧＮ１＿２が“０ｘＦＦＦＦ”でかつ変数ＣＮＴ１＿２が“０ｘＦＦＦＦ”であるか否かを判別する。ステップＳ２３では、変数ＳＩＧＮ１＿２が“０ｘＦＦＦＦ”でかつ変数ＣＮＴ１＿２が“０ｘＡＡＡＡ”であるか否かを判別する。ステップＳ２５では、変数ＳＩＧＮ１＿２が固定値でかつ変数ＣＮＴ１＿２が“１”，“２”または“０”であるか否かを判別する。
【００８３】
ステップＳ２１の判別結果がＹＥＳであれば、ステップＳ２７で状態情報ＭＳ２を“初回アクセス”に設定する。ステップＳ２３の判別結果がＹＥＳであれば、ステップＳ２９で状態情報ＭＳ２を“ＥＣＣエラー”に設定する。ステップＳ２５の判別結果がＹＥＳであれば、ステップＳ３１で状態情報ＭＳ１を“正常”に設定する。ステップＳ２１，Ｓ２３およびＳ２５のいずれの判別結果もＮＯであれば、エラー処理に移行する。
【００８４】
ステップＳ２７，Ｓ２９またはＳ３１の処理が完了すると、状態情報ＭＳ２が“ＥＣＣエラー”を示すか否かをステップＳ３３で判別する。判別結果がＮＯであれば、そのままステップＳ３７に進む。一方、判別結果がＹＥＳであれば、メモリＩ／Ｆ３８を通してフラッシュメモリ４０にアクセスし、ＮＡＮＤブロック１＿２に保存されたユーザ設定１を消去する。消去が完了すると、ステップＳ３７に進む。
【００８５】
ステップＳ３７では、状態情報ＭＳ１およびＭＳ２のいずれもが“ＥＣＣエラー”を示すか否かを判別する。ステップＳ３９では、状態情報ＭＳ１およびＭＳ２のいずれもが“初回アクセス”を示すか否かを判別する。ステップＳ４１では、状態情報ＭＳ１およびＭＳ２のうち状態情報ＭＳ２だけが“ＥＣＣエラー”を示すか否かを判別する。ステップＳ４３では、状態情報ＭＳ１およびＭＳ２のうち状態情報ＭＳ２だけが“初回アクセス”を示すか否かを判別する。
【００８６】
ステップＳ３７〜Ｓ４３の判別結果のいずれか１つがＹＥＳであれば、ステップＳ４５で共有メモリ１をユーザ設定１用最新データメモリとして設定し、ステップＳ４７でＮＡＮＤブロック１＿１をユーザ設定１用最新データブロックとして設定する。ステップＳ４９では変数Ｋを“１”に設定し、設定が完了するとステップＳ６９に進む。
【００８７】
これに対して、ステップＳ３７〜Ｓ４３の判別結果の全てがＮＯであれば、ステップＳ５１に進む。ステップＳ５１では、状態情報ＭＳ１およびＭＳ２のうち状態情報ＭＳ１だけが“ＥＣＣエラー”を示すか否かを判別する。ステップＳ５３では、状態情報ＭＳ１およびＭＳ２のうち状態情報ＭＳ１だけが“初回アクセス”を示すか否かを判別する。
【００８８】
ステップＳ５１およびＳ５３の判別結果のいずれか一方がＹＥＳであれば、ステップＳ６３で共有メモリ２をユーザ設定１用最新データメモリとして設定し、ステップＳ６５でＮＡＮＤブロック１＿２をユーザ設定１用最新データブロックとして設定する。ステップＳ６７では変数Ｋを“２”に設定し、設定が完了するとステップＳ６９に進む。
【００８９】
ステップＳ５５では、共有メモリ１の管理データを形成する変数ＣＮＴ１＿１と共有メモリ２の管理データを形成する変数ＣＮＴ１＿２とを互いに比較し、より大きい数値を示す変数を変数ＣＮＴ１＿１およびＣＮＴ１＿２の中から特定する。なお、変数ＣＮＴ１＿１が“０”および“２”の一方を示し、変数ＣＮＴ１＿２が“０”および“２”の他方を示す場合は、“０”を示す方の変数が例外的に特定される。
【００９０】
ステップＳ５７では、共有メモリ１および２のうちステップＳ５５で特定された変数を格納する共有メモリを、ユーザ設定１用最新データメモリとして設定する。ステップＳ５９では、ＮＡＮＤブロック１＿１および１＿２のうちステップＳ５５で特定された変数を保存するＮＡＮＤブロックを、ユーザ設定１用最新データブロックとして設定する。ステップＳ６１では、ステップＳ５９で設定されたＮＡＮＤブロックの識別番号の末尾１桁の値（＝１または２）を変数Ｋに設定する。設定が完了すると、ステップＳ６９に進む。
【００９１】
ステップＳ６９では、ユーザ設定１用最新データメモリに格納された実データ（＝倍率情報）をドライバ２０ａに設定する。ドライバ２０ａは、設定された倍率情報に従う位置にズームレンズ１２を配置する。これによって、前回の電源オフ操作の時点で設定されていたズーム倍率が有効化される。
【００９２】
ステップＳ７１では、メモリＩ／Ｆ３８を通してフラッシュメモリ４０にアクセスし、ＮＡＮＤブロック２＿１に保存された実データを読み出す。ステップＳ７３では、この読み出しにＥＣＣエラーが発生したか否かを判別し、判別結果がＹＥＳであればステップＳ７５で状態情報ＢＳ２＿１を“ＥＣＣエラー”に設定する一方、判別結果がＮＯであればＮＡＮＤブロック２＿１に保存された管理データ（＝ＳＩＧＮ２＿１およびＣＮＴ２＿１）をステップＳ７７で読み出す。
【００９３】
ステップＳ７９では、変数ＳＩＧＮ２＿１が“０ｘＦＦＦＦ”でかつ変数ＣＮＴ２＿１が“０ｘＦＦＦＦ”であるか否かを判別する。判別結果がＮＯであればステップＳ８１で状態情報ＢＳ２＿１を“正常”に設定し、判別結果がＹＥＳであればステップＳ８３で状態情報ＢＳ２＿１を“初回アクセス”に設定する。ステップＳ７５，Ｓ８１またはＳ８３の処理が完了すると、ステップＳ８５に進む。
【００９４】
ステップＳ８５では、メモリＩ／Ｆ３８を通してフラッシュメモリ４０にアクセスし、ＮＡＮＤブロック２＿２に保存された実データを読み出す。ステップＳ８７では、この読み出しにＥＣＣエラーが発生したか否かを判別し、判別結果がＹＥＳであればステップＳ８９で状態情報ＢＳ２＿２を“ＥＣＣエラー”に設定する一方、判別結果がＮＯであればＮＡＮＤブロック２＿２に保存された管理データ（＝ＳＩＧＮ２＿２およびＣＮＴ２＿２）をステップＳ９１で読み出す。
【００９５】
ステップＳ９３では、変数ＳＩＧＮ２＿２が“０ｘＦＦＦＦ”でかつ変数ＣＮＴ２＿２が“０ｘＦＦＦＦ”であるか否かを判別する。判別結果がＮＯであればステップＳ９５で状態情報ＢＳ２＿２を“正常”に設定し、判別結果がＹＥＳであればステップＳ９７で状態情報ＢＳ２＿２を“初回アクセス”に設定する。ステップＳ８９，Ｓ９５またはＳ９７の処理が完了すると、ステップＳ９９に進む。
【００９６】
ステップＳ９９では、状態情報ＢＳ２＿１およびＢＳ２＿２のいずれもが“ＥＣＣエラー”を示すか否かを判別する。ステップＳ１０１では、状態情報ＢＳ２＿１およびＢＳ２＿２のいずれもが“初回アクセス”を示すか否かを判別する。ステップＳ１０３では、状態情報ＢＳ２＿１およびＢＳ２＿２のうち状態情報ＢＳ２＿２だけが“ＥＣＣエラー”を示すか否かを判別する。ステップＳ１０５では、状態情報ＢＳ２＿１およびＢＳ２＿２のうち状態情報ＢＳ２＿２だけが“初回アクセス”を示すか否かを判別する。
【００９７】
ステップＳ９９〜Ｓ１０５の判別結果のいずれか１つがＹＥＳであれば、ステップＳ１０７でＮＡＮＤブロック２＿１をユーザ設定２用最新データブロックとして設定する。ステップＳ１０９では変数Ｌを“１”に設定し、設定が完了するとステップＳ１２５に進む。
【００９８】
これに対して、ステップＳ９９〜Ｓ１０５の判別結果の全てがＮＯであれば、ステップＳ１１１に進む。ステップＳ１１１では、状態情報ＢＳ２＿１およびＢＳ２＿２のうち状態情報ＢＳ２＿１だけが“ＥＣＣエラー”を示すか否かを判別する。ステップＳ１１３では、状態情報ＢＳ２＿１およびＢＳ２＿２のうち状態情報ＢＳ２＿１だけが“初回アクセス”を示すか否かを判別する。
【００９９】
ステップＳ１１１およびＳ１１３の判別結果のいずれか一方がＹＥＳであれば、ステップＳ１２１に進み、ＮＡＮＤブロック２＿２をユーザ設定２用最新データブロックとして設定する。ステップＳ１２３では変数Ｌを“２”に設定し、設定が完了するとステップＳ１２５に進む。
【０１００】
ステップＳ１１５では、ＮＡＮＤブロック２＿１の管理データを形成する変数ＣＮＴ２＿１とＮＡＮＤブロック２＿２の管理データを形成する変数ＣＮＴ２＿２とを互いに比較し、より大きい数値を示す変数を変数ＣＮＴ２＿１およびＣＮＴ２＿２の中から特定する。なお、変数ＣＮＴ２＿１が“０”および“２”の一方を示し、変数ＣＮＴ２＿２が“０”および“２”の他方を示す場合は、“０”を示す方の変数が例外的に特定される。
【０１０１】
ステップＳ１１７では、ＮＡＮＤブロック２＿１およびＮＡＮＤブロック２＿２のうちステップＳ１１５で特定された変数を保存するＮＡＮＤブロックを、ユーザ設定２用最新データブロックとして設定する。ステップＳ１１９ではステップＳ１１７で設定されたＮＡＮＤブロックの識別番号の末尾１桁の値（＝１または２）を変数Ｌに設定し、設定が完了するとステップＳ１２５に進む。
【０１０２】
ステップＳ１２５では、ユーザ設定２用最新データブロックに格納された実データおよび管理データをメモリＩ／Ｆ３８を通してフラッシュメモリ４０から読み出し、読み出された実データおよび管理データをメモリ制御回路２４を通してＳＤＲＡＭ２６に書き込む。詳しくは、実データおよび管理データは、共有メモリ１および２のうちユーザ設定１用最新データメモリと異なる共有メモリに書き込まれる。ステップＳ１２７では、書き込み先の共有メモリをユーザ設定２用最新データメモリとして設定する。
【０１０３】
ステップＳ１２９では状態情報ＢＳ２＿１が“ＥＣＣエラー”を示すか否かを判別し、判別結果がＮＯであればそのままステップＳ１３３に進む一方、判別結果がＹＥＳであればステップＳ１３１の処理を経てステップＳ１３３に進む。ステップＳ１３１では、メモリＩ／Ｆ３８を通してフラッシュメモリ４０にアクセスし、ＮＡＮＤブロック２＿１の実データおよび管理データを消去する。
【０１０４】
ステップＳ１３３では状態情報ＢＳ２＿２が“ＥＣＣエラー”を示すか否かを判別し、判別結果がＮＯであればそのままステップＳ１３７に進む一方、判別結果がＹＥＳであればステップＳ１３５の処理を経てステップＳ１３７に進む。ステップＳ１３５では、メモリＩ／Ｆ３８を通してフラッシュメモリ４０にアクセスし、ＮＡＮＤブロック２＿２の実データおよび管理データを消去する。
【０１０５】
ステップＳ１３７では、ステップＳ１２５の処理によって読み出されたユーザ設定２の実データを参照して、前処理回路２２および後処理回路２８の設定を調整する。これによって、前回の電源オフ操作の時点で設定されていた撮像モードが有効化される。ステップＳ１３７の処理が完了すると、ステップＳ１３９で撮像タスクを起動し、その後にメインタスクを終了する。
【０１０６】
図２１を参照して、ステップＳ１４１では動画取り込み処理を実行する。この結果、撮像面で捉えられたシーンを表す生画像データがＳＤＲＡＭ２６の生画像エリアに書き込まれ、生画像データに基づくＹＵＶ形式の画像データがＳＤＲＡＭ２６のＹＵＶ画像エリアに書き込まれ、そしてＹＵＶ形式の画像データに基づくスルー画像がＬＣＤモニタ３２に表示される。
【０１０７】
ステップＳ１４３では撮像操作が行われたか否かを判別し、ステップＳ１４５ではズーム操作が行われたか否かを判別し、そしてステップＳ１４７ではモード変更操作が行われたか否かを判別する。
【０１０８】
ステップＳ１４３，Ｓ１５３およびＳ１５５の判別結果のいずれもがＮＯであれば、ステップＳ１４９で簡易ＡＥ処理を実行する。この結果、スルー画像の明るさが適度に調整される。
【０１０９】
ステップＳ１４３の判別結果がＹＥＳであれば、ステップＳ１５１で厳格ＡＥ処理およびＡＦ処理を実行する。この結果、スルー画像の明るさおよび鮮鋭度が厳格に調整される。ステップＳ１５３では静止画取り込み処理を実行し、ステップＳ１５５では記録処理の実行をメモリＩ／Ｆ３８に命令する。ステップＳ１５３の処理の結果、ＡＦ処理が完了した時点のシーンを表す生画像データがＳＤＲＡＭ２６において生画像エリアから静止画像エリアに退避される。
【０１１０】
また、ステップＳ１５５の処理の結果、メモリＩ／Ｆ３８は、ＳＤＲＡＭ２６の静止画像エリアに退避された生画像データをメモリ制御回路２４を通して読み出し、読み出された生画像データを収めた画像ファイルをフラッシュメモリ４０のデータエリアに新規に書き込む。メモリＩ／Ｆ３８はまた、新規画像ファイルの属性情報をディレクトリエントリに記述し、新規画像ファイルが書き込まれた複数のクラスタの間でリンクが形成されるようにＦＡＴを更新する。
【０１１１】
ステップＳ１４５の判別結果がＹＥＳであれば、ステップＳ１５７でズーム倍率を変更する。具体的には、ドライバ２０ａを通してズームレンズ１２を光軸方向に移動させる。ステップＳ１５９では、メモリ制御回路２４を通してＳＤＲＡＭ２６にアクセスし、ユーザ設定１用最新データメモリの実データ（＝倍率情報）を更新する。ステップＳ１６１では、同じユーザ設定１用最新データメモリの管理データを更新する。変数ＳＩＧＮ１＿Ｋは固定値に更新され、変数ＣＮＴ１＿Ｋは“１”→“２”→“０”→“１”→…の順でインクリメントされる。
【０１１２】
ステップＳ１６３では、メモリＩ／Ｆ３８を通してフラッシュメモリ４０にアクセスし、ＮＡＮＤブロック１＿１およびＮＡＮＤブロック１＿２のうちユーザ設定１用最新データブロックと異なるブロックの実データおよび管理データを消去する。ステップＳ１６５では、ユーザ設定１用最新データメモリの実データおよび管理データをステップＳ１６３で消去対象となったＮＡＮＤブロックに転送する。実データおよび管理データは、メモリ制御回路２４を通してＳＤＲＡＭ２６から読み出され、メモリＩ／Ｆ３８を通してフラッシュメモリ４０に書き込まれる。
【０１１３】
ステップＳ１６５の処理が完了すると、ステップＳ１６７で変数Ｋを更新する。現時点の数値が“１”であれば、この数値は“２”に更新される。これに対して、現時点の数値が“２”であれば、この数値は“１”に更新される。ステップＳ１６７の処理が完了すると、ステップＳ１４３に戻る。
【０１１４】
ステップＳ１４７の判別結果がＹＥＳであれば、ステップＳ１６９で撮像モードを変更する。具体的には、前処理回路２２および後処理回路２８の設定を調整する。ステップＳ１７１では、メモリ制御回路２４を通してＳＤＲＡＭ２６にアクセスし、ユーザ設定２用最新データメモリの実データ（＝モード情報）を更新する。ステップＳ１７１では、同じユーザ設定２用最新データメモリの管理データを更新する。変数ＳＩＧＮ２＿Ｌは固定値に更新され、変数ＣＮＴ２＿Ｌは“１”→“２”→“０”→“１”→…の順でインクリメントされる。
【０１１５】
ステップＳ１７５では、メモリＩ／Ｆ３８を通してフラッシュメモリ４０にアクセスし、ＮＡＮＤブロック２＿１およびＮＡＮＤブロック２＿２のうちユーザ設定２用最新データブロックと異なるブロックの実データおよび管理データを消去する。ステップＳ１７７では、ユーザ設定２用最新データメモリの実データおよび管理データをステップＳ１７５で消去対象となったＮＡＮＤブロックに転送する。実データおよび管理データは、メモリ制御回路２４を通してＳＤＲＡＭ２６から読み出され、メモリＩ／Ｆ３８を通してフラッシュメモリ４０に書き込まれる。
【０１１６】
ステップＳ１７７の処理が完了すると、ステップＳ１７９で変数Ｌを更新する。現時点の数値が“１”であれば、この数値は“２”に更新される。これに対して、現時点の数値が“２”であれば、この数値は“１”に更新される。ステップＳ１７９の処理が完了すると、ステップＳ１４３に戻る。
【０１１７】
以上の説明から分かるように、メモリＩ／Ｆ３８およびメモリ制御回路２４は、２つのユーザ設定１をフラッシュメモリ４０に設けられたＮＡＮＤブロック１＿１および１＿２からＳＤＲＡＭ２６の共有メモリ１および２に転送する。ＣＰＵ３４は、転送された２つのユーザ設定１のうち古い方のユーザ設定１をフラッシュメモリ４０に保存された最新のユーザ設定２によって更新する(S1~S67, S71~S127)。ＣＰＵ３４はまた、こうしてＳＤＲＡＭ２６に格納された最新のユーザ設定１およびユーザ設定２をユーザ操作に応答して変更する(S145~S147, S159~S161, S171~S173)。ＣＰＵ３４はその後、変更されたユーザ設定１をフラッシュメモリ４０に保存された古い方のユーザ設定１に上書きし(S163~S167)、変更されたユーザ設定２をフラッシュメモリ４０に保存された古い方のユーザ設定２に上書きする(S175~S179)。
【０１１８】
これによって、フラッシュメモリ４０に格納された最新のユーザ設定１またはユーザ設定２が次回の書き込みエラーに起因して消失する事態を回避することができる。また、上書き先が分散されるため、フラッシュメモリ４０の寿命を延長することができる。
【０１１９】
なお、この実施例では、ユーザ設定１としてズームレンズ１２の倍率を想定し、ユーザ設定２として撮像モードを想定している。しかし、電源オン操作の後に最優先で有効化すべき設定である限り、ユーザ設定１はズーム倍率と異なる設定であってもよい。また、ユーザ設定１よりも低い優先度で電源オン操作の後に速やかに有効化すべき設定である限り、ユーザ設定２は撮像モードと異なる設定であってもよい。
【符号の説明】
【０１２０】
１０  …ディジタルカメラ
１２  …ズームレンズ
１８  …イメージャ
２６  …ＳＤＲＡＭ
３４  …ＣＰＵ
４０  …フラッシュメモリ
【図１】
2014010793.tif 000003
【図２】
2014010793.tif 000004
【図３】
2014010793.tif 000005
【図４】
2014010793.tif 000006
【図５】
2014010793.tif 000007
【図６】
2014010793.tif 000008
【図７】
2014010793.tif 000009
【図８】
2014010793.tif 000010
【図９】
2014010793.tif 000011
【図１０】
2014010793.tif 000012
【図１１】
2014010793.tif 000013
【図１２】
2014010793.tif 000014
【図１３】
2014010793.tif 000015
【図１４】
2014010793.tif 000016
【図１５】
2014010793.tif 000017
【図１６】
2014010793.tif 000018
【図１７】
2014010793.tif 000019
【図１８】
2014010793.tif 000020
【図１９】
2014010793.tif 000021
【図２０】
2014010793.tif 000022
【図２１】
2014010793.tif 000023
【図２２】
2014010793.tif 000024
【図２３】
2014010793.tif 000025