(57)【要約】      （修正有）【課題】リードディスターブ等の不具合に対してプログラムの起動の確実性を向上させることができる組み込みシステム、撮影機器及びリフレッシュ方法を提供する。【解決手段】組み込みシステムは、フラッシュメモリに記憶された基本プログラム中のブートプログラムが展開されて記憶される第１の記憶部と、第１の記憶部に展開されたブートプログラムに従って基本プログラムが展開されて記憶される第２の記憶部と、ブートプログラムの読み出しに際してエラー訂正を行う第１のエラー訂正回路と、エラー訂正回路のエラー訂正結果に基づく情報を記憶する第３の記憶部と、第３の記憶部に記憶されたエラー訂正結果に基づく情報に基づいてブートプログラムに対するリフレッシュ処理の可否を決定する制御部とを具備する。【選択図】図１
2018022224.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリに記憶された基本プログラム中のブートプログラムが展開されて記憶される第１の記憶部と、
上記第１の記憶部に展開された上記ブートプログラムに従って上記基本プログラムが展開されて記憶される第２の記憶部と、
上記ブートプログラムの読み出しに際してエラー訂正を行う第１のエラー訂正回路と、
上記第１のエラー訂正回路のエラー訂正結果に基づく情報を記憶する第３の記憶部と、
上記第３の記憶部に記憶された上記エラー訂正結果に基づく情報に基づいて上記ブートプログラムに対するリフレッシュ処理の可否を決定する制御部と
を具備したことを特徴とする組み込みシステム。
【請求項２】
上記フラッシュメモリから読出されて上記第２の記憶部に展開記憶されるデータに対してエラー訂正を行う第２のエラー訂正回路を具備し、
上記制御部は、上記第２の記憶部に展開された上記基本プログラム中のブートリフレッシュプログラムに従って動作し、上記第３の記憶部に記憶された上記エラー訂正結果に基づく情報によってリフレッシュ処理の可否の決定を行い、リフレッシュ処理に際して、上記フラッシュメモリから上記ブートプログラムのリフレッシュに必要なデータを読出して上記第２の記憶部に展開記憶させると共に、該展開記憶されたデータを上記フラッシュメモリに書き戻す
ことを特徴とする請求項１に記載の組み込みシステム。
【請求項３】
上記第３の記憶部は、上記第２の記憶部内の一部の記憶領域により構成される
ことを特徴とする請求項１又は２に記載の組み込みシステム。
【請求項４】
全機能を基本機能及び拡張機能に分け、上記フラッシュメモリには、上記拡張機能を実現する拡張プログラムと上記基本機能を実現する同一内容の２つの上記基本プログラムとが格納されており、
これらの２つの上記基本プログラムのうち上記第２のエラー訂正回路によりエラー訂正が行われたいずれか一方の基本プログラムが上記第２の記憶部に展開記憶される
ことを特徴とする請求項２に記載の組み込みシステム。
【請求項５】
上記制御部は、上記第２の記憶部に展開記憶された上記基本プログラムに対する上記第２のエラー訂正回路のエラー訂正結果に基づいて上記基本プログラムに対するリフレッシュ処理の可否を決定する
ことを特徴とする請求項２に記載の組み込みシステム。
【請求項６】
上記制御部は、上記ブートプログラム及び上記基本プログラムの少なくとも一方についてリフレッシュ処理を行う場合には、その旨を示す警告を行う
ことを特徴とする請求項２に記載の組み込みシステム。
【請求項７】
上記ブートプログラムを読み出すためのスタートプログラムが記憶された第４の記憶部
を具備したことを特徴とする請求項１又は２に記載の組み込みシステム。
【請求項８】
上記フラッシュメモリには、外部機器からプログラムをダウンロードするためのリペアプログラムが格納されており、
上記制御部は、上記基本プログラムが上記第２の記憶部に展開記憶されない場合には、上記リペアプログラムを上記第２の記憶部に展開記憶させて実行する
ことを特徴とする請求項２に記載の組み込みシステム。
【請求項９】
撮像部と、
フラッシュメモリに記憶された撮像のための基本プログラム中のブートプログラムが展開されて記憶される第１の記憶部と、
上記第１の記憶部に展開された上記ブートプログラムに従って上記基本プログラムが展開されて記憶される第２の記憶部と、
上記ブートプログラムの読み出しに際してエラー訂正を行う第１のエラー訂正回路と、
上記エラー訂正回路のエラー訂正結果に基づく情報を記憶する第３の記憶部と、
上記第３の記憶部に記憶された上記エラー訂正結果に基づく情報に基づいて上記ブートプログラムに対するリフレッシュ処理の可否を決定する制御部と、
上記フラッシュメモリから読出されて上記第２の記憶部に展開記憶されるデータに対してエラー訂正を行う第２のエラー訂正回路とを具備し、
上記制御部は、上記第２の記憶部に展開された上記基本プログラム中のブートリフレッシュプログラムに従って動作し、上記第１のエラー訂正回路のエラー訂正結果に基づく情報によってリフレッシュ処理の可否の決定を行い、リフレッシュ処理に際して、上記フラッシュメモリから上記ブートプログラムのリフレッシュに必要なデータを読出して上記第２の記憶部に展開記憶させると共に、該展開記憶されたデータを上記フラッシュメモリに書き戻す
ことを特徴とする撮影機器。
【請求項１０】
フラッシュメモリに記憶された基本プログラム中のブートプログラムを第１の記憶部に展開して記憶させる手順と、
上記ブートプログラムの読み出しに際して第１のエラー訂正処理を行う手順と、
上記第１のエラー訂正処理におけるエラー訂正結果に基づく情報を第３の記憶部に記憶させる手順と、
上記第１の記憶部に展開された上記ブートプログラムに従って上記基本プログラムを第２の記憶部に展開して記憶させる手順と、
上記第３の記憶部に記憶された上記エラー訂正結果に基づく情報に基づいて上記ブートプログラムに対するリフレッシュ処理の可否を決定するリフレッシュ手順と
を具備したことを特徴とするリフレッシュ方法。
【請求項１１】
上記フラッシュメモリから読出されて上記第２の記憶部に展開記憶されるデータに対して第２のエラー訂正処理を行う手順を具備し、
上記リフレッシュ手順は、上記第２の記憶部に展開された上記基本プログラム中のブートリフレッシュプログラムに従って動作し、上記第１のエラー訂正処理におけるエラー訂正結果に基づく情報によってリフレッシュ処理の可否の決定を行い、リフレッシュ処理に際して、上記フラッシュメモリから上記ブートプログラムのリフレッシュに必要なデータを読出して上記第２の記憶部に展開記憶させると共に、該展開記憶されたデータを上記フラッシュメモリに書き戻す手順と
を具備したことを特徴とする請求項１０に記載のリフレッシュ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリに記憶されたプログラムに従って動作する組み込みシステム、撮影機器及びリフレッシュ方法に関する。
【背景技術】
【０００２】
近年、デジタルカメラなどの撮影機能付き携帯機器（撮影機器）が普及している。この種の撮影機器においては、組み込みシステムを採用して、各種機能をプログラムにより実現するものが多い。プログラムは不揮発性の記録媒体、例えばＮＡＮＤ型フラッシュメモリに格納される。撮影機器に内蔵されたＣＰＵは、フラッシュメモリに記憶されたプログラムを読み込んでＤＲＡＭ（ダイナミックＲＡＭ）等に展開することで、プログラムの実行を可能にする。
【０００３】
プログラムのブートは、マスクＲＯＭに記憶されたスタートプログラムにより、フラッシュメモリに記憶されたプログラムを読み出して展開することにより行われる。このブートに際して、スタートプログラムは、先ずフラッシュメモリの所定の領域に記憶されているブートプログラムを読出し、内蔵ＲＡＭに展開する。以後、この内蔵ＲＡＭに展開されたブートプログラムが実行されて、プログラムの残りの部分がＤＲＡＭに展開される。
【０００４】
ところで、ＮＡＮＤ型フラッシュメモリでは、読出し電圧がワード線から非選択メモリセルにも印加されることから、電子が徐々にフローティングゲートに注入されるリードディスターブ（read disturb）現象が発生する。リードディスターブによって、データ読み出しの閾値電圧が変化し、読み出し誤りが多くなり、読み出したデータの信頼性が低下する。このリードディスターブによるデータの信頼性を防ぐには、メモリセルに対して適宜再書き込み処理、すなわち閾値電圧を元の状態に戻すリフレッシュ処理を行う必要がある。
【０００５】
なお、ＮＡＮＤ型フラッシュメモリにおけるリフレッシュは、正しいデータを読出して、読出したデータを書き戻すことにより行われる。ＮＡＮＤ型フラッシュメモリでは、この書き戻しに際してブロック単位で消去処理を行う必要があることから、リフレッシュもブロック単位で行う必要がある。
【０００６】
特許文献１においては、乱数を用いて定期的に全領域にリフレッシュ動作を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
特開２００９−２６２８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、ＣＰＵと共に、マスクＲＯＭ及び内蔵ＲＡＭは、ＡＳＩＣ（Application Specific Integrated Circuit）等に集積回路化されていることが多い。ＡＳＩＣに搭載されるマスクＲＯＭ及び内蔵ＲＡＭは、いずれも例えば１２８ＫＢ程度の限られた容量のメモリである。このため、マスクＲＯＭには、ブートプログラムを読出して内蔵ＲＡＭに格納して実行させるためだけの命令を記述したスタートプログラムを格納し、内蔵ＲＡＭに展開記憶されたブートプログラムを用いてフラッシュメモリからプログラムの残りの部分を読出してＤＲＡＭに展開するようになっている。
【０００９】
ところが、上述したようにＮＡＮＤ型フラッシュメモリにおけるリフレッシュはブロック単位で行う必要があり、ブートプログラムをリフレッシュするためには、比較的大きいサイズのブロック単位の正常なデータを読出して記憶保持する必要がある。しかし、ブートプログラムを格納する内蔵ＲＡＭの容量は比較的小さく、リフレッシュに必要なデータを記憶することができないことから、ブートプログラム部分についてはリフレッシュ処理を行うことはできない。この理由から、従来、ブートプログラム部分についてはリフレッシュ処理は行われていない。従って、ブートプログラムについては、リードディスターブによってデータが劣化する可能性が比較的高く、ブートプログラムが実行されずに、組み込みシステムが起動不能となる可能性があるという問題があった。
【００１０】
また、ＤＲＡＭに展開されるプログラムについてはリフレッシュ処理を行うことが可能である。しかしながら、特許文献１の提案では必要以上のリフレッシュ処理が行われる可能性があり、過度のリフレッシュ処理によって、書き込み／消去回数が必要以上に増加して、メモリセルの劣化を促進し、読み出すデータの信頼性を逆に低下させてしまう虞がある。
【００１１】
本発明は、リードディスターブ等の不具合に対してプログラムの起動の確実性を向上させることができる組み込みシステム、撮影機器及びリフレッシュ方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一態様による組み込みシステムは、フラッシュメモリに記憶された基本プログラム中のブートプログラムが展開されて記憶される第１の記憶部と、上記第１の記憶部に展開された上記ブートプログラムに従って上記基本プログラムが展開されて記憶される第２の記憶部と、上記ブートプログラムの読み出しに際してエラー訂正を行う第１のエラー訂正回路と、上記エラー訂正回路のエラー訂正結果に基づく情報を記憶する第３の記憶部と、上記第３の記憶部に記憶された上記エラー訂正結果に基づく情報に基づいて上記ブートプログラムに対するリフレッシュ処理の可否を決定する制御部とを具備する。
【００１３】
本発明の一態様による撮影機器は、撮像部と、フラッシュメモリに記憶された撮像のための基本プログラム中のブートプログラムが展開されて記憶される第１の記憶部と、上記第１の記憶部に展開された上記ブートプログラムに従って上記基本プログラムが展開されて記憶される第２の記憶部と、上記ブートプログラムの読み出しに際してエラー訂正を行う第１のエラー訂正回路と、上記エラー訂正回路のエラー訂正結果に基づく情報を記憶する第３の記憶部と、上記第３の記憶部に記憶された上記エラー訂正結果に基づく情報に基づいて上記ブートプログラムに対するリフレッシュ処理の可否を決定する制御部と、上記フラッシュメモリから読出されて上記第２の記憶部に展開記憶されるデータに対してエラー訂正を行う第２のエラー訂正回路とを具備し、上記制御部は、上記第２の記憶部に展開された上記基本プログラム中のブートリフレッシュプログラムに従って動作し、上記第１のエラー訂正回路のエラー訂正結果に基づく情報によってリフレッシュ処理の可否の決定を行い、リフレッシュ処理に際して、上記フラッシュメモリから上記ブートプログラムのリフレッシュに必要なデータを読出して上記第２の記憶部に展開記憶させると共に、該展開記憶されたデータを上記フラッシュメモリに書き戻す。
【００１４】
本発明の一態様によるリフレッシュ方法は、フラッシュメモリに記憶された基本プログラム中のブートプログラムを第１の記憶部に展開して記憶させる手順と、上記ブートプログラムの読み出しに際して第１のエラー訂正処理を行う手順と、上記第１のエラー訂正処理におけるエラー訂正結果に基づく情報を第３の記憶部に記憶させる手順と、上記第１の記憶部に展開された上記ブートプログラムに従って上記基本プログラムを第２の記憶部に展開して記憶させる手順と、上記第３の記憶部に記憶された上記エラー訂正結果に基づく情報に基づいて上記ブートプログラムに対するリフレッシュ処理の可否を決定するリフレッシュ手順とを具備する。
【発明の効果】
【００１５】
本発明によれば、リードディスターブ等の不具合に対してプログラムの起動の確実性を向上させることができるという効果を有する。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施の形態に係る組み込みシステムが搭載された撮影機器の回路構成を示すブロック図。
【図２】本実施の形態における起動処理を説明するためのフローチャート。
【図３】メインフローの一例を示すフローチャート。
【図４】変形例を示すブロック図。
【図５】情報端末装置９０における処理フローを示すフローチャート。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【００１８】
図１は本発明の一実施の形態に係る組み込みシステムが搭載された撮影機器の回路構成を示すブロック図である。
【００１９】
図１の撮影機器１は、制御部１１によって全体が制御されるようになっている。制御部１１は、ＣＰＵ等のプロセッサによって構成されて、ＡＳＩＣ等の集積回路１０上に構成されていてもよい。なお、集積回路１０上には、制御部１１の他に、ＳＴプログラム記憶部１２、ブートプログラム記憶部１３、エラー訂正回路（以下、ＥＣＣという）１４，１５が搭載されていてもよい。なお、ＳＴプログラム記憶部１２は、例えばマスクＲＯＭによって構成され、ブートプログラム記憶部１３は、内蔵ＲＡＭによって構成されていてもよい。制御部１１は、ＤＲＡＭ２０に展開記憶されているプログラムを読み出して実行することで、カメラ機能を実現する。
【００２０】
撮影機器１は、ＣＣＤやＣＭＯＳセンサ等の撮像素子によって構成された撮像部４１を有している。図示しない撮影レンズからの被写体の光学像は、撮像部４１を構成する撮像素子の撮像面に結像するようになっている。撮像部４１は、画像処理部５０の撮影制御部５１によって駆動制御される。撮影制御部５１は、撮像部４１に撮像素子の駆動信号を出力すると共に、撮像素子が光学像を光電変換して得た画像信号を取り込む。
【００２１】
画像処理部５０は、制御部１１に制御されて、撮像に関する処理だけでなく、画像信号処理、記録再生処理及び表示処理等を行う。即ち、例えば、画像処理部５０は、撮像部４１の光電変換によって得られた画像信号に対して、所定の信号処理、例えば、色信号生成処理、マトリックス変換処理、その他各種のデジタル処理を行う。また、画像処理部５０の圧縮部５２は、画像信号及び音声信号等の記録に際して、撮像データを符号化処理して圧縮した画像データ及び音声データ等を得るようになっている。
【００２２】
記録制御部５３は、制御部１１に制御されて、コンテンツ記録部８０に対する記録及び再生を制御する。コンテンツ記録部８０としては、例えばＩＣメモリを採用することができる。制御部１１は、記録制御部５３を制御して、画像処理部５０によって信号処理されて圧縮された撮像画像をコンテンツ記録部８０に与えて記録させることができる。リサイズ部５４は、制御部１１に制御されて、撮像画像をリサイズして画像サイズを縮小することができるようになっている。
【００２３】
表示制御部５５は、表示に関する各種処理を実行する。表示制御部５５は、制御部１１に制御されて、表示部７２の表示を制御する。表示部７２は、ＬＣＤ等の表示画面を有しており、表示制御部５５から与えられた画像を表示する。例えば、制御部１１は、表示制御部５５を制御して、ライブビュー表示、レックビュー表示、再生表示等を表示部７２の表示画面上に表示させることもできるようになっている。
【００２４】
近年、撮影機器として、撮像画像の表示部を有しておらず、撮影と記録機能のみを備えたレンズ型カメラが採用されることがある。この種のレンズ型カメラは、一般的に、スマートフォンやタブレットＰＣ等に取り付けられ、取り付けられたスマートフォンやタブレットＰＣ等を制御機器として撮影が制御される。また、このようなスマートフォンやタブレットＰＣ等の制御機器は、レンズ型カメラからの撮像画像を表示する撮像表示装置としても機能する。
【００２５】
図１の操作機器部７０の破線は、破線内の構成要素がスマートフォン等の外部の機器によって実現されていてもよく、また、図１の撮影機器に内蔵されていてもよいことを示している。操作機器部７０が外部の機器によって構成されている場合には、撮影機器１は通信部６０を有しており、通信部６０は、有線又は無線によって、撮影機器１と操作機器部７０との間で情報の授受を可能にする。なお、操作機器部７０が図１の撮影機器１に内蔵されている場合には、このような通信を行う通信部６０は不要である。
【００２６】
操作機器部７０は、操作部７１、表示部７２及び外部通信部７３を備えている。操作部７１は、例えば、図示しないスイッチやボタン等によって構成することができ、これらの操作部７１に対するユーザ操作に基づく操作信号を集積回路１０内の制御部１１に与えることができる。
【００２７】
表示部７２は、撮像画像やメニュー等の表示を行う。なお、表示部７２が図１の撮影機器１に内蔵されている場合には、表示部７２は表示制御部５５によって制御される。また、表示部７２が外部の機器によって構成されている場合には、表示部７２は外部の機器によって制御される。
【００２８】
外部通信部７３は、外部の機器との間で通信を行って、情報を送受することができるようになっている。例えば、外部通信部７３は、インターネット等の回線を介してクラウドとの間で情報の授受を行うことも可能である。なお、外部通信部７３が図１の撮影機器１に内蔵されている場合には、外部通信部７３は制御部１１によって制御される。また、外部通信部７３が外部の機器によって構成されている場合には、外部通信部７３は外部の機器によって制御される。
【００２９】
本実施の形態においては、撮影機器１にはＮＡＮＤ型フラッシュメモリ３０が設けられている。フラッシュメモリ３０には、Ｂ１プログラムを格納するためのＢ１プログラム領域３１、Ｂ２プログラムを格納するためのＢ２プログラム領域３２、Ａプログラムを格納するためのＡプログラム領域３３及びＣプログラムを格納するためのＣプログラム領域３４を有している。
【００３０】
本実施の形態においては、Ｂ１及びＢ２プログラムは相互に同一のプログラムであり、撮影機器１における基本的な機能を達成するための基本プログラムである。ブートプログラムについても、このＢ１，Ｂ２プログラムにそれぞれ含まれる。Ａプログラムは、撮影機器１の機能のうちＢ１，Ｂ２プログラムによる機能の他の全ての機能を達成するための拡張プログラムである。また、Ｃプログラムは、図示しない外部機器からプログラムをダウンロードするためのリペアプログラムである。
【００３１】
Ｂ１，Ｂ２プログラムは、Ｂ１，Ｂ２，Ａプログラムの内容をリフレッシュするためのリフレッシュプログラム部分を含む。更に、本実施の形態においては、Ｂ１，Ｂ２プログラムは、Ｂ１，Ｂ２プログラム中のブートプログラムの内容をリフレッシュするためのブートプログラム用リフレッシュプログラム（以下、ブートリフレッシュプログラムという）部分を含む。即ち、Ｂ１，Ｂ２プログラム中には、ブートプログラム、ブートリフレッシュプログラム、リフレッシュプログラム及び撮影機器１の基本的な機能を実現するための基本プログラムが含まれる。
【００３２】
フラッシュメモリ３０に記憶されている各プログラムは、ＤＲＡＭ２０に展開されて格納されるようになっている。即ち、ＤＲＡＭ２０には、Ｂ１プログラム中のブートプログラムを除くプログラム部分を展開したデータを記憶するＢ１プログラム領域２１及びＢ２プログラム中のブートプログラムを除くプログラム部分を展開したデータを記憶するＢ２プログラム領域２２を含む。また、ＤＲＡＭ２０は、Ａプログラムを展開したデータを記憶するＡプログラム領域２３及びＣプログラムを展開したデータを記憶するＣプログラム領域２４を含む。
【００３３】
ＥＣＣ１５は、制御部１１に制御されて、フラッシュメモリ３０から読出されたデータが与えられてエラー訂正処理を行し、エラー訂正処理後のデータをＤＲＡＭ２０に与えて記憶させるようになっている。また、ＥＣＣ１５は、エラー訂正処理によって訂正したエラーの個数の情報等のエラー訂正結果に基づく情報を制御部１１に供給するようになっている。
【００３４】
リフレッシュプログラムは、Ｂ１，Ｂ２，Ａプログラムのリフレッシュ処理を行うためのプログラムであり、ＥＣＣ１５によって誤り訂正処理されてＤＲＡＭ２０に展開されたブロック単位のデータ、即ち、エラーが含まれていない正常なデータを、Ｂ１及びＢ２プログラム領域３１，３２又はＡプログラム領域３３に書き戻すためのものである。
【００３５】
本実施の形態においては、ブートリフレッシュプログラムは、通常の起動時にはＤＲＡＭ２０には展開されないブートプログラムのリフレッシュを行うためのものである。ブートリフレッシュプログラムは、Ｂ１プログラム領域３１又はＢ２プログラム領域３２に記憶されたブートプログラム部分を含むブロック（以下、先頭ブロックという）のデータ（以下、先頭ブロックデータという）を読出してエラー訂正した後ＤＲＡＭ２０に展開させると共に、ＤＲＡＭ２０に展開された先頭ブロックデータを、Ｂ１，Ｂ２プログラム領域３１，３２のブートプログラム部分を含む先頭ブロックに書き戻すブートリフレッシュ処理が行われるように記述されている。
【００３６】
なお、ＤＲＡＭ２０は、エラー訂正後の先頭ブロックデータを記憶するためのブートリフレッシュ領域２５を有する。
【００３７】
集積回路１０中のＳＴプログラム記憶部１２は、マスクＲＯＭ等によって構成されており、スタート（ＳＴ）プログラムが格納されている。ＳＴプログラムは、撮影機器１の起動時において、フラッシュメモリ３０に記憶されたＢ１，Ｂ２プログラム中のブートプログラム部分を読出すためのプログラムである。ＥＣＣ１４は、制御部１１に制御されて、Ｂ１，Ｂ２プログラム中のブートプログラムが与えられて、このプログラム部分に付加されたエラー訂正コードを用いてエラー訂正処理を行う。即ち、制御部１１は、ＳＴプログラムを実行することで、Ｂ１，Ｂ２プログラム中のブートプログラムを読出してエラー訂正処理を行い、エラーのない正常なブートプログラムをブートプログラム記憶部１３に記憶させるようになっている。
【００３８】
ブートプログラム記憶部１３は、集積回路１０に搭載された例えば内蔵ＲＡＭである。ブートプログラム記憶部１３は、フラッシュメモリ３０のＢ１，Ｂ２プログラム中のブートプログラム部分を展開して格納するために必要な容量を有している。
【００３９】
本実施の形態においては、ブートプログラム記憶部１３には、リフレッシュの要不要を示すリフレッシュフラグ（以下、ＲＦフラグともいう）を記憶する領域であるレジスタ１３ａが設けられている。ＥＣＣ１４は、エラー訂正処理によって訂正したエラーの個数の情報を制御部１１に供給するようになっている。制御部１１は、発生したエラー数が所定の閾値（以下、リフレッシュ判定閾値という）以上になると、レジスタ１３ａのＲＦフラグを“１”にするようになっている。なお、レジスタ１３ａには、ＲＦフラグだけでなく、エラー発生数の情報等、エラー訂正結果に基づく情報を格納するようになっていてもよい。例えば、制御部１１は、ＲＦフラグに代えてエラー発生数の情報を格納するようになっていてもよい。
【００４０】
ブートリフレッシュプログラムは、ブートプログラム記憶部１３内のレジスタ１３ａのＲＦフラグの状態に応じてブートリフレッシュ処理を行うか否かを決定するようになっている。例えば、エラー発生数がフレッシュ判定閾値以上に発生した場合に、ブートリフレッシュ処理を実行するようになっていてもよい。なお、ブートリフレッシュプログラムは、制御部１１によって実行されるようになっている。
【００４１】
次に、このように構成された実施の形態の作用について図２及び図３を参照して説明する。図２は本実施の形態における起動処理を説明するためのフローチャートである。図３はメインフローの一例を示すフローチャートである。
【００４２】
電源が投入されると、制御部１１は、ステップＳ１において、起動処理を開始する。制御部１１はＳＴプログラム記憶部１２に記憶されているＳＴプログラムを読み込んで実行する（ステップＳ２）。制御部１１は、ＳＴプログラムに従って、フラッシュメモリ３０のＢ１プログラム領域３１の所定領域（先頭ブロック）中のブートプログラムを読出す。ブートプログラムは、ＥＣＣ１４によってエラー訂正処理される（ステップＳ３）。制御部１１は、エラー訂正後のエラーを有していない正常なブートプログラムをブートプログラム記憶部１３に格納する（ステップＳ４）。
【００４３】
本実施の形態においては、ＥＣＣ１４は、エラー訂正個数の情報を制御部１１に与えている。制御部１１はエラー訂正個数が閾値以上であるか否かを判定し（ステップＳ５）、閾値以上の場合には、リフレッシュが必要であることを示すＲＦフラグを設定し、ブートプログラム記憶部１３内のレジスタ１３ａに記憶させる（ステップＳ６）。なお、ステップＳ６におけるＲＦフラグの設定を行うことで、後述するブートリフレッシュプログラムの実行に際して、ブートプログラムのリフレッシュが必要であることを判定することができる。
【００４４】
次に、制御部１１は、ステップＳ７において、ブートプログラム記憶部１３に記憶されたブートプログラムを読込んで実行する。制御部１１は、ブートプログラムに従って、ＤＲＡＭ２０の初期化を行い、フラッシュメモリ３０のＢ１プログラム領域３１のブートプログラム部分を除くデータを読出す。読み出されたデータは、ＥＣＣ１５によってエラー訂正処理（Ｂ１プログラムエラー訂正）される（ステップＳ８）。制御部１１は、エラー訂正後のエラーを有していない正常なＢ１プログラムをＤＲＡＭ２０のＢ１プログラム領域２１に格納する（ステップＳ９）。
【００４５】
制御部１１は、ステップＳ１０において、Ｂ１プログラムがＤＲＡＭ２０に正常に展開されて、実行可能であるか否かを判定する。Ｂ１プログラムの展開に際して、ＥＣＣ１５によるエラー訂正可能なエラー数を超えるエラーが発生した場合等においては、Ｂ１プログラムは正常に展開されず、制御部１１において正常に実行することはできない。本実施の形態においては、Ｂ１プログラムが正常に展開されない場合には、Ｂ１プログラムに代えてＢ２プログラムの展開を行うようになっている。
【００４６】
即ち、制御部１１は、ステップＳ１１において、ブートプログラムに従って、フラッシュメモリ３０のＢ２プログラム領域３２のブートプログラム部分を除くデータを読出す。読み出されたデータは、ＥＣＣ１５によってエラー訂正処理（Ｂ２プログラムエラー訂正）される。制御部１１は、エラー訂正後のエラーを有していない正常なＢ２プログラムをＤＲＡＭ２０のＢ２プログラム領域２２に格納する（ステップＳ１２）。
【００４７】
本実施の形態においては、Ｂ１プログラムとＢ２プログラムは相互に同一内容のプログラムであり、組み込みシステムの基本的な機能を実現するものである。ＮＡＮＤ型フラッシュメモリ３０に発生するリードディスターブの影響は、メモリ内の位置毎に異なり、Ｂ１プログラムがエラー等によって展開及び実行に不具合が生じている場合でも、Ｂ２プログラムが正常に展開及び実行できることがある。組み込みシステムの基本的な機能を実現する基本プログラムについては、このような冗長性を有する構成となっており、組み込みシステムの基本的機能については起動の確実性を向上させることができる。
【００４８】
なお、制御部１１は、ステップＳ１３において、Ｂ２プログラムがＤＲＡＭ２０に正常に展開されて、実行可能であるか否かを判定する。Ｂ２プログラムの展開に際して、ＥＣＣ１５によるエラー訂正可能なエラー数を超えるエラーが発生した場合等においては、Ｂ２プログラムは正常に展開されず、制御部１１において正常に実行することはできない。本実施の形態においては、Ｂ１，Ｂ２プログラムのいずれも正常に展開されない場合には、ステップＳ１４において警告を発生する。例えば、この警告は、表示部７２に、Ｂ１，Ｂ２プログラムのいずれも起動不能であったことを示す表示を表示するものであってもよい。
【００４９】
制御部１１は、警告を発生した後、ステップＳ１５において、フラッシュメモリ３０のＣプログラム領域３４からＣプログラムを読み出してＤＲＡＭ２０のＣプログラム領域２４に展開する。そして、制御部１１は、Ｃプログラムに基づくメインフローを開始する。
【００５０】
一方、制御部１１は、ステップＳ１０又はステップＳ１３において、Ｂ１プログラム又はＢ２プログラムが正常に展開されたと判定すると、処理をステップＳ２０に移行して、Ｂ１プログラムが展開実行された場合にはＢ１プログラム領域２１にアクセスし、Ｂ２プログラムが展開実行された場合にはＢ２プログラム領域２２にアクセスして、リフレッシュプログラム領域に格納されたリフレッシュプログラムを実行する。
【００５１】
制御部１１は、リフレッシュプログラムに従って、ＥＣＣ１５のエラー訂正処理のエラー訂正数が所定の閾値以上であるか否かを判定する（ステップＳ２１）。制御部１１は、例えば、ＥＣＣ１５によるエラー訂正個数が所定の閾値以上の場合には、Ｂ１，Ｂ２プログラムのリフレッシュ処理が必要であると判定し、ＥＣＣ１５によるエラー訂正個数が所定の閾値に到達しない場合には、Ｂ１，Ｂ２プログラムのリフレッシュ処理は不要であると判定する。
【００５２】
制御部１１は、Ｂ１，Ｂ２プログラムのリフレッシュ処理が必要であると判定した場合には、ステップＳ２２において、ＤＲＡＭ２０のＢ１プログラム領域２１又はＢ２プログラム領域２２に格納されたエラーを有しない正常なＢ１，Ｂ２プログラムを、ＮＡＮＤ型フラッシュメモリ３０のＢ１プログラム領域３１及びＢ２プログラム領域３２の両方に書き戻す。こうして、Ｂ１，Ｂ２プログラム領域３１，３２のＢ１，Ｂ２プログラムのリフレッシュ処理が行われる。
【００５３】
次に、制御部１１は、処理をステップＳ２３に移行して、Ａプログラム領域２３からＡプログラムの読み出しを行う。制御部１１は、ＡプログラムをＥＣＣ１５に与えて、エラー訂正処理させる。制御部１１は、エラー訂正後のエラーを有していない正常なＡプログラムをＤＲＡＭ２０のＡプログラム領域２３に格納する（ステップＳ２４）。
【００５４】
次に、制御部１１は、ステップＳ２５において、ＡプログラムがＤＲＡＭ２０に正常に展開されて、実行可能であるか否かを判定する。Ａプログラムの展開に際して、ＥＣＣ１５によるエラー訂正可能なエラー数を超えるエラーが発生した場合等においては、Ａプログラムは正常に展開されず、制御部１１において正常に実行することはできない。本実施の形態においては、ステップＳ２５においてＡプログラムが正常に展開されないと判定した場合には、ステップＳ３０において警告を発生すると共に、Ｂ１又はＢ２プログラムによる基本機能のみのメインフローに移行する。例えば、この警告は、表示部７２に、基本機能のみしか実行できないことを示す表示を表示するものであってもよい。
【００５５】
ステップＳ２５において、Ａプログラムが正常に展開されると、制御部１１は、処理をステップＳ２６に移行する。制御部１１は、Ｂ１プログラムが展開実行された場合にはＢ１プログラム領域２１にアクセスし、Ｂ２プログラムが展開実行された場合にはＢ２プログラム領域２２にアクセスして、リフレッシュプログラム領域に格納されたリフレッシュプログラムを実行する。
【００５６】
制御部１１は、リフレッシュプログラムに従って、Ａプログラム展開時におけるＥＣＣ１５のエラー訂正処理のエラー訂正数が所定の閾値以上であるか否かを判定する（ステップＳ２７）。制御部１１は、例えば、ＥＣＣ１５によるエラー訂正個数が所定の閾値以上の場合には、Ａプログラムのリフレッシュ処理が必要であると判定し、ＥＣＣ１５によるエラー訂正個数が所定の閾値に到達しない場合には、Ａプログラムのリフレッシュ処理は不要であると判定する。
【００５７】
制御部１１は、Ａプログラムのリフレッシュ処理が必要であると判定した場合には、ステップＳ２８において、ＤＲＡＭ２０のＡプログラム領域２３に格納されたエラーを有しない正常なＡプログラムを、ＮＡＮＤ型フラッシュメモリ３０のＡプログラム領域３３に書き戻す。こうして、Ａプログラム領域３３のＡプログラムのリフレッシュ処理が行われる。次に、制御部１１は、処理をステップＳ２９に移行して、Ｂ１又はＢ２プログラム及びＡプログラムに基づいて、組み込みシステムのメインフローを実行する。
【００５８】
ステップＳ２９又はＳ３０においてメインフローが開始されると、制御部１１は、ブートリフレッシュ処理を開始する。即ち、制御部１１は、ステップＳ３１において、Ｂ１プログラムが展開実行された場合にはＢ１プログラム領域２１にアクセスし、Ｂ２プログラムが展開実行された場合にはＢ２プログラム領域２２にアクセスして、ブートリフレッシュプログラム領域に格納されたブートリフレッシュプログラムを実行する。また、制御部１１は、ブートリフレッシュプログラムを実行する場合には、表示部７２に対してブートプログラムをリフレッシュ処理することを示す警告表示を表示させるようにしてもよい。
【００５９】
制御部１１は、ブートリフレッシュプログラムに従って、ブートプログラムのリフレッシュ処理が必要であることを示すＲＦフラグが設定されているか否かを判定する（ステップＳ３２）。制御部１１は、ブートプログラム記憶部１３中のレジスタ１３ａの内容を確認して、ブートプログラムのリフレッシュ処理が必要であるか否かを判定する。例えば、レジスタ１３ａの内容によって、ＥＣＣ１４によるエラー訂正個数が所定の閾値以上であることが示された場合には、制御部１１はブートプログラムのリフレッシュ処理が必要であると判定し、ＥＣＣ１４によるエラー訂正個数が所定の閾値に到達しないことが示された場合には、ブートプログラムのリフレッシュ処理は不要であると判定する。
【００６０】
制御部１１は、ブートプログラムのリフレッシュ処理が必要であると判定した場合には、ステップＳ３３において、Ｂ１プログラム領域３１中の先頭ブロックデータ又はＢ２プログラム領域３２中の先頭ブロックデータを読出して、ＥＣＣ１５によりエラー訂正処理させる。制御部１１は、エラー訂正後のエラーを有していない正常な先頭ブロックデータをＤＲＡＭ２０のブートリフレッシュ領域２５に格納する（ステップＳ３４）。次に、制御部１１は、ブートリフレッシュ領域２５に格納されたエラーを有しない正常な先頭ブロックデータを、ＮＡＮＤ型フラッシュメモリ３０のＢ１プログラム領域３１及びＢ２プログラム領域３２の先頭ブロックに書き戻す（ステップＳ３５）。
【００６１】
こうして、Ｂ１，Ｂ２プログラム領域３１，３２中の先頭ブロックに含まれるブートプログラムのリフレッシュ処理が行われる。
【００６２】
なお、図２では、ブートリフレッシュ処理は、メインフローの開始後に実行する例を示したが、ブートリフレッシュプログラムの展開後のいずれのタイミングに実施してもよく、例えば、電源オフ直前に実行してもよい。また、同様に、図２では、Ｂ１，Ｂ２，Ａプログラムのリフレッシュ処理は、メインフローの開始前に実行する例を示したが、リフレッシュプログラムの展開後のいずれのタイミングに実施してもよい。
【００６３】
図３はメインフローの一例を示している。制御部１１は、メインフローにおいて、先ずＣプログラムがＤＲＡＭ２０に展開されて、Ｃプログラムに基づくメインフローが実行されているか否かを判定する（ステップＳ４１）。Ｂ１，Ｂ２プログラムが展開されず実行されていない場合には、組み込みシステムの基本機能を実現することができない。この場合には、図２のステップＳ１５においてＣプログラムが実行される。Ｃプログラムは、外部から基本プログラム等の所定のプログラムをダウンロードして実行させる機能を有している。制御部１１は、ステップＳ４２においてインターネット等を介して外部機器にアクセスして、所定のプログラムをダウンロードする（ステップＳ４３）。制御部１１は、ダウンロードしたプログラムを実行する（ステップＳ４４）。
【００６４】
なお、制御部１１は、ダウンロードしたプログラムを、フラッシュメモリ３０のＢ１及びＢ２プログラム領域３１，３２に書込んでＢ１，Ｂ２プログラムを更新してもよい。
【００６５】
制御部１１は、ステップＳ４５において、Ａプログラムが実行されているか否かを判定する。Ａプログラムが実行されておらず、Ｂ１若しくはＢ２プログラム又はＣプログラムによりダウンロードされた基本プログラムのみが実行されている場合には、組み込みシステムは拡張機能を実現することができず、基本機能のみが実現される。制御部１１は、ステップＳ４６においてスルー画表示を行う。基本機能としてスルー画表示及び静止画撮影機能のみが実現される場合には、制御部１１は、ステップＳ４７において静止画撮影操作が行われたか否かを判定し、静止画撮影操作が行われると静止画撮影を行う（ステップＳ４８）。
【００６６】
Ａプログラムが展開されて実行されている場合には、制御部１１は、ステップＳ４５からステップＳ５１に移行して撮影モードが指定されているか否かを判定し、ステップＳ６１において再生モードが指定されているか否かを判定する。撮影モードが指定されている場合には、制御部１１は、ステップＳ５２においてスルー画表示を行う。制御部１１は、ステップＳ５３においてモードやパラメータ等の設定操作が行われているか否かを判定し、操作が行われている場合には、ステップＳ５４において、モードやパラメータの設定を行う。
【００６７】
制御部１１は、ステップＳ５５において静止画撮影が指示されたか否かを判定し、ステップＳ５７において動画撮影が指示されたか否かを判定する。静止画撮影操作が行われると、制御部１１は、ステップＳ５６において静止画撮影を行い、動画撮影操作が行われると、制御部１１は、ステップＳ５８において動画撮影を行う。
【００６８】
再生モードが指定されている場合には、制御部１１は、ステップＳ６１からステップＳ６３に処理を移行して再生画像の画像選択を行う。制御部１１は、ステップＳ６４において再生方法を選択し、ステップＳ６５において再生を開始する。制御部１１は、ステップＳ６６において再生の終了が指示されたか否かを判定し、ステップＳ６７において再生方法や再生画像の切替えが指示されたか否かを判定する。制御部１１は、再生方法や再生画像の切替えが指示されると、ステップＳ６７からステップＳ６８に処理を移行して、指示に従った切替えを行った後に再生を継続する。また、再生終了が指示されると、制御部１１はステップＳ６９において再生を終了する。
【００６９】
なお、制御部１１は、再生モードが指定されていない場合には、ステップＳ６１からステップＳ６２に処理を移行して、通信、その他の処理を実行する。
【００７０】
このように本実施の形態においては、ブートプログラム記憶部にブートプログラムのリフレッシュの要不要を判定するためのＲＦフラグを記憶させる共に、基本プログラム中に記述したブートリフレッシュプログラムに従って、ＲＦフラグの内容を確認し、ブートプログラムのリフレッシュが必要な場合には、ブートプログラムを含む先頭ブロックデータをＤＲＡＭに展開して書き戻すリフレッシュ処理を実行する。これにより、先頭ブロックデータを記憶可能な容量を有していない内蔵ＲＡＭ等にブートプログラムを記憶させる場合でも、ブートプログラムのリフレッシュ処理が可能である。また、本実施の形態においては、組み込みシステムの全機能を基本プログラムと拡張プログラムによって実現する構成にすると共に、基本プログラムに冗長性を持たせた構成にしており、組み込みシステムの起動の確実性を向上させることができる。
【００７１】
（変形例）
図４は変形例において採用される情報端末装置を示すブロック図である。本変形例は操作機器部７０を外部の機器に設けた例であり、外部の機器として図４に示す情報端末装置９０を採用した例を示している。撮影機器１の他の構成は図１と同様である。情報端末装置９０としては、例えば、スマートフォンやタブレットＰＣ等を採用することができる。
【００７２】
情報端末装置９０は、制御部９１を有している。制御部９１は図示しないＣＰＵ等のプロセッサによって構成することができ、情報端末装置９０の各部を制御する。情報端末装置９０には記憶部９２が設けられており、記憶部９２には各種情報や制御部９１において用いるプログラム等が格納されている。情報端末装置９０は操作部７１及び表示部７２を有している。これらの操作部７１及び表示部７２は、図１の操作部７１及び表示部７２と同様の機能を有する。
【００７３】
情報端末装置９０は、通信部９３を有している。通信部９３は、図１の通信部６０との間で通信する機能及び外部通信部７３の機能の２つの機能を有する。即ち、通信部９２は、制御部９１に制御されて、撮影機器１との間で通信を行うと共に、外部機器との間で通信を行って情報の授受ができるようになっている。
【００７４】
図５は情報端末装置９０における処理フローを示すフローチャートである。
【００７５】
図５のステップＳ７１において、制御部９１は表示部７２の表示画面上にモード表示を行う。モード表示は、情報端末装置９０の動作モードを設定するためのものである。例えば、情報端末装置９０がスマートフォン等によって構成された場合には、動作モードとしては電話モードやメールモード等がある。制御部９１は、ステップＳ７２において、カメラモードが選択されたか否かを判定する。カメラモード以外の動作モードか選択された場合には選択された動作モードが実行される。
【００７６】
カメラモードが選択されると、制御部９１はユーザによる対象カメラの選択操作に応じて、対象カメラを指定する。制御部９１は、指定カメラにアクセスする。通信部９３は、制御部９１に制御されて、指定カメラに対してアクセスし、指定カメラの通信部６０との間で通信を行う。制御部９１は、指定カメラの制御部１１からの情報に基づいて、指定カメラにおいてＣプログラムが起動しているか否かを判定する（ステップＳ７５）。
【００７７】
上述したように、撮影機器１においては、ＣプログラムはＢ１又はＢ２プログラムが起動しない場合に起動するようになっている。制御部９１は、基本プログラムであるＢ１又はＢ２プログラムが起動している場合には、ステップＳ８１において撮影モードが指定されているか否かを判定し、ステップＳ９２において再生モードが指定されているか否かを判定する。撮影モードが指定されている場合には、制御部９１は、ステップＳ８２において撮影モードを指定するためのモード送信を行い、撮影機器１から受信した撮像画像を表示部７２の表示画面上に表示する。制御部９１は、ステップＳ８３においてモードやパラメータ等の設定操作が行われているか否かを判定し、操作が行われている場合には、ステップＳ８４において、モードやパラメータの設定操作に基づくモードやパラメータ情報の送信を行う。
【００７８】
制御部９１は、ステップＳ８５において撮像制御操作が行われたか否かを判定し、ステップＳ８６において操作結果を送信する。即ち、制御部９１は、静止画撮影操作が行われると、静止画撮影のためのコマンドを撮影機器１に送信し、動画撮影操作が行われると、動画撮影のためのコマンドを撮影機器１に送信する。
【００７９】
再生モードが指定されている場合には、制御部９１は、ステップＳ９１からステップＳ９３に処理を移行して再生のための通信を行う。制御部９１は、再生モードが指定されていない場合には、ステップＳ９２において通信モードが指定されているか否かを判定する。通信モードが指定されている場合には、制御部９１は、ステップＳ９４において外部通信用の通信を行う。なお、制御部９１は、ステップＳ９２において通信モードが指定されていないと判定した場合には、指定されているその他の処理を実行する。
【００８０】
制御部９１は、ステップＳ８７において、カメラモードの終了操作が行われたか否かを判定する。終了操作が行われていない場合には、処理をステップＳ７４に戻して、指定カメラとのアクセスを継続する。
【００８１】
一方、撮影機器１においてＢ１又はＢ２プログラムが起動しておらず、Ｃプログラムが起動している場合には、制御部９１は、ステップＳ７１から処理をステップＳ７６に移行して、撮影機器１をリペアするための方法を表示部７２の表示画面上に表示させる。
【００８２】
次に、制御部９１は、ユーザがリペア方法として、インターネット等の回線（ネット利用）を指定した否かを判定する（ステップＳ７７）。ユーザがネット利用を指定すると、制御部９１は、通信部９３を制御して、インターネット等の回線に接続し、撮影機器１をリペアするためのサイトにアクセスし、当該サイトから基本プログラムのダウンロードを行う（ステップＳ７８）。制御部９１は、ダウンロードしたプログラムを通信部９３を介して撮影機器１に転送し、撮影機器１のフラッシュメモリ３０のＢ１，Ｂ２プログラム領域３１，３２に記憶させる（ステップＳ７９）。次いで、制御部９１は、撮影機器１の制御部１１に対して再起動の指示を与える（ステップＳ８０）。
【００８３】
こうして、撮影機器１において基本プログラムが実行されずにＣプログラムが実行されている場合には、情報端末装置９０において必要なプログラムをダウンロードし、撮影機器１のフラッシュメモリ３０に書込むことが可能である。これにより、以後、フラッシュメモリ３０に格納されたＢ１又はＢ２プログラムによるメインフローの実行が可能となる。
【００８４】
上記実施の形態においては、情報取得においては、失敗をなくす必要性が高いことから、上記のように撮影機器を例に挙げた。もちろん、録音機器なども情報取得機器なので、応用は可能である。撮影のための機器として、デジタルカメラを用いて説明したが、カメラとしては、デジタル一眼レフカメラでもコンパクトデジタルカメラでもよく、ビデオカメラ、ムービーカメラのような動画用のカメラでもよく、さらに、携帯電話やスマートフォンなど携帯情報端末（ＰＤＡ：Personal Digital Assist）等に内蔵されるカメラでも勿論構わない。また、携帯機器、再生機器、情報処理機器など、広く電子制御機器にも、本願が有効に活用されうることは言うまでもない。
【００８５】
本発明は、上記実施形態にそのまま限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素の幾つかの構成要素を削除してもよい。
【００８６】
なお、特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。また、これらの動作フローを構成する各ステップは、発明の本質に影響しない部分については、適宜省略も可能であることは言うまでもない。
【００８７】
なお、ここで説明した技術のうち、主にフローチャートで説明した制御に関しては、プログラムで設定可能であることが多く、記録媒体や記録部に収められる場合もある。この記録媒体、記録部への記録の仕方は、製品出荷時に記録してもよく、配布された記録媒体を利用してもよく、インターネットを介してダウンロードしたものでもよい。
【符号の説明】
【００８８】
１…撮影機器、１０…集積回路、１１…制御部、１２…ＳＴプログラム記憶部、１３…ブートプログラム記憶部、１３ａ…レジスタ、１４，１５…ＥＣＣ、２０…ＤＲＡＭ、３０…ＮＡＮＤ型フラッシュメモリ、４１…撮像部、５０…画像処理部、６０…通信部、７０…操作機器部、８０…コンテンツ記録部。
【図１】
2018022224.tif 000003
【図２】
2018022224.tif 000004
【図３】
2018022224.tif 000005
【図４】
2018022224.tif 000006
【図５】
2018022224.tif 000007