(57)【要約】【課題】  １つ前の更新プログラムで動作を可能とすることで、これまでの更新の全てを無効にすることのないフラッシュメモリを備えた電子機器を提供する。【解決手段】  本発明になるフラッシュメモリを備えた電子機器は、２つのプログラム格納領域とこの格納領域の指定情報を格納する指定情報格納領域とを含むフラッシュメモリを備え、前記指定情報に予め優先順位を付しておき、プログラム起動時には優先順位第１位の指定情報で指定されるプログラム格納領域からプログラムを読み出して実行する電子機器であって、前記プログラムの更新時には、優先順位第２位の指定情報で指定されるプログラム格納領域のプログラムを更新し、更新後に指定情報に付された優先順位第１位を第２位に、第２位を第１位に更新する更新手段を備えることを特徴とする。【選択図】        図４
2011164827.tif 000002
【特許請求の範囲】
【請求項１】
２つのプログラム格納領域とこの格納領域の指定情報を格納する指定情報格納領域とを含むフラッシュメモリを備え、前記指定情報に予め優先順位を付しておき、プログラム起動時には優先順位第１位の指定情報で指定されるプログラム格納領域からプログラムを読み出して実行する電子機器であって、
前記プログラムの更新時には、優先順位第２位の指定情報で指定されるプログラム格納領域のプログラムを更新し、更新後に指定情報に付された優先順位第１位を第２位に、第２位を第１位に更新する更新手段を備えることを特徴とするフラッシュメモリを備えた電子機器。
【請求項２】
請求項１において、
前記優先順位第２位の指定情報で指定されるプログラム格納領域からプログラムを読み出して実行する場合は、前記優先順位第１位の指定情報で指定されるプログラム格納領域のプログラム実行中に不正な処理を検知したときであることを特徴とする請求項１記載のフラッシュメモリを備えた電子機器。
【請求項３】
２つのプログラム格納領域とこの格納領域の指定情報を格納する指定情報格納領域とを含むフラッシュメモリを備え、前記指定情報に予め優先順位を付しておき、プログラム起動時には優先順位第１位の指定情報で指定されるプログラム格納領域からプログラムを読み出して実行する電子機器であって、
前記プログラムの更新時には、更新が正常に終了したか否かの判断手段と、
優先順位第２位の指定情報で指定されるプログラム格納領域のプログラムを更新し、前記判断手段から正常終了情報を得たときにのみ更新後に指定情報に付された優先順位第１位を第２位に、第２位を第１位に更新する更新手段とを備えることを特徴とするフラッシュメモリを備えた電子機器。
【請求項４】
前記それぞれのプログラム格納領域には予め工場出荷時には同一内容のプログラムが格納されていることを特徴とする請求項１ないし３いずれかに記載のフラッシュメモリを備えた電子機器。
【請求項５】
前記それぞれのフラッシュメモリのプログラム格納領域は全て更新可能な構成としていることを特徴とする請求項１ないし３いずれかに記載のフラッシュメモリを備えた電子機器。
【請求項６】
２つのプログラム格納領域とこの格納領域の指定情報を格納する指定情報格納領域とを含むフラッシュメモリを備え、前記指定情報に予め優先順位を付しておき、プログラム起動時には優先順位第１位の指定情報で指定されるプログラム格納領域からプログラムを読み出して実行する電子機器のプログラム更新方法であって、
前記プログラムの更新時には、優先順位第２位の指定情報で指定されるプログラム格納領域のプログラムを更新し、更新後に指定情報に付された優先順位第１位を第２位に、第２位を第１位に更新する
ことを特徴とするフラッシュメモリに格納されたプログラムの更新方法。
【請求項７】
２つのプログラム格納領域とこの格納領域の指定情報を格納する指定情報格納領域とを含むフラッシュメモリを備え、前記指定情報に予め優先順位を付しておき、プログラム起動時には優先順位第１位の指定情報で指定されるプログラム格納領域からプログラムを読み出して実行する電子機器のプログラムの更新方法であって、
前記プログラムの更新時には、優先順位第２位の指定情報で指定されるプログラム格納領域のプログラムを更新し、更新が正常に終了したときにのみ更新後に指定情報に付された優先順位第１位を第２位に、第２位を第１位に更新することを特徴とするフラッシュメモリに格納されたプログラムの更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロジェクタ等の電子機器にプログラムやデータの格納部として用いられるフラッシュメモリに係り、特にフラッシュメモリに格納されたプログラムの更新方法に関するものである。
【背景技術】
【０００２】
従来、パーソナルコンピュータや書画カメラ等の映像を拡大投射するプロジェクタが用いられている。このようなプロジェクタでは映像データやプログラムを格納するために安価で大容量の記憶領域を確保できるフラッシュメモリが使用されている。特にプログラムは取り扱えるデータの形式を増やしたりするなどのためにバージョンアップすることを考慮すると必要に応じて随時書換可能なフラッシュメモリに格納するのが便宜である。フラッシュメモリはこのように利点が多いのであるが、書替時にエラーが発生することが知られており、このエラー発生を前提にフラッシュメモリの書替方法が提案されている。
【０００３】
例えば、消去する領域を予めランダムアクセスメモリに転送しておき、途中でデータの消去を中止した場合や書換に失敗した際に、ランダムアクセスメモリに退避しておいたデータをフラッシュメモリの元の状態に復帰できるようにしたものが知られている（特開平１１−２６００７５号公報）。
【０００４】
また、予めフラッシュメモリ供給電圧を監視して、正規の電圧であれば書換を実行するようにして、フラッシュメモリに記憶されたデータの書換に対する信頼性を高めたものが知られている。
【０００５】
しかしながら、前者のフラッシュメモリ書換方法では、フラッシュメモリの書換時、予めランダムアクセスメモリに退避するためのメモリ領域を確保しなければならず、このためにランダムアクセスメモリの作業領域が制約されるという問題点があった。
また、上記フラッシュメモリの書換時、ランダムアクセスメモリへの領域書き込み時間が新たに発生するという問題点があった。
【０００６】
また、後者の方法では、書き換え中に停電等の電圧低下があった場合、書換領域のデータが消去されたり間違ったデータが書き込まれるという問題点があった。特にフラッシュメモリにブートプログラムが書き込まれている場合、フラッシュメモリの書換時にこの内容が損傷されてしまうと、次回以降の電源投入時、システム自体が起動しないという致命的な状態に陥ってしまう。
【０００７】
そこで、これらの問題点の解決する手段としてフラッシュメモリの書換時、予めランダムアクセスメモリに退避することに代えて、フラッシュメモリを少なくとも２つに分割して書換を行う領域と書換をしない領域を設けるようにする方法が提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−２５９１５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
こうすることで、フラッシュメモリ書換時に誤ってプログラムやデータが損傷しても、システムが暴走することなく、元に復帰することができるフラッシュメモリ書換方法が得られる。
【００１０】
しかしながら、このフラッシュメモリ書替方法では、一方の領域は更新できないようにしているので、プログラムが何回か更新されているような場合にフラッシュメモリ書替時に誤ってプログラムが損傷すると一時的ではあっても工場出荷時のプログラムで実行されるようになるから、それまでのプログラムの更新が無効になってしまい、追加された機能等が実行できなくなるという問題点があった。
【００１１】
一時的に実行可能にし、プログラムを更新し直すということも考えられるが、プロジェクタではプレゼンテーション用の資料と更新用プログラムを記憶装置であるＵＳＢメモリに格納しておき、プレゼンテーションを行うときに併せてプログラムを更新することが考えられる。このような場合には、プログラムの更新が正常に実行されなかったことが分かるのは一旦電源を切り、別の機会にプレゼンテーションを行おうとして再度このプロジェクタに電源を投入したときである。この時には必ずしもプログラムが正常に起動されないことが判明しても、実際に更新用プログラムが格納されたＵＳＢメモリを持っていないとプログラムの更新ができず使い勝手が悪いという問題点もあった。
【００１２】
本発明は、上記課題を解決するためになされたもので、全てのプログラム格納領域を書換可能とすることで最悪でも１つ前の更新プログラムで動作を可能とすることで、これまでの更新の全てを無効にすることのないフラッシュメモリを備えた電子機器を提供することを第１の目的とし、このフラッシュメモリの更新方法を提供することを第２の目的とする。
【課題を解決するための手段】
【００１３】
請求項１に記載のフラッシュメモリを備えた電子機器は、２つのプログラム格納領域とこの格納領域の指定情報を格納する指定情報格納領域とを含むフラッシュメモリを備え、前記指定情報に予め優先順位を付しておき、プログラム起動時には優先順位第１位の指定情報で指定されるプログラム格納領域からプログラムを読み出して実行する電子機器であって、前記プログラムの更新時には、優先順位第２位の指定情報で指定されるプログラム格納領域のプログラムを更新し、更新後に指定情報に付された優先順位第１位を第２位に、第２位を第１位に更新する更新手段を備えることを特徴とするものである。
【００１４】
請求項２に記載のフラッシュメモリを備えた電子機器は、請求項１に記載のものにおいて、前記優先順位第２位の指定情報で指定されるプログラム格納領域からプログラムを読み出して実行する場合は、前記優先順位第１位の指定情報で指定されるプログラム格納領域のプログラム実行中に不正な処理を検知したときであることを特徴とするものである。
【００１５】
請求項３に記載のフラッシュメモリを備えた電子機器は、２つのプログラム格納領域とこの格納領域の指定情報を格納する指定情報格納領域とを含むフラッシュメモリを備え、前記指定情報に予め優先順位を付しておき、プログラム起動時には優先順位第１位の指定情報で指定されるプログラム格納領域からプログラムを読み出して実行する電子機器であって、前記プログラムの更新時には、更新が正常に終了したか否かの判断手段と、優先順位第２位の指定情報で指定されるプログラム格納領域のプログラムを更新し、前記判断手段から正常終了情報を得たときにのみ更新後に指定情報に付された優先順位第１位を第２位に、第２位を第１位に更新する更新手段とを備えることを特徴とするものである。
【００１６】
請求項４に記載のフラッシュメモリを備えた電子機器は、前記それぞれのプログラム格納領域には予め工場出荷時には同一内容のプログラムが格納されていることを特徴とするものである。
【００１７】
請求項５に記載のフラッシュメモリを備えた電子機器は、前記それぞれのフラッシュメモリのプログラム格納領域は全て更新可能な構成としていることを特徴とするものである。
【００１８】
請求項６に記載のフラッシュメモリに格納されたプログラムの更新方法は、２つのプログラム格納領域とこの格納領域の指定情報を格納する指定情報格納領域とを含むフラッシュメモリを備え、前記指定情報に予め優先順位を付しておき、プログラム起動時には優先順位第１位の指定情報で指定されるプログラム格納領域からプログラムを読み出して実行する電子機器のプログラム更新方法であって、前記プログラムの更新時には、優先順位第２位の指定情報で指定されるプログラム格納領域のプログラムを更新し、更新後に指定情報に付された優先順位第１位を第２位に、第２位を第１位に更新することを特徴とするものである。
【００１９】
請求項７に記載のフラッシュメモリに格納されたプログラムの更新方法は、２つのプログラム格納領域とこの格納領域の指定情報を格納する指定情報格納領域とを含むフラッシュメモリを備え、前記指定情報に予め優先順位を付しておき、プログラム起動時には優先順位第１位の指定情報で指定されるプログラム格納領域からプログラムを読み出して実行する電子機器のプログラムの更新方法であって、前記プログラムの更新時には、優先順位第２位の指定情報で指定されるプログラム格納領域のプログラムを更新し、更新が正常に終了したときにのみ更新後に指定情報に付された優先順位第１位を第２位に、第２位を第１位に更新することを特徴とするものである。
【発明の効果】
【００２０】
以上のように本発明は、フラッシュメモリに少なくとも２つのプログラム格納領域と指定情報格納領域とを設け、当初はそれぞれのプログラム格納領域に同一のプログラムを格納し、また指定情報格納領域にプログラムを実行するに当ってどのプログラム格納領域からプログラムを読み出すかの指定情報を格納することとし、プログラムの更新要求があったときには、この指定情報で指定されるプログラム格納領域以外の領域に更新プログラムを書き込み、このプログラムの更新に失敗した場合は更新されない現在実行中のプログラムの格納領域のプログラムを使用するようにしているから、プログラムが暴走したり間違った処理を行ったりすることがない。
従って、安定した動作を確保できるフラッシュメモリを備えた電子機器とフラッシュメモリを備える電子機器およびフラッシュメモリに格納されるプログラムの更新方法を提供することができる。
【００２１】
また、分割した領域を全て更新可能とし、現在実行中のプログラムの格納領域以外の領域のプログラムを更新するので、更新に失敗した場合でも、常に更新前のプログラムで電子機器が制御されるから、事情の許す限り更新プログラムで動作させる必要がない。
従って、一通りの作業を実行した後で再度プログラムの更新を行えばよいので使い勝手のよいフラッシュメモリを備えた電子機器とフラッシュメモリを備える電子機器およびフラッシュメモリに格納されるプログラムの更新方法を提供することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明になるフラッシュメモリを備えた電子機器の概略ブロック図である。
【図２】図１の電子機器に用いられるフラッシュメモリの概要メモリマップ図である。
【図３】本発明になるフラッシュメモリを備えた電子機器のプログラムの動作の概要を示すフローチャート図の前半部である。
【図４】本発明になるフラッシュメモリを備えた電子機器のプログラムの動作の概要を示すフローチャート図の後半部である。
【発明を実施するための形態】
【００２３】
次に本発明の実施形態について図面を用いて詳細に説明する。
図１は本発明になるフラッシュメモリを備える電子機器の概略ブロック図、図２は図１の電子機器に用いられるフラッシュメモリの概要メモリマップ図、図３は本発明になるフラッシュメモリを備えた電子機器のプログラムの動作の概要を示すフローチャート図でその前半部、図４は本発明になるフラッシュメモリを備えた電子機器のプログラムの動作の概要を示すフローチャート図でその後半部である。
【００２４】
なお、以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。本発明の実施形態では電子機器として映像を拡大投射するプロジェクタを例にとって説明する。
【００２５】
図１において、１はパーソナルコンピュータ４１からＲＧＢ入力端子３１を介して入力されるアナログＲＧＢ信号をデジタルＲＧＢデータに変換するＡ／Ｄ変換器、２はＡ／Ｄ変換器１からのデジタルＲＧＢデータ、またはカメラモジュール４３からのデジタルＲＧＢデータをＣＰＵ１０の制御のもとにフレームメモリ３に展開したり、フレームメモリ３からのフレーム単位の映像データの解像度を変換したり、画質補正等の画像処理を行うメモリ制御部２、３は展開されたデジタルＲＧＢデータ等をフレーム単位で格納するフレームメモリである。
【００２６】
４はメモリ制御部２からの画像処理を受けたデジタルＲＧＢデータを受けて、図示しない光源やカラーホイール等を制御してＤＭＤ、投射レンズを介して拡大投影するＤＭＤ制御部である。
【００２７】
１０はプロジェクタの各部をそれぞれ制御するＣＰＵ、１２は必要なデータを保存したり、フラッシュメモリ１３の書換時のフラッシュメモリ格納プログラムやデータの展開や一時的に保存するＲＡＭ、１３は本発明に直接係わる工場出荷後においても必要に応じて随時更新されるプロジェクタを制御するプログラムや初期設定データ等を格納するフラッシュメモリである。
【００２８】
ＣＰＵ１０は、フレームメモリ３に展開されたカメラモジュール４３を入力源とする画像データをＵＳＢホスト２１およびＵＳＢ端子３２を介してＵＳＢメモリ４２に保存する。
【００２９】
また、ＣＰＵ１０は、ＵＳＢ端子３２およびＵＳＢホスト２１を介してＵＳＢメモリ４２から画像データを取得し、メモリ制御部２を介してフレームメモリ３に書き込むことにより、メモリ制御部２を介してＤＭＤ制御部４によりＵＳＢメモリ４２に保存されている画像データを拡大投射する。
【００３０】
また、ＣＰＵ１０は、ＵＳＢメモリ４２からプロジェクタを制御プログラムの更新プログラムを取得し、フラッシュメモリ１３のプログラム格納領域に格納されている制御プログラムを更新する。
【００３１】
図２において、２０１はブートローダ格納領域、２０２はプロジェクタの制御プログラム（以下、アプリケーションプログラムともいう。）が格納されている２つの領域の内いずれの格納領域からアプリケーションプログラムを読み出すか、その格納領域の指定情報を格納する指定情報格納領域、２０３、２０４はアプリケーションプログラムの格納領域で、２０３が第１プログラム格納領域、２０４が第２プログラム格納領域である。
【００３２】
なお、当初（工場出荷時）は第１、第２プログラム格納領域２０３、２０４には同一アプリケーションプログラムが格納されており、指定情報格納領域２０２には第１プログラム格納領域２０３を指定する第１の指定情報が優先順位第１位で、第２プログラム格納領域２０４を指定する第２の指定情報が優先順位第２位で格納されている。
【００３３】
次に、本発明になるフラッシュメモリに格納されたプログラムの更新方法について図２〜図４を用いて説明する。
【００３４】
まず、図示しないプロジェクタの電源スイッチを操作し、プロジェクタに電源を投入する。このとき最初に初期化処理が実行される（図３のＳ３０１）。その中で指定情報格納領域２０２から読み出すべきアプリケーションプログラムの格納領域の指定情報を優先順位に従って第１の指定情報を読み出す（図３のＳ３０２）。
【００３５】
第１の指定情報に従って第１プログラム格納領域２０３からアプリケーションプログラムが読み出される（図３のＳ３０３）。この第１プログラム格納領域２０３から読み出されたアプリケーションプログラムがＲＡＭ１２上に展開されてアプリケーションの実行が可能となる（図３のＳ３０４）。このようにしてプロジェクタとしての動作が可能となり、プレゼンテーションを行うことが可能となる。
【００３６】
図１の構成のようにＵＳＢメモリ４２から拡大投射用の画像データだけでなく、更新用のアプリケーションプログラムが提供される場合は、アプリケーションプログラムを実行しているときにもアプリケーションプログラムの更新要求の有無を監視している必要がある（図４のＳ４０１）。
【００３７】
アプリケーションプログラムの更新要求を受け付けると更新処理が実行される（図４のＳ４０３〜Ｓ４０６）。
ここで、更新処理は従来技術でも指摘したがフラッシュメモリ固有の欠点である書換に失敗することを考慮して現在実行中のアプリケーションプログラムが格納されている第１プログラム格納領域２０３ではなく、第２プログラム格納領域２０４を対象にして実行する。
【００３８】
つまり、指定情報格納領域２０２から優先順位第２位の第２の指定情報を読み出し（図４のＳ４０３）、この第２の指定情報で指定される第２プログラム格納領域２０４に書き込んであるアプリケーションプログラムを消去し（図４のＳ４０４）、続いてこの格納領域２０４に更新用のアプリケーションプログラムを書き込む（図４のＳ４０５）。
【００３９】
最後に指定情報格納領域２０２に格納されている優先順位第１位の第１の指定情報と優先順位第２位の第２の指定情報を交換する（図４のＳ４０６）。こうすることで、次にプロジェクタの電源を投入したときには更新されたアプリケーションプログラムを実行できるようになる。なお、当然のことながらアプリケーション実行中はアプリケーションプログラムが更新されても、更新しただけでは更新後のアプリケーションプログラムでプロジェクタが制御できるようになるわけではない。
次に、更新後のアプリケーションプログラムによる実行について説明する。
【００４０】
前述のように、プロジェクタの電源を投入することで第１の指定情報で指定するアプリケーションプログラム格納領域からアプリケーションプログラムを読み出すので、今度は第２プログラム格納領域２０４からプログラムを読み出して実行する。
このとき更新時にエラーがなければ問題なくアプリケーションが実行される。
【００４１】
一方、更新時にエラーがあると、上手く動作しない。
例えば、実行中に規定されていない命令コードをフェッチしたり、またはデータの参照アドレスが規定のアドレス境界でなかったり、または規定したスタック領域を越えてアクセスしようとしたりする等の不正な処理を実行しようとする。このような不正な処理を検知すると正常なアプリケーションプログラムが格納されている第１プログラム格納領域２０３からアプリケーションプログラムを読み出し実行しなければならないのでこのような場合に実行する例外処理プログラムを設けている。
次に、この例外処理について説明する。
【００４２】
例外処理プログラムが動作すると電源投入時と同様処理が実行される。すなわち、最初に初期化処理が実行される（図３のＳ３０５）。その中で指定情報格納領域２０２から読み出すべきアプリケーションプログラムの格納領域の指定情報を優先順位に従って第２の指定情報を読み出す（図３のＳ３０６）。優先順位第１位の第１の指定情報で指定したときに不正な処理が行われ、この状態から抜け出すためだからである。
【００４３】
第２の指定情報に従って第１プログラム格納領域２０３からアプリケーションプログラムが読み出される（図３のＳ３０７）。この第１プログラム格納領域２０３から読み出されたアプリケーションプログラムがＲＡＭ１２上に展開されてアプリケーションの実行が可能となる（図３のＳ３０８）。
【００４４】
このようにして、フラッシュメモリ１３の書換に失敗した場合でも必ず、正常な起動が確保される。
このようにアプリケーションプログラムの更新は実行中ではないアプリケーションプログラムの格納領域に対して行われるので更新に失敗したとしても、更新直前のアプリケーションプログラムで起動されることになる。
【００４５】
すなわち、本発明はアプリケーションプログラム更新時にエラーが発生すると次に起動したときに正常に動作しなくなるのを防止するためでもあるが、たとえ更新に失敗した場合でも更新直前のアプリケーションプログラムでの実行を確保するためでもある。
【００４６】
特に、更新直前のアプリケーションプログラムでの動作の確保ということは１回目のアプリケーションプログラムの更新では問題にはならないが、２度目以降のアプリケーションプログラムの更新があり、毎回更新に失敗すると、正常に動作したとしても、当初のアプリケーションプログラムで動作するに過ぎず、それまでのアプリケーションプログラムの更新が無効となってしまうという問題の発生を防止する点に技術的意義がある。
【００４７】
また、正常に動作するようになるので、直ぐにプレゼンテーションを行う必要がないような場合には、更新用アプリケーションプログラムが格納されたＵＳＢメモリをＵＳＢ端子３２に接続すれば、この更新用アプリケーションプログラムを前述のような手順を経て再度フラッシュメモリ１３の所定のアプリケーションプログラム格納領域に書き込むことでアプリケーションプログラムの更新をすることができる。
【００４８】
なお、以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるところである。従って、このような変形例はすべて本発明の範囲に含まれるものとする。
【００４９】
例えば、更新時必要により正しく書き込めたかどうかベリファイ処理を行う。ベリファイ処理が必要となるのはフラッシュメモリには書き込み時にエラーが発生しやすいからである。そして、ベリファイ処理により、正常にアプリケーションプログラムの更新が行われたことを確認できたときにのみ指定情報格納領域２０２に格納されている優先順位第１位の第１の指定情報と優先順位第２位の第２の指定情報を交換する。この第１、第２の指定情報で次回起動時のアプリケーションプログラムの格納領域が決定するからである。
【符号の説明】
【００５０】
１  Ａ／Ｄ変換器、  ２  メモリ制御部、  ３フレームメモリ、  ４  ＤＭＤ制御部
１０  ＣＰＵ、  １２  ＲＡＭ、  １３  フラッシュメモリ、  ２１  ＵＳＢホスト
３１  ＲＧＢ入力端子、  ３２  ＵＳＢ入力端子、  ４１  パーソナルコンピュータ
４２  ＵＳＢメモリ、  ４３  カメラモジュール
【図１】
2011164827.tif 000003
【図２】
2011164827.tif 000004
【図３】
2011164827.tif 000005
【図４】
2011164827.tif 000006