(57)【要約】【課題】更新データのサイズが変わったとしても、データをより安全に更新することができるようにする。【解決手段】プログラム更新部は、更新データ取得部からの更新データのサイズが、ブートローダ格納領域のサイズ以下である場合、優先順位第２位のブートローダ格納領域に、更新データを書き込む。一方、プログラム更新部は、更新データ取得部からの更新データのサイズがブートローダ格納領域のサイズより大きい場合、優先順位第１位のブートローダ格納領域のデータを、第２位のブートローダ格納領域にコピーして、優先順位を変更したのち、優先順位第２位のブートローダ格納領域に更新データを書き込む。本開示は、例えば、放送信号を受信する受信装置に適用することができる。【選択図】図５
2013156823.tif 000002
【特許請求の範囲】
【請求項１】
データを格納する第１および第２のデータ格納領域、並びに、前記第１および第２のデータ格納領域の位置情報と、前記データの読み出しに対する前記第１および第２のデータ格納領域の優先順位を示す優先順位情報とを格納する位置情報格納領域を含む記憶媒体と、
前記データの更新データを取得する更新データ取得部と、
前記更新データ取得部により取得された更新データのサイズと、前記第１のデータ格納領域のサイズとの比較結果に応じて、前記第１および第２のデータ格納領域のうちのどちらか一方の領域に更新データを書き込むデータ更新部と、
前記更新データ書き込み部により更新データが書き込まれたデータ格納領域の位置情報と、前記データ格納領域の優先順位が高くなるように優先順位情報とを更新する情報更新部と
を備える電子機器。
【請求項２】
前記第２のデータ格納領域は、前記第１のデータ格納領域から連続して配置される
請求項１に記載の電子機器。
【請求項３】
前記第１のデータ格納領域は、前記位置情報格納領域から連続して配置される
請求項２に記載の電子機器。
【請求項４】
前記データ更新部は、前記更新データ取得部により取得された更新データのサイズが、前記第１のデータ格納領域のサイズよりも大きい場合、前記第１のデータ格納領域の先頭から更新データを書き込み、前記更新データ取得部により取得された更新データのサイズが、前記第１および第２のデータ格納領域のサイズ以下である場合、前記第１のデータ格納領域の後ろを第２のデータ格納領域として前記更新データを書き込む
請求項３に記載の電子機器。
【請求項５】
前記データ更新部は、前記更新データ取得部により取得された更新データのサイズが、前記第１のデータ格納領域のサイズよりも大きい場合、前記第１のデータ格納領域のデータを、前記更新データ分あけてコピーして新たな第２のデータ格納領域とした後、前記第１のデータ格納領域の先頭から更新データを書き込み、
前記情報更新部は、前記データ更新部により前記第１のデータ格納領域のデータがコピーされた場合、前記第２のデータ格納領域の優先順位が高くなるように前記優先順位情報を更新し、前記データ更新部により前記第１のデータ格納領域に前記更新データが書き込まれた場合、前記第１のデータ格納領域の優先順位が高くなるように前記優先順位情報を更新する
請求項４に記載の電子機器。
【請求項６】
前記データ更新部は、前記更新データ取得部により取得された更新データのサイズが、前記第１のデータ格納領域のサイズ以下である場合、前記第１のデータ格納領域の後ろを第２のデータ格納領域として前記更新データを書き込み、
前記情報更新部は、前記データ更新部により前記第２のデータ格納領域に前記更新データが書き込まれた場合、前記第２のデータ格納領域の優先順位が高くなるように前記優先順位情報を更新する
請求項４に記載の電子機器。
【請求項７】
前記更新データ取得部により更新データが取得された場合、前記第１のデータ格納領域の優先順位が前記第２のデータ格納領域の優先順位よりも低いとき、前記第２のデータ格納領域のデータを、前記第１のデータ格納領域の先頭から書き込む優先順変更部をさらに備え、
前記情報更新部は、前記優先順位変更部により前記第１のデータ格納領域に、前記第２のデータ格納領域のデータが書き込まれた場合、前記第１のデータ格納領域の優先順位が高くなるように前記優先順位情報を変更する
請求項４に記載の電子機器。
【請求項８】
前記位置情報格納領域に格納されている情報を参照して、優先順位の高い方のデータ格納領域に格納されているデータを読み出すデータ読み出し部を
さらに備える請求項４に記載の電子機器。
【請求項９】
前記記憶媒体は、複数の前記位置情報格納領域を有し、
前記データ読み出し部は、前記複数の位置情報格納領域のうち、先に位置する位置情報格納領域から参照する
請求項８に記載の電子機器。
【請求項１０】
前記情報更新部は、前記複数の位置情報格納領域のうち、１の位置情報格納領域の位置情報と優先順位情報とを更新し、前記１の位置情報格納領域に更新された情報をミラーリングすることで、他の位置情報格納領域の位置情報と優先順位情報とを更新する
請求項９に記載の電子機器。
【請求項１１】
前記記憶媒体は、フラッシュメモリである
請求項４に記載の電子機器。
【請求項１２】
前記データは、プログラムのデータである
請求項４に記載の電子機器。
【請求項１３】
前記プログラムは、ブートローダのプログラムである
請求項１２に記載の電子機器。
【請求項１４】
データを格納する第１および第２のデータ格納領域、並びに、前記第１および第２のデータ格納領域の位置情報と、前記データの読み出しに対する前記第１および第２のデータ格納領域の優先順位を示す優先順位情報とを格納する位置情報格納領域を含む記憶媒体を有する電子機器が、
前記データの更新データを取得し、
取得された更新データのサイズと、前記第１のデータ格納領域のサイズとの比較結果に応じて、前記第１および第２のデータ格納領域のうちのどちらか一方の領域に更新データを書き込み、
更新データが書き込まれたデータ格納領域の位置情報と、前記データ格納領域の優先順位が高くなるように優先順位情報とを更新する
データの更新方法。
【請求項１５】
データを格納する第１および第２のデータ格納領域、並びに、前記第１および第２のデータ格納領域の位置情報と、前記データの読み出しに対する前記第１および第２のデータ格納領域の優先順位を示す優先順位情報とを格納する位置情報格納領域を含む記憶媒体を有するコンピュータに、
前記データの更新データを取得し、
取得された更新データのサイズと、前記第１のデータ格納領域のサイズとの比較結果に応じて、前記第１および第２のデータ格納領域のうちのどちらか一方の領域に更新データを書き込み、
更新データが書き込まれたデータ格納領域の位置情報と、前記データ格納領域の優先順位が高くなるように優先順位情報とを更新する
処理を行わせるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、電子機器、データの更新方法、およびプログラムに関し、特に、データをより安全に更新することができるようにした電子機器、データの更新方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、安価であり、必要に応じて書き換え可能であることから、プログラムやデータなどを格納するためにフラッシュメモリが用いられている。フラッシュメモリは、このように利点が多い反面、停電や不意の電源オフなどにより、書き換え時にエラーが発生することがあり得る。
【０００３】
そこで、従来、このようなエラー発生に対応したプログラムのデータの更新方法がいろいろ提案されている。例えば、特許文献１には、２つのプログラム格納領域とこの領域の指定情報を格納する指定情報格納領域を含むフラッシュメモリにおいて、指定情報に、プログラム格納領域の優先順位を予め付すようにした方法が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１６４８２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の方法は、所定の位置に配置された２つのプログラム格納領域に対して交互にデータを書き込むだけであった。したがって、例えば、更新データのサイズ変更などで更新データのサイズが大きくなり、プログラム格納領域に収まらなかった場合に対しての対応が困難であった。
【０００６】
本開示は、このような状況に鑑みてなされたものであり、更新データのサイズが変わったとしても、データをより安全に更新することができるものである。
【課題を解決するための手段】
【０００７】
本開示の一側面の電子機器は、データを格納する第１および第２のデータ格納領域、並びに、前記第１および第２のデータ格納領域の位置情報と、前記データの読み出しに対する前記第１および第２のデータ格納領域の優先順位を示す優先順位情報とを格納する位置情報格納領域を含む記憶媒体と、前記データの更新データを取得する更新データ取得部と、前記更新データ取得部により取得された更新データのサイズと、前記第１のデータ格納領域のサイズとの比較結果に応じて、前記第１および第２のデータ格納領域のうちのどちらか一方の領域に更新データを書き込むデータ更新部と、前記更新データ書き込み部により更新データが書き込まれたデータ格納領域の位置情報と、前記データ格納領域の優先順位が高くなるように優先順位情報とを更新する情報更新部とを備える。
【０００８】
前記第２のデータ格納領域は、前記第１のデータ格納領域から連続して配置される。
【０００９】
前記第１のデータ格納領域は、前記位置情報格納領域から連続して配置される。
【００１０】
前記データ更新部は、前記更新データ取得部により取得された更新データのサイズが、前記第１のデータ格納領域のサイズよりも大きい場合、前記第１のデータ格納領域の先頭から更新データを書き込み、前記更新データ取得部により取得された更新データのサイズが、前記第１および第２のデータ格納領域のサイズ以下である場合、前記第１のデータ格納領域の後ろを第２のデータ格納領域として前記更新データを書き込むことができる。
【００１１】
前記データ更新部は、前記更新データ取得部により取得された更新データのサイズが、前記第１のデータ格納領域のサイズよりも大きい場合、前記第１のデータ格納領域のデータを、前記更新データ分あけてコピーして新たな第２のデータ格納領域とした後、前記第１のデータ格納領域の先頭から更新データを書き込み、前記情報更新部は、前記データ更新部により前記第１のデータ格納領域のデータがコピーされた場合、前記第２のデータ格納領域の優先順位が高くなるように前記優先順位情報を更新し、前記データ更新部により前記第１のデータ格納領域に前記更新データが書き込まれた場合、前記第１のデータ格納領域の優先順位が高くなるように前記優先順位情報を更新することができる。
【００１２】
前記データ更新部は、前記更新データ取得部により取得された更新データのサイズが、前記第１のデータ格納領域のサイズ以下である場合、前記第１のデータ格納領域の後ろを第２のデータ格納領域として前記更新データを書き込み、前記情報更新部は、前記データ更新部により前記第２のデータ格納領域に前記更新データが書き込まれた場合、前記第２のデータ格納領域の優先順位が高くなるように前記優先順位情報を更新することができる。
【００１３】
前記更新データ取得部により更新データが取得された場合、前記第１のデータ格納領域の優先順位が前記第２のデータ格納領域の優先順位よりも低いとき、前記第２のデータ格納領域のデータを、前記第１のデータ格納領域の先頭から書き込む優先順変更部をさらに備え、前記情報更新部は、前記優先順位変更部により前記第１のデータ格納領域に、前記第２のデータ格納領域のデータが書き込まれた場合、前記第１のデータ格納領域の優先順位が高くなるように前記優先順位情報を変更することができる。
【００１４】
前記位置情報格納領域に格納されている情報を参照して、優先順位の高い方のデータ格納領域に格納されているデータを読み出すデータ読み出し部をさらに備える。
【００１５】
前記記憶媒体は、複数の前記位置情報格納領域を有し、前記データ読み出し部は、前記複数の位置情報格納領域のうち、先に位置する位置情報格納領域から参照することができる。
【００１６】
前記情報更新部は、前記複数の位置情報格納領域のうち、１の位置情報格納領域の位置情報と優先順位情報とを更新し、前記１の位置情報格納領域に更新された情報をミラーリングすることで、他の位置情報格納領域の位置情報と優先順位情報とを更新することができる。
【００１７】
前記記憶媒体は、フラッシュメモリである。
【００１８】
前記データは、プログラムのデータである。
【００１９】
前記データは、ブートローダのプログラムである。
【００２０】
本開示の一側面のデータの更新方法は、データを格納する第１および第２のデータ格納領域、並びに、前記第１および第２のデータ格納領域の位置情報と、前記データの読み出しに対する前記第１および第２のデータ格納領域の優先順位を示す優先順位情報とを格納する位置情報格納領域を含む記憶媒体を有する電子機器が、前記データの更新データを取得し、取得された更新データのサイズと、前記第１のデータ格納領域のサイズとの比較結果に応じて、前記第１および第２のデータ格納領域のうちのどちらか一方の領域に更新データを書き込み、更新データが書き込まれたデータ格納領域の位置情報と、前記データ格納領域の優先順位が高くなるように優先順位情報とを更新する。
【００２１】
本開示の一側面のプログラムは、データを格納する第１および第２のデータ格納領域、並びに、前記第１および第２のデータ格納領域の位置情報と、前記データの読み出しに対する前記第１および第２のデータ格納領域の優先順位を示す優先順位情報とを格納する位置情報格納領域を含む記憶媒体を有するコンピュータに、前記データの更新データを取得し、取得された更新データのサイズと、前記第１のデータ格納領域のサイズとの比較結果に応じて、前記第１および第２のデータ格納領域のうちのどちらか一方の領域に更新データを書き込み、更新データが書き込まれたデータ格納領域の位置情報と、前記データ格納領域の優先順位が高くなるように優先順位情報とを更新する処理を行わせる。
【００２２】
本開示の一側面においては、データの更新データが取得され、取得された更新データのサイズと、データを格納する第１および第２のデータ格納領域、並びに、前記第１および第２のデータ格納領域の位置情報と、前記データの読み出しに対する前記第１および第２のデータ格納領域の優先順位を示す優先順位情報とを格納する位置情報格納領域を含む記憶媒体に含まれる前記第１のデータ格納領域のサイズとの比較結果に応じて、前記第１および第２のデータ格納領域のうちのどちらか一方の領域に更新データが書き込まれる。そして、更新データが書き込まれたデータ格納領域の位置情報と、前記データ格納領域の優先順位が高くなるように優先順位情報とが更新される。
【発明の効果】
【００２３】
本開示の一側面によれば、データを更新することができる。特に、より安全にデータを更新することができる。
【図面の簡単な説明】
【００２４】
【図１】本技術を適用した受信装置の構成例を示すブロック図である。
【図２】フラッシュメモリのメモリマップの例を示す図である。
【図３】ブートローダの起動を行う場合の受信装置の機能構成例を示すブロック図である。
【図４】ブートローダの起動処理を説明するフローチャートである。
【図５】ブートローダの更新を行う場合の受信装置の機能構成例を示すブロック図である。
【図６】更新データのサイズがプログラム格納領域のサイズよりも小さいか等しい場合の更新処理を説明する図である。
【図７】更新データのサイズがプログラム格納領域のサイズよりも大きい場合の更新処理を説明する図である。
【図８】優先順位変更処理を説明する図である
【図９】ブートローダの更新処理を説明するフローチャートである。
【図１０】フラッシュメモリのメモリマップの他の例を示す図である。
【発明を実施するための形態】
【００２５】
以下、本開示を実施するための形態（以下実施の形態とする）について説明する。
【００２６】
[受信装置の構成例]
図１は、本技術を適用した電子機器としての、受信装置の構成例を示す図である。
【００２７】
受信装置１００は、アンテナ１０１を介して、図示せぬ放送装置からの放送信号を受信、選局し、その映像をディスプレイ１０２より出力するとともに、その音声をスピーカ１０３より出力する。
【００２８】
図１の例においては、受信装置１００は、CPU（Central Processing Unit）１１１、ROM(Read Only Memory) １１２、RAM（Random Access Memory）１１３、操作入力部１１４、フラッシュメモリ１１５、およびバス１１６を含むように構成される。受信装置１００は、ネットワークI/F１１７、ドライブ１１８、フロントエンド部１１９、デスクランブラ１２０、デマルチプレクサ１２１を含むように構成される。受信装置１００は、また、MPEG（Moving Picture Experts Group）デコーダ１２２、映像信号処理部１２３、および音声信号処理部１２４を含むように構成される。
【００２９】
CPU１１１には、ROM１１２、RAM１１３、および操作入力部１１４が接続されている。CPU１１１は、ROM１１２に記憶されているプログラム、または、フラッシュメモリ１１５などからRAM１１３にロードされたプログラム、もしくは操作入力部１１４を介して得られるユーザの指示信号に従って、受信装置１００の各部を制御し、各種の処理を実行する。
【００３０】
RAM１１３は、CPU１１１が各種の処理を実行する上において必要なデータなどを適宜記憶する。RAM１１３には、また、フラッシュメモリ１１５が接続されている。フラッシュメモリ１１５には、ブートローダをはじめ、様々なプログラムやプログラムの更新に必要なデータなどが記憶されている。操作入力部１１４は、入力ボタンやリモートコントローラの受光部などからなり、ユーザの操作に対応する指示信号を、CPU１１１に出力する。
【００３１】
CPU１１１には、バス１１６を介して、ネットワークI/F１１７、ドライブ１１８、フロントエンド部１１９、デスクランブラ１２０、デマルチプレクサ１２１、MPEGデコーダ１２２、映像信号処理部１２３、および音声信号処理部１２４が接続されている。これらの各部は、CPU１１１の制御に応じて、所定の処理を実行する。
【００３２】
ネットワークI/F１１７は、モデムやIEEE802.3インタフェースなどにより構成され、図示せぬネットワークに接続されるサーバなどとデータリンク確立を行う。また、ネットワークI/F１１７は、必要に応じて、FTP(File Transfer Protocol)やHTTP(Hyper Text Transport Protocol)などのデータ転送プロトコルにより、所定のデータを通信する。
【００３３】
ドライブ１１８には、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどからなるリムーバブルメディア１２５が適宜装着される。ドライブ１１８は、リムーバブルメディア１２５よりデータを読み出したり、データを書き込んだりする際に用いられる。リムーバブルメディア１２５から読み出されたコンピュータプログラムは、必要に応じてROM１１２やフラッシュメモリ１１５に記憶され、インストールされる。
【００３４】
フロントエンド部１１９は、アンテナ１０１を介して受信された放送信号から、ユーザの選局に対応する放送信号を抽出して、復調し、トランスポートストリーム（TS : transport Stream）を生成し、デスクランブラ１２０に出力する。デスクランブラ１２０は、フロントエンド部１１９から入力されるトランスポートストリームのスクランブルを適宜解除して、デマルチプレクサ１２１に出力する。
【００３５】
デマルチプレクサ１２１は、多重化されたトランスポートストリームを、映像または音声データなどのストリームや、セクションデータに分離する。デマルチプレクサ１２１は、映像データおよび音声データをMPEGデコーダ１２２に出力し、必要なセクションデータのみをCPU１１１に出力する。すなわち、デマルチプレクサ１２１においては、ソフトウェアあるいはハードウェアのフィルタをかけることが可能であり、そのフィルタに対して、例えば、メーカ識別子などを指定することで必要なセクションデータのみがCPU１１１に出力される。
【００３６】
セクションデータには、データ放送やデータのダウンロードで利用されるDSM-CCセクション（例えば、データカルーセル）、ダウンロード告知情報(SDTT)、およびEPG（Electronic Program Guide）情報などが含まれている。
【００３７】
CPU１１１は、デマルチプレクサ１２１からのセクションデータのそれぞれの情報をRAM１１３に展開する。RAM１１３に展開されたセクションデータのうち、保持すべきものは、CPU１１１により形式を変換されて、RAM１１３やフラッシュメモリ１１５に保持される。
【００３８】
MPEGデコーダ１２２は、デマルチプレクサ１２１からの映像データをデコードし、映像信号処理部１２３に出力し、また、デマルチプレクサ１２１からの音声データをデコードし、音声信号処理部１２４に出力する。
【００３９】
映像信号処理部１２３は、デマルチプレクサ１２１からの映像データに、データ放送データなどを付加（重畳）し、NTSCフォーマットの信号に変換して、映像を、ディスプレイ１０２に表示させる。音声信号処理部１２４は、デマルチプレクサ１２１からの音声データを、スピーカ１０３から出力させる。
【００４０】
ここで、受信装置１００の基本的な動作を説明する。
【００４１】
フロントエンド部１１９は、アンテナ１０１を介して受信された放送信号から、ユーザの選局に対応する放送信号を抽出して、復調し、トランスポートストリームを生成し、デスクランブラ１２０に出力する。デスクランブラ１２０は、フロントエンド部１１９から入力されるトランスポートストリームのスクランブルを適宜解除して、デマルチプレクサ１２１に出力する。
【００４２】
デマルチプレクサ１２１は、フロントエンド部１１９からの多重化されたトランスポートストリームを、映像または音声データなどのストリームや、セクションデータに分離する。そして、デマルチプレクサ１２１は、分離した映像データおよび音声データをMPEGデコーダ１２２に出力し、必要なセクションデータのみをCPU１１１に出力する。
【００４３】
MPEGデコーダ１２２は、デマルチプレクサ１２１からの映像データをデコードし、映像信号処理部１２３に出力し、デマルチプレクサ１２１からの音声データをデコードし、音声信号処理部１２４に出力する。
【００４４】
映像信号処理部１２３は、デマルチプレクサ１２１からの映像データに、データ放送データなどを付加（重畳）し、NTSCフォーマットの信号に変換して、変換した映像データに対応する映像を、ディスプレイ１０２に表示させる。音声信号処理部１２４は、デマルチプレクサ１２１からの音声データに対応する音声を、スピーカ１０３から出力させる。
【００４５】
これにより、受信装置１００のディスプレイ１０２には、所定のサービスの映像が表示され、スピーカ１０３から、所定のサービスの音声が出力される。
【００４６】
[フラッシュメモリのメモリマップ例]
図２は、フラッシュメモリの一部のメモリマップを示す概要図である。すなわち、図２の例においては、フラッシュメモリ１１５のうち、ブートローダの起動および更新に必要な部分の初期状態のメモリマップが示されている。
【００４７】
フラッシュメモリ１１５は、位置情報格納領域１５１−１、位置情報格納領域１５１−２、ブートローダ格納領域１５２−１、およびブートローダ格納領域１５２−２を含むように構成される。すなわち、フラッシュメモリ１１５は、位置情報格納領域を２面、およびブートローダ格納領域を２面有している。
【００４８】
そして、フラッシュメモリ１１５において、位置情報格納領域１５１−１、位置情報格納領域１５１−２、ブートローダ格納領域１５２−１、およびブートローダ格納領域１５２−２は、この順に連続して配置される。すなわち、各領域は、隙間（空き領域）なく配置されている。
【００４９】
位置情報格納領域１５１−１および１５１−２は、ブートローダ格納領域１５２−１および１５２−２の各位置情報（アドレスおよびサイズ）と、ブートローダの起動のためにプログラムを読み出す際の優先順位を示す優先順位情報とが格納されている領域である。位置情報格納領域１５１−１および１５１−２には、ミラーリングにより同じ情報が格納されている。
【００５０】
ここで、図２の例において、実線矢印は、指し示されているプログラム格納領域が、優先順位第１位であることを表し、点線矢印は、指し示されているプログラム格納領域が、優先順位第２位であることを表している。
【００５１】
すなわち、図２の例の場合、位置情報格納領域１５１−１および１５１−２に格納されている優先順位情報は、ブートローダ格納領域１５２−１が優先順位第１位であり、ブートローダ格納領域１５２−２が優先順位第２位であることを示している。
【００５２】
ブートローダ格納領域１５２−１および１５２−２は、それぞれ、ブートローダのプログラムが格納されている領域である。
【００５３】
なお、上述した各領域には、チェックサムやハッシュなどが付加されており、各領域は、それぞれのデータが正常なものであるかがチェックされるように構成されている。
【００５４】
以下、特に区別する必要のない場合、位置情報格納領域１５１−１および１５１−２をまとめて位置情報格納領域１５１と称し、ブートローダ格納領域１５２−１およびブートローダ格納領域１５２−２をまとめてブートローダ格納領域１５２と称する。
【００５５】
[ブートローダの起動を行う場合の機能構成例]
図３は、ブートローダの起動を行う受信装置１００の機能構成例を示している。図３に示される機能ブロックは、例えば、図１のCPU１１１により所定の制御プログラムが実行され、RAM１１３に展開されることで実現される。
【００５６】
図３に示される機能ブロックは、位置情報読み出し部１８１、プログラム読み出し部１８２、プログラム実行部１８３、および異常通知部１８４を含むように構成される。
【００５７】
位置情報読み出し部１８１は、ブートローダ起動の指示を受けると、フラッシュメモリ１１５の位置情報格納領域１５１−１に格納されている各ブートローダ格納領域１５２の位置情報と優先順位情報を読み出す。位置情報読み出し部１８１は、位置情報格納領域１５１−１から読み出した情報が異常である場合、フラッシュメモリ１１５の位置情報格納領域１５１−２に格納されている各ブートローダ格納領域１５２の位置情報と優先順位情報を読み出す。
【００５８】
位置情報読み出し部１８１は、位置情報格納領域１５１−１または１５１−２から読み出した情報が正常である場合、読み出した情報である、各ブートローダ格納領域１５２の位置情報と優先順位情報を、プログラム読み出し部１８２に供給する。位置情報読み出し部１８１は、位置情報格納領域１５１−２から読み出した情報が異常である場合、その旨を示す情報を、異常通知部１８４に供給する。
【００５９】
プログラム読み出し部１８２は、位置情報読み出し部１８１からの各ブートローダ格納領域１５２の位置情報と優先順位情報を受け取る。プログラム読み出し部１８２は、優先順位情報が示す優先順位が高い方のブートローダ格納領域１５２の位置情報を参照して、優先順位が高い方のブートローダ格納領域１５２からブートローダのプログラムを読み出す。プログラム読み出し部１８２は、読み出したプログラムが異常である場合、優先順位が低い方のブートローダ格納領域１５２の位置情報を参照して、優先順位が低い方のブートローダ格納領域１５２からブートローダのプログラムを読み出す。
【００６０】
プログラム読み出し部１８２は、ブートローダ格納領域１５２−１または１５２−２から読み出したプログラムが正常である場合、読み出したブートローダのプログラムを、プログラム実行部１８３に供給する。プログラム読み出し部１８２は、優先順位が低い方のブートローダ格納領域１５２から読み出した情報が異常である場合、その旨を示す情報を、異常通知部１８４に供給する。
【００６１】
プログラム実行部１８３は、プログラム読み出し部１８２から供給されるブートローダのプログラムを実行し、ブートローダを起動させる。
【００６２】
異常通知部１８４は、位置情報読み出し部１８１またはプログラム読み出し部１８２からの異常を示す情報を受ける。異常通知部１８４は、その情報に基づいて、映像信号処理部１２３を制御し、異常を示す画面をディスプレイ１０２に表示させたり、音声信号処理部１２４を制御し、異常を示す音声をスピーカ１０３から出力させたりすることで、ユーザに対して異常を通知する。
【００６３】
[ブートローダの起動処理の例]
次に、図４のフローチャートを参照して、図３に示された機能ブロックにより実行されるブートローダの起動処理について説明する。
【００６４】
位置情報読み出し部１８１は、ブートローダ起動の指示を受けると、ステップＳ１０１において、フラッシュメモリ１１５の位置情報格納領域１５１−１に格納されている各ブートローダ格納領域１５２の位置情報と優先順位情報を読み出す。
【００６５】
位置情報読み出し部１８１は、チェックサムやハッシュなどを用いて、位置情報格納領域１５１−１から読み出した情報を確認し、ステップＳ１０２において、位置情報格納領域１５１−１から読み出した情報が正常であるか否かを判定する。
【００６６】
ステップＳ１０２において、位置情報格納領域１５１−１から読み出した情報が正常であると判定された場合、位置情報読み出し部１８１は、位置情報格納領域１５１−１から読み出した情報を、プログラム読み出し部１８２に供給する。その後、処理は、ステップＳ１０３およびＳ１０４をスキップし、ステップＳ１０５に進む。
【００６７】
また、ステップＳ１０２において、位置情報格納領域１５１−１から読み出した情報が異常であると判定された場合、処理は、ステップＳ１０３に進む。ステップＳ１０３において、位置情報読み出し部１８１は、フラッシュメモリ１１５の位置情報格納領域１５１−２に格納されている各ブートローダ格納領域１５２の位置情報と優先順位情報を読み出す。
【００６８】
位置情報読み出し部１８１は、チェックサムやハッシュなどを用いて、位置情報格納領域１５１−２から読み出した情報を確認し、ステップＳ１０４において、位置情報格納領域１５１−２から読み出した情報が正常であるか否かを判定する。
【００６９】
ステップＳ１０４において、位置情報格納領域１５１−２から読み出した情報が正常であると判定された場合、位置情報読み出し部１８１は、位置情報格納領域１５１−２から読み出した情報を、プログラム読み出し部１８２に供給する。その後、処理は、ステップＳ１０５に進む。
【００７０】
ステップＳ１０５において、プログラム読み出し部１８２は、優先順位第１位のブートローダ格納領域１５２を読み出す。すなわち、プログラム読み出し部１８２は、位置情報読み出し部１８１からの情報である、各ブートローダ格納領域１５２の位置情報と優先順位情報を受け取る。プログラム読み出し部１８２は、優先順位情報が示す優先順位が高い方（第１位）のブートローダ格納領域１５２の位置情報を参照して、優先順位が高い方のブートローダ格納領域１５２からブートローダのプログラムを読み出す。
【００７１】
ステップＳ１０６において、プログラム読み出し部１８２は、読み出したプログラムが正常であるか否かを判定する。ステップＳ１０６において、正常ではない（異常である）と判定された場合、処理は、ステップＳ１０７に進む。
【００７２】
ステップＳ１０７において、プログラム読み出し部１８２は、優先順位第２位のブートローダ格納領域１５２を読み出す。すなわち、プログラム読み出し部１８２は、優先順位情報が示す優先順位が低い方（第２位）のブートローダ格納領域１５２の位置情報を参照して、優先順位が低い方のブートローダ格納領域１５２からブートローダのプログラムを読み出す。
【００７３】
ステップＳ１０８において、プログラム読み出し部１８２は、読み出したプログラムが正常であるか否かを判定する。ステップＳ１０８において、正常であると判定された場合、プログラム読み出し部１８２は、読み出したブートローダのプログラムを、プログラム実行部１８３に供給し、処理は、ステップＳ１０９に進む。
【００７４】
また、ステップＳ１０６において、正常であると判定された場合、プログラム読み出し部１８２は、読み出したブートローダのプログラムを、プログラム実行部１８３に供給し、処理は、ステップＳ１０７およびＳ１０８をスキップし、ステップＳ１０９に進む。
【００７５】
ステップＳ１０９において、プログラム実行部１８３は、プログラム読み出し部１８２から供給されるブートローダのプログラムを実行し、ブートローダを起動させる。
【００７６】
一方、ステップＳ１０４において異常であると判定された場合、位置情報読み出し部１８１は、位置情報格納領域１５１−２から読み出した情報が異常である旨を示す情報を、異常通知部１８４に供給し、処理は、ステップＳ１１０に進む。
【００７７】
また、ステップＳ１０８において異常であると判定された場合、プログラム読み出し部１８２は、優先順位が低い方のブートローダ格納領域１５２から読み出した情報が異常である旨を示す情報を、異常通知部１８４に供給し、処理は、ステップＳ１１０に進む。
【００７８】
ステップＳ１１０において、異常通知部１８４は、位置情報読み出し部１８１またはプログラム読み出し部１８２からの異常を示す情報に基づいて、ユーザに対して異常を通知する。
【００７９】
以上のように、位置情報格納領域およびブートローダ格納領域を２面ずつ設けるようにしたので、一方に格納されている位置情報やプログラムが異常であったとしても、他方の情報を参照することにより、ブートローダを確実に起動させることができる。
【００８０】
[ブートローダのプログラムの更新を行う場合の機能構成例]
図５は、ブートローダのプログラムの更新を行う受信装置１００の機能構成例を示している。図５に示される機能ブロックは、例えば、図１のCPU１１１により所定の制御プログラムが実行され、RAM１１３に展開されることで実現される。
【００８１】
図５に示される機能ブロックは、更新データ取得部２０１、優先順位変更部２０２、プログラム更新部２０３、および情報更新部２０４を含むように構成される。
【００８２】
更新データ取得部２０１は、放送波に多重化されてきた更新データを取得し、フラッシュメモリ１１５のダウンロードデータ格納領域に一旦格納する。なお、ダウンロードデータ格納領域は、フラッシュメモリ１１５に限らず、外付けUSBメモリなど他の記憶媒体に格納されてもよい。
【００８３】
例えば、更新データが多重化される日時やチャンネルなどが予告されている情報であるダウンロード告知情報(SDTT)が予め放送波から取得されて、フラッシュメモリ１１５に格納されている。更新データ取得部２０１は、そのSDTTを参照することで取得されたチャンネルで、取得された日時に、デマルチプレクサ１２１からのセクションデータから、更新データを取得する。なお、更新データは、ネットワークI/F１１７を介してネットワーク経由で取得されてもよく、取得の方法は限定されない。
【００８４】
更新データ取得部２０１は、更新データの取得が終わると、更新データのサイズを示す情報を、プログラム更新部２０３に供給する。
【００８５】
例えば、ユーザにより、操作入力部１１４を介してプログラムの更新が指示されると、ブートローダの更新処理に先立ち、ブートローダ格納領域１５２−１の優先順位が第１位であるか否かを判定する。優先順位変更部２０２は、ブートローダ格納領域１５２−１の優先順位が第１位であると判定した場合、優先順位の変更完了を示す情報を、プログラム更新部２０３に供給する。
【００８６】
優先順位変更部２０２は、ブートローダ格納領域１５２−２の優先順位が第１位であると判定した場合、ブートローダ格納領域１５２−１および１５２−２の優先順位を初期状態に戻すべく、優先順位の変更処理を行う。
【００８７】
すなわち、優先順位変更部２０２は、ブートローダ格納領域１５２−２のプログラムを、ブートローダ格納領域１５２−１の先頭からコピーする。そして、優先順位変更部２０２は、情報更新部２０４を制御し、位置情報格納領域１５１−１および位置情報格納領域１５１−２に格納されている優先順位情報を変更させ、位置情報を変更させる。
【００８８】
これにより、ブートローダ格納領域１５２−１および１５２−２の優先順位が初期状態（ブートローダ格納領域１５２−１の優先順位が第１位である状態）に戻る。優先順位変更部２０２は、優先順位の変更処理が終わると、優先順位の変更完了を示す情報を、プログラム更新部２０３に供給する。
【００８９】
プログラム更新部２０３は、優先順位変更部２０２からの優先順位の変更完了を示す情報を受けると、まず、更新データ取得部２０１からの更新データのサイズと、優先順位第１位であるブートローダ格納領域１５２−１のサイズとを比較する。プログラム更新部２０３は、更新データ取得部２０１からの更新データのサイズとブートローダ格納領域１５２−１のサイズの比較結果に応じて、ブートローダ格納領域１５２−１または１５２−２に更新データを書き込む。
【００９０】
すなわち、プログラム更新部２０３は、更新データ取得部２０１からの更新データのサイズが、ブートローダ格納領域１５２−１のサイズ以下である場合、ブートローダ格納領域１５２−２に、フラッシュメモリ１１５のダウンロードデータ格納領域の更新データを書き込む。
【００９１】
具体的には、プログラム更新部２０３は、ブートローダ格納領域１５２−１に連続する後ろの領域をブートローダ格納領域１５２−２とし、更新データを書き込む。そして、プログラム更新部２０３は、情報更新部２０４を制御し、位置情報格納領域１５１−１および位置情報格納領域１５１−２に格納されている優先順位情報を変更させ、位置情報を変更させる。
【００９２】
一方、プログラム更新部２０３は、更新データ取得部２０１からの更新データのサイズがブートローダ格納領域１５２−１のサイズより大きい場合、ブートローダ格納領域１５２−１にフラッシュメモリ１１５のダウンロードデータ格納領域の更新データを書き込む。
【００９３】
具体的には、プログラム更新部２０３は、更新データの書き込みの前に、ブートローダ格納領域１５２−１から更新データのサイズ分空けた位置からの領域をブートローダ格納領域１５２−２として、ブートローダ格納領域１５２−１のデータを書き込む。そして、プログラム更新部２０３は、情報更新部２０４を制御し、位置情報格納領域１５１−１および位置情報格納領域１５１−２に格納されている優先順位情報を変更させ、位置情報を変更させる。
【００９４】
その後、プログラム更新部２０３は、ブートローダ格納領域１５２−１の先頭から、フラッシュメモリ１１５のダウンロードデータ格納領域の更新データを書き込む。そして、情報更新部２０４を制御し、位置情報格納領域１５１−１および位置情報格納領域１５１−２に格納されている優先順位情報を変更させ、位置情報を変更させる。
【００９５】
位置情報更新部２０４は、優先順位変更部２０２またはプログラム更新部２０３からの指示に対応して、位置情報格納領域１５１−１および位置情報格納領域１５１−２に格納されている優先順位情報を変更し、位置情報を変更する。例えば、位置情報更新部２０４は、更新データが書き込まれたデータ格納領域の優先順位が高くなるように、位置情報格納領域１５１−１および位置情報格納領域１５１−２に格納されている優先順位情報を変更する。
【００９６】
[初回の更新処理]
次に、ブートローダの更新処理について、工場出荷後初回の更新と２回目以降の更新について分けて説明する。なお、上述したように、更新データは、例えば、フラッシュメモリ１１５のダウンロードデータ格納領域に予めダウンロードされていてサイズがわかっている。なお、サイズがわからない場合には、RAM１１３に一旦格納するなどしてサイズを確定してから更新が行われるようにしてもよい。また、フラッシュメモリ１１５に対する書き込みは、ベリファイ処理を行い、確実に行われるようにする。
【００９７】
まず、ブートローダの初回の更新について説明する。初めに、図６を参照して、現在のブートローダ格納領域１５２−１のサイズより更新データのサイズが小さい、または、等しい場合のブートローダの初回の更新処理について説明する。次に、図７を参照して、現在のブートローダ格納領域１５２−１のサイズより更新データのサイズが大きい場合のブートローダの初回の更新処理について説明する。
【００９８】
なお、図６および図７の例において、図２の例と同様に、実線矢印は、指し示されているプログラム格納領域が、優先順位第１位であることを表し、点線矢印は、指し示されているプログラム格納領域が、優先順位第２位であることを表している。太線矢印は、指し示されているプログラム格納領域が優先順位第１位に更新されたことを表し、太い点線矢印は、更新後、指し示されているプログラム格納領域が優先順位第２位に更新されたことを表している。
【００９９】
また、図６および図７の例において、薄い濃度のハッチング領域は、優先順位第１位のプログラムが格納されている領域を表し、濃い濃度のハッチング領域は、プログラム（データ）が更新された領域を表している。
【０１００】
[更新データのサイズが小さいか等しい場合の更新処理]
工場出荷時は、位置情報格納領域１５１−１および１５１−２には、図６のＡに示されるような、ブートローダ格納領域１５２−１および１５２−２の優先順位情報が格納されている。すなわち、優先順位情報には、ブートローダ格納領域１５２−１の優先順位が第１位であり、ブートローダ格納領域１５２−２の優先順位が第２位であることが示されている。
【０１０１】
現在のブートローダ格納領域１５２−１のサイズより更新データのサイズが小さい、または、等しい場合、図６のＢに示されるように、プログラム更新部２０３は、更新データを、ブートローダ格納領域１５２−１の後ろに続けて書き込む。このとき、更新データが書き込まれた領域が、新たにブートローダ格納領域１５２−２とされる。すなわち、この処理は、ブートローダ格納領域１５２−１の後ろに新たなブートローダ格納領域１５２−２を作成し、その領域に更新データを書き込むのと同意である。
【０１０２】
そして、情報更新部２０４は、図６のＣに示されるように、位置情報格納領域１５１−２に格納されている優先順位情報を、ブートローダ格納領域１５２−２の優先順位が第１位で、ブートローダ格納領域１５２−１の優先順位が第２位になるように更新する。このとき、情報更新部２０４は、位置情報格納領域１５１−２に格納されているブートローダ格納領域１５２−２の位置情報も更新する。
【０１０３】
同様に、情報更新部２０４は、図６のＤに示されるように、位置情報格納領域１５１−１に格納されている優先順位情報を、ブートローダ格納領域１５２−２の優先順位が第１位で、ブートローダ格納領域１５２−１の優先順位が第２位になるように更新する。このとき、情報更新部２０４は、位置情報格納領域１５１−１に格納されているブートローダ格納領域１５２−２の位置情報も更新する。
【０１０４】
以上により、ブートローダ格納領域１５２−２において、ブートローダのプログラムが更新され、位置情報格納領域１５１−１および１５１−２に格納されている優先順位情報が、ブートローダ格納領域１５２−２の優先順位が第１位になるように更新される。
【０１０５】
[更新データのサイズが大きい場合の更新処理]
工場出荷時は、位置情報格納領域１５１−１および１５１−２には、図７のＡに示されるような、ブートローダ格納領域１５２−１および１５２−２の優先順位情報が格納されている。すなわち、優先順位情報には、ブートローダ格納領域１５２−１の優先順位が第１位であり、ブートローダ格納領域１５２−２の優先順位が第２位であることが示されている。
【０１０６】
現在のブートローダ格納領域１５２−１のサイズより更新データのサイズが大きい場合、図７のＥに示されるように、プログラム更新部２０３は、ブートローダ格納領域１５２−１に更新データを書き込むが、その前に、図７のＢ乃至図７のＤの処理を行う。すなわち、プログラム更新部２０３は、優先順位第１位のブートローダ格納領域１５２−１のデータを、第２位のブートローダ格納領域１５２−２にコピーして、優先順位を変更させたのち、優先順位第２位のブートローダ格納領域１５２−１に更新データを書き込む。
【０１０７】
具体的には、プログラム更新部２０３は、図７のＢに示されるように、ブートローダ格納領域１５２−１から更新データのサイズ分空けた位置に、ブートローダ格納領域１５２−１のプログラム（データ）をコピーする。その領域は、新たにブートローダ格納領域１５２−２とされる。すなわち、この処理は、ブートローダ格納領域１５２−１から更新データのサイズ分空けた位置に新たなブートローダ格納領域１５２−２を作成し、その領域にブートローダ格納領域１５２−１のプログラムをコピーするのと同意である。
【０１０８】
そして、情報更新部２０４は、図７のＣに示されるように、位置情報格納領域１５１−２に格納されている優先順位情報を、ブートローダ格納領域１５２−２の優先順位が第１位で、ブートローダ格納領域１５２−１の優先順位が第２位になるように更新する。このとき、情報更新部２０４は、位置情報格納領域１５１−２に格納されているブートローダ格納領域１５２−２の位置情報も更新する。
【０１０９】
同様に、情報更新部２０４は、図７のＤに示されるように、位置情報格納領域１５１−１に格納されている優先順位情報を、ブートローダ格納領域１５２−２の優先順位が第１位で、ブートローダ格納領域１５２−１の優先順位が第２位になるように更新する。このとき、情報更新部２０４は、位置情報格納領域１５１−１に格納されているブートローダ格納領域１５２−２の位置情報も更新する。
【０１１０】
次に、プログラム更新部２０３は、図７のＥに示されるように、ブートローダ格納領域１５２−１の先頭から更新データを書き込み、その領域を新たにブートローダ格納領域１５２−１とする。すなわち、この処理は、ブートローダ格納領域１５２−１に更新データを書き込むのと同意である。
【０１１１】
そして、情報更新部２０４は、図７のＦに示されるように、位置情報格納領域１５１−２に格納されている優先順位情報を、ブートローダ格納領域１５２−１の優先順位が第１位で、ブートローダ格納領域１５２−２の優先順位が第２位になるように更新する。このとき、情報更新部２０４は、位置情報格納領域１５１−２に格納されているブートローダ格納領域１５２−１の位置情報も更新する。
【０１１２】
同様に、情報更新部２０４は、図７のＧに示されるように、位置情報格納領域１５１−１に格納されている優先順位情報を、ブートローダ格納領域１５２−１の優先順位が第１位で、ブートローダ格納領域１５２−２の優先順位が第２位になるように更新する。このとき、情報更新部２０４は、位置情報格納領域１５１−１に格納されているブートローダ格納領域１５２−１の位置情報も更新する。
【０１１３】
以上により、ブートローダ格納領域１５２−１において、ブートローダのプログラムが更新され、位置情報格納領域１５１−１および１５１−２に格納されている優先順位情報が、ブートローダ格納領域１５２−１の優先順位が第１位になるように更新される。
【０１１４】
以上のようにして、初回更新時のブートローダの更新処理が行われるが、次に、２回目以降の更新処理について説明する。
【０１１５】
[２回目以降の更新処理]
初回更新時にブートローダ格納領域１５２−１のサイズより更新データのサイズが大きい場合、図７のＧに示されるように、更新後の状態も、ブートローダ格納領域１５２−１の優先順位が第１位で、ブートローダ格納領域１５２−２の優先順位が第２位である。すなわち、更新後の状態は、工場出荷時の初期状態と同等の優先順位の関係になっている。したがって、２回目以降も初回更新時と同じ手順でブートローダを更新することが可能である。
【０１１６】
一方、初回更新時にブートローダ格納領域１５２−１のサイズより更新データのサイズが小さい、または等しい場合、図６のＤに示されるように、更新後の状態は、ブートローダ格納領域１５２−１および１５２−２で、その優先順位が入れ替わってしまう。すなわち、更新後、ブートローダ格納領域１５２−１の優先順位は第２位で、ブートローダ格納領域１５２−２の優先順位は第１位になってしまう。
【０１１７】
そこで、２回目以降の更新処理においては、ブートローダ格納領域１５２−２の優先順位が第１位の場合、次に説明する優先順位変更処理が行われる。
【０１１８】
[２回目以降の優先順位変更処理]
次に、図８を参照して、優先順位変更処理を説明する。
【０１１９】
図８のＡは、図６のＤと同様に、初回更新時にブートローダ格納領域１５２−１のサイズより更新データのサイズが小さい、または等しい場合の更新後の状態を示している。すなわち、更新後、図８のＡに示されるように、位置情報格納領域１５１−１および１５１−２の優先順位情報は、ブートローダ格納領域１５２−１の優先順位が第２位で、ブートローダ格納領域１５２−２の優先順位が第１位であることを示している。
【０１２０】
そこで、優先順位変更部２０２は、図８のＢに示されるように、優先順位が第１位であるブートローダ格納領域１５２−２のプログラム（データ）を、ブートローダ格納領域１５２−１の先頭からコピーする。そして、優先順位変更部２０２は、そのコピーした領域を新たにブートローダ格納領域１５２−１とする。すなわち、これは、ブートローダ格納領域１５２−１に、ブートローダ格納領域１５２−２のデータを書き込むのと同意である。
【０１２１】
そして、情報更新部２０４は、図８のＣに示されるように、位置情報格納領域１５１−２に格納されている優先順位情報を、ブートローダ格納領域１５２−１の優先順位が第１位で、ブートローダ格納領域１５２−２の優先順位が第２位になるように更新する。このとき、情報更新部２０４は、位置情報格納領域１５１−２に格納されているブートローダ格納領域１５２−１の位置情報も更新する。
【０１２２】
同様に、情報更新部２０４は、図８のＤに示されるように、位置情報格納領域１５１−１に格納されている優先順位情報を、ブートローダ格納領域１５２−１の優先順位が第１位で、ブートローダ格納領域１５２−２の優先順位が第２位になるように更新する。このとき、情報更新部２０４は、位置情報格納領域１５１−１に格納されているブートローダ格納領域１５２−１の位置情報も更新する。
【０１２３】
以上により、優先順位第１位が指し示すブートローダの内容を変えることなく、ブートローダ格納領域１５２−１および１５２−２の優先順位の関係を、工場出荷時の初期状態と同じ優先順位の関係とすることができる。これにより、初回更新時と同じ手順でブートローダを更新することが可能である。
【０１２４】
なお、３回目以降の更新処理も、上述した２回目の更新処理と同様に行われる。
【０１２５】
[ブートローダの更新処理の例]
次に、図９のフローチャートを参照して、図５の機能ブロックにより行われる、受信装置１００のブートローダの更新処理について説明する。
【０１２６】
更新データ取得部２０１は、放送波に多重化されてきた更新データを取得し、フラッシュメモリ１１５のダウンロードデータ格納領域に一旦格納する。更新データ取得部２０１は、例えば、映像信号処理部１２３を制御し、更新データ取得を通知し、ブートローダのプログラムを更新することをユーザに促す画面をディスプレイ１０２に表示させる。
【０１２７】
例えば、この画面を見たユーザにより、操作入力部１１４を介してプログラムの更新が指示される。これに対応して、優先順位変更部２０２は、位置情報格納領域１５１−１の優先順位情報を参照し、ステップＳ２０１において、ブートローダ格納領域１５２−１の優先順位が第１位であるか否かを判定する。
【０１２８】
ステップＳ２０１において、ブートローダ格納領域１５２−１の優先順位が第１位であると判定された場合、優先順位変更部２０２は、優先順位の変更完了を示す情報を、プログラム更新部２０３に供給する。すなわち、この場合、優先順位の変更処理は行われない。その後、処理は、ステップＳ２０２乃至Ｓ２０４をスキップし、ステップＳ２０５に進む。
【０１２９】
ステップＳ２０１において、ブートローダ格納領域１５２−１の優先順位が第１位ではないと判定された場合、処理は、ステップＳ２０２に進む。
【０１３０】
ステップＳ２０２において、優先順位変更部２０２は、優先順位が第１位であるブートローダ格納領域１５２−２のプログラム（データ）を、ブートローダ格納領域１５２−１の先頭からコピーする。優先順位変更部２０２は、そのコピーした領域を新たにブートローダ格納領域１５２−１とする（図８のＢ参照）。
【０１３１】
ステップＳ２０３において、情報更新部２０４は、優先順位変更部２０２からの指示に応じて、位置情報格納領域１５１−２の優先順位情報を変更し、位置情報を変更する。
【０１３２】
すなわち、情報更新部２０４は、位置情報格納領域１５１−２に格納されている優先順位情報を、ブートローダ格納領域１５２−１の優先順位が第１位で、ブートローダ格納領域１５２−２の優先順位が第２位になるように更新する（図８のＣ参照）。このとき、情報更新部２０４は、位置情報格納領域１５１−２に格納されているブートローダ格納領域１５２−１の位置情報も更新する。
【０１３３】
ステップＳ２０４において、情報更新部２０４は、優先順位変更部２０２からの指示に応じて、位置情報格納領域１５１−１の優先順位情報を変更し、位置情報を変更する。
【０１３４】
すなわち、情報更新部２０４は、位置情報格納領域１５１−１に格納されている優先順位情報を、ブートローダ格納領域１５２−１の優先順位が第１位で、ブートローダ格納領域１５２−２の優先順位が第２位になるように更新する（図８のＤ参照）。このとき、情報更新部２０４は、位置情報格納領域１５１−１に格納されているブートローダ格納領域１５２−１の位置情報も更新する。
【０１３５】
その後、優先順位変更部２０２は、優先順位の変更完了を示す情報を、プログラム更新部２０３に供給し、ステップＳ２０５に進む。
【０１３６】
プログラム更新部２０３は、優先順位変更部２０２からの優先順位の変更完了を示す情報に対応して、ステップＳ２０５において、ブートローダ格納領域１５２−１のサイズより更新データのサイズが大きいか否かを判定する。なお、このとき、必ずブートローダ格納領域１５２−１の優先順位は第１位となっている。
【０１３７】
ステップＳ２０５において、ブートローダ格納領域１５２−１のサイズより更新データのサイズが小さい、または、同じであると判定された場合、処理は、ステップＳ２０６に進む。
【０１３８】
ステップＳ２０６において、プログラム更新部２０３は、ブートローダ格納領域１５２−１の後ろの領域を新たなブートローダ格納領域１５２−２とし、その領域に更新データを書き込む（図６のＢ参照）。
【０１３９】
ステップＳ２０７において、情報更新部２０４は、プログラム更新部２０３からの指示に応じて、位置情報格納領域１５１−２の優先順位情報を変更し、位置情報を変更する。
【０１４０】
すなわち、情報更新部２０４は、位置情報格納領域１５１−２に格納されている優先順位情報を、ブートローダ格納領域１５２−２の優先順位が第１位で、ブートローダ格納領域１５２−１の優先順位が第２位になるように更新する（図６のＣ参照）。このとき、情報更新部２０４は、位置情報格納領域１５１−２に格納されているブートローダ格納領域１５２−２の位置情報も更新する。
【０１４１】
ステップＳ２０８において、情報更新部２０４は、プログラム更新部２０３からの指示に応じて、位置情報格納領域１５１−１の優先順位情報を変更し、位置情報を変更する。
【０１４２】
すなわち、情報更新部２０４は、位置情報格納領域１５１−１に格納されている優先順位情報を、ブートローダ格納領域１５２−２の優先順位が第１位で、ブートローダ格納領域１５２−１の優先順位が第２位になるように更新する（図６のＤ参照）。このとき、情報更新部２０４は、位置情報格納領域１５１−１に格納されているブートローダ格納領域１５２−２の位置情報も更新する。
【０１４３】
ステップＳ２０８の後、ブートローダ更新処理は終了する。以上により、ブートローダ格納領域１５２−２において、ブートローダのプログラムが更新され、位置情報格納領域１５１−１および１５１−２に格納されている優先順位情報が、ブートローダ格納領域１５２−２の優先順位が第１位になるように更新される。
【０１４４】
一方、ステップＳ２０５において、ブートローダ格納領域１５２−１のサイズより更新データのサイズが大きいと判定された場合、処理は、ステップＳ２０９に進む。
【０１４５】
ステップＳ２０９において、プログラム更新部２０３は、ブートローダ格納領域１５２−１から更新データのサイズ分空けた位置からの領域をブートローダ格納領域１５２−２とする。そして、プログラム更新部２０３は、その領域にブートローダ格納領域１５２−１のプログラムをコピーする（図７のＢ参照）。
【０１４６】
ステップＳ２１０において、情報更新部２０４は、プログラム更新部２０３からの指示に応じて、位置情報格納領域１５１−２の優先順位情報を変更し、位置情報を変更する。
【０１４７】
すなわち、情報更新部２０４は、位置情報格納領域１５１−２に格納されている優先順位情報を、ブートローダ格納領域１５２−２の優先順位が第１位で、ブートローダ格納領域１５２−１の優先順位が第２位になるように更新する（図７のＣ参照）。このとき、情報更新部２０４は、位置情報格納領域１５１−２に格納されているブートローダ格納領域１５２−２の位置情報も更新する。
【０１４８】
ステップＳ２１１において、情報更新部２０４は、プログラム更新部２０３からの指示に応じて、位置情報格納領域１５１−１の優先順位情報を変更し、位置情報を変更する。
【０１４９】
すなわち、情報更新部２０４は、位置情報格納領域１５１−１に格納されている優先順位情報を、ブートローダ格納領域１５２−２の優先順位が第１位で、ブートローダ格納領域１５２−１の優先順位が第２位になるように更新する（図７のＤ参照）。このとき、情報更新部２０４は、位置情報格納領域１５１−１に格納されているブートローダ格納領域１５２−２の位置情報も更新する。
【０１５０】
ステップＳ２１２において、プログラム更新部２０３は、ブートローダ格納領域１５２−１の先頭から更新データを書き込む（図７のＥ参照）。このとき、ブートローダ格納領域１５２−１の優先順位は、第２位となっている。
【０１５１】
ステップＳ２１３において、情報更新部２０４は、プログラム更新部２０３からの指示に応じて、位置情報格納領域１５１−２の優先順位情報を変更し、位置情報を変更する。
【０１５２】
すなわち、情報更新部２０４は、位置情報格納領域１５１−２に格納されている優先順位情報を、ブートローダ格納領域１５２−１の優先順位が第１位で、ブートローダ格納領域１５２−２の優先順位が第２位になるように更新する（図７のＦ参照）。このとき、情報更新部２０４は、位置情報格納領域１５１−２に格納されているブートローダ格納領域１５２−１の位置情報も更新する。
【０１５３】
ステップＳ２１４において、情報更新部２０４は、プログラム更新部２０３からの指示に応じて、位置情報格納領域１５１−１の優先順位情報を変更し、位置情報を変更する。
【０１５４】
すなわち、情報更新部２０４は、位置情報格納領域１５１−１に格納されている優先順位情報を、ブートローダ格納領域１５２−１の優先順位が第１位で、ブートローダ格納領域１５２−２の優先順位が第２位になるように更新する（図７のＧ参照）。このとき、情報更新部２０４は、位置情報格納領域１５１−１に格納されているブートローダ格納領域１５２−１の位置情報も更新する。
【０１５５】
ステップＳ２１４の後、ブートローダ更新処理は終了する。以上により、ブートローダ格納領域１５２−１において、ブートローダのプログラムが更新され、位置情報格納領域１５１−１および１５１−２に格納されている優先順位情報が、ブートローダ格納領域１５２−１の優先順位が第１位になるように更新される。
【０１５６】
以上、説明してきた更新処理の特徴として、まず、更新中のどのタイミングで異常終了したとしても安全である、すなわち、次回、ブートローダを起動できなくなるというようなことが起こらないと言える。
【０１５７】
これは、更新前に優先順位が第１位であったブートローダ格納領域のプログラムを更新データで上書きしてしまうことがないように配慮しているからである。更新データの書き込み中は、優先順位第１位として、更新前にも優先順位第１位であったブートローダ格納領域のプログラムを指すようにしている。したがって、万が一、更新データの書き込み中に異常終了したとしても、その優先順位第１位のブートローダ格納領域のプログラムで起動することが可能である。
【０１５８】
また、更新データ書き込み後に、ブートローダ格納領域の優先順位を入れ替えるように、位置情報格納領域の優先順位情報を更新するが、位置情報格納領域を２面設けている。したがって、万が一、一方の更新中に異常終了が発生してそのデータが壊れたとしても、他方の位置情報格納領域は健全であるので、ブートローダ起動時には、他方の位置情報格納領域の情報でブートローダ格納領域を参照することが可能である。
【０１５９】
なお、実際、更新中に異常終了した場合には、異常終了が発生したときに行っていた処理から再開することで、更新処理を継続することができる。
【０１６０】
また、上記説明においては、ブートローダ格納領域が優先順位第２位の領域から更新を行うのに対して、位置情報格納領域についても優先順位の低いものから更新した例を説明してきたが、位置情報格納領域については、更新の順番は問わない。したがって、位置情報格納領域１５１−１から先に優先順位情報と位置情報の更新を行ってもよい。
【０１６１】
以上のように、更新データのサイズと現在のブートローダ格納領域のサイズとの比較結果に応じて更新処理が行われる。これにより、固定領域や所定の領域に配置される場合と異なって、例えば、更新データのサイズ変更などで更新データのサイズが大きくなった場合にも、より安全にプログラムを更新することができる。
【０１６２】
また、これにより、図９のブートローダ更新処理後は、図６のＤおよび図７のＧに示されたように、ブートローダ格納領域１５２−１および１５２−２が位置情報格納領域１５１から連続して配置される。このことは、サイズの異なるデータで複数回更新を重ねたとしてもフラグメンテーションが発生しないということを意味する。
【０１６３】
フラグメンテーションが発生すると、フラッシュメモリ１１５上に未使用領域が断片的に発生するため、結果として無駄な領域ができてしまう。これは、容量が限られているフラッシュメモリにとってよい状況ではない。一般的に、フラグメンテーションは、書き込みを繰り返すとひどくなる傾向があるが、本技術によれば、フラグメンテーションが一切発生しないので、複数回更新を重ねることができる。
【０１６４】
また、上述したブートローダの更新処理においては、フラッシュメモリ内などにワーク領域を必要としていない。一般的に、現在使用しているデータをつぶさないように更新データを書き込む場合、現在使用しているデータを一旦テンポラリ領域などに待避させておくことが必要となり、そのような領域が必要となる。これに対して、本技術の場合、サイズの大きなデータで更新する場合であっても、更新データ書き込み用スペースのみフラッシュメモリ上に確保されていればよい。
【０１６５】
以上より、本技術によれば、フラッシュメモリを効率的に使用することができる。
【０１６６】
さらに、上述したブートローダの更新処理においては、優先順位第２位のブートローダ格納領域にひとつ前のプログラムが残っている。したがって、万が一、更新データに不具合があった場合、位置情報格納領域の優先順位情報の優先順位を入れ替えるという簡単な操作だけで、ブートローダのダウングレードが可能になる。
【０１６７】
また、２面あるブートローダ格納領域に優先順位を付することで、優先順位第１位のブートローダ格納領域のプログラムが万が一長時間の使用で揮発してしまったとしても、優先順位第２位のブートローダで起動することも可能である。
【０１６８】
なお、上記説明においては、ブートローダ格納領域を２面設ける例を説明してきたが、ブートローダ格納領域は２面に限定されない。例えば、ブートローダ格納領域を２面よりも多くの複数面設けることにより、さらに安全なシステムを構築することが可能である。
【０１６９】
[フラッシュメモリのメモリマップ例]
図１０は、フラッシュメモリの一部のメモリマップを示す概要図である。
【０１７０】
図１０のＡに示されるフラッシュメモリ１１５は、図２の例と同様に、位置情報格納領域１５１−１、位置情報格納領域１５１−２、ブートローダ格納領域１５２−１、およびブートローダ格納領域１５２−２を含むように構成される。すなわち、図１０のＡに示されるフラッシュメモリ１１５は、位置情報格納領域を２面、およびブートローダ格納領域を２面有している。
【０１７１】
これに対して、図１０のＢに示されるフラッシュメモリ１１５は、位置情報格納領域１５１−１および１５１−２、並びにブートローダ格納領域１５２−１Ａ、１５２−１Ｂ、１５２−２Ａ、および１５２−２Ｂを含むように構成される。すなわち、図１０のＢに示されるフラッシュメモリ１１５は、位置情報格納領域を２面、およびブートローダ格納領域を４面有している。
【０１７２】
図１０のＢに示されるフラッシュメモリ１１５において、位置情報格納領域１５１−１および１５１−２、並びにブートローダ格納領域１５２−１Ａ、１５２−１Ｂ、１５２−２Ａ、および１５２−２Ｂは、この順に連続して配置される。すなわち、図１０Ｂの場合も、各領域は、隙間（空き領域）なく配置されている。
【０１７３】
位置情報格納領域１５１−１および１５１−２は、ブートローダ格納領域１５２−１Ａ、１５２−１Ｂ、１５２−２Ａ、および１５２−２Ｂの各位置情報（アドレスおよびサイズ）を格納する。また、位置情報格納領域１５１−１および１５１−２は、ブートローダを起動するプログラムを読み出す際の優先順位を示す優先順位情報を格納する。位置情報格納領域１５１−１および１５１−２には、ミラーリングにより同じ情報が格納されている。
【０１７４】
ここで、図１０のＡにおいて、実線矢印は、指し示されているプログラム格納領域が、優先順位第１位であることを表し、点線矢印は、指し示されているプログラム格納領域が、優先順位第２位であることを表している。
【０１７５】
一方、図１０のＢにおいて、実線矢印は、指し示されているプログラム格納領域が、優先順位第１位または第２位であることを表し、点線矢印は、指し示されているプログラム格納領域が、優先順位第３位または第４位であることを表している。
【０１７６】
すなわち、図１０のＢの場合、位置情報格納領域１５１−１および１５１−２に格納されている優先順位情報は、ブートローダ格納領域１５２−１Ａまたは１５２−１Ｂが優先順位第１位または第２位であることを示している。また、位置情報格納領域１５１−１および１５１−２に格納されている優先順位情報は、ブートローダ格納領域１５２−２Ａまたは１５２−２Ｂが優先順位第３位または第４位であることを示している。
【０１７７】
ブートローダ格納領域１５２−１Ａ、１５２−１Ｂ、１５２−２Ａ、および１５２−２Ｂは、それぞれ、ブートローダのプログラムが格納されている領域である。
【０１７８】
なお、図１０の例の場合も、上述した各領域には、チェックサムやハッシュなどが付加されており、各領域は、それぞれのデータが正常なものであるかがチェックされるように構成されている。
【０１７９】
ブートローダ格納領域を２面有している図１０のＡの例においては、優先順位第１位のブートローダ格納領域のプログラムが揮発などで壊れた場合、優先順位第２位のブートローダ格納領域のプログラムが使用されてブートローダを起動することになる。
【０１８０】
これに対して、ブートローダ格納領域を４面有している図１０のＢの例において、優先順位第１位と第２位のブートローダ格納領域に最新のプログラムを格納し、優先順位第３位と第４位のブートローダ格納領域にひとつ前のプログラムを格納しておくことができる。これにより、優先順位第１位のブートローダ格納領域のプログラムが揮発などで壊れたとしても、同じ最新のデータが格納されている優先順位第２位のブートローダ格納領域のプログラムを使用することができる。
【０１８１】
なお、４面の場合の更新処理については、優先順位第１位と第２位、第３位と第４位をまとめてひとつのものとして扱うことにより、上述した２面の場合の更新処理を適用することが可能である。
【０１８２】
以上により、ブートローダ格納領域の数を増やせばより堅牢なシステムを構築できる。なお、この効果は、位置情報格納領域にも同様に言える。すなわち、上記説明においては、位置情報格納領域を２面設ける例を説明してきたが、位置情報格納領域も２面に限定されない。ブートローダ格納領域と同様に、位置情報格納領域も２面よりも多くの複数面設けることにより、さらに安全なシステムを構築することが可能である。
【０１８３】
以上のように、上述した本技術によれば、安全なブートローダの更新を実現することができる。また、ブートローダのプログラムのサイズ、配置変更を伴う更新を可能としながら、フラグメンテーションが発生しないので、更新データのサイズに左右されず複数回更新を繰り返すことができる。
【０１８４】
また、本技術は、更新処理においては、ワーク領域などを必要としないので、容量が限られているフラッシュメモリなどにおいて特に有効である。
【０１８５】
なお、上記説明においては、プログラムとして、ブートローダの場合を説明したが、本技術は、ブートローダに限定されず、他のプログラムや、例えば、鍵データなど更新の失敗が許されないようなデータにも適用することができる。
【０１８６】
また、上記説明においては、プログラム（データ）を格納する記憶媒体を、フラッシュメモリを用いて説明したが、データが更新可能で、リフレッシュ時に消えてしまわない記憶媒体であればよく、フラッシュメモリに限定されない。本技術は、例えば、ハードディスクなどにも適用される。
【０１８７】
さらに、上記説明においては、電子機器として、受信装置の例を説明したが、プログラムを格納する記憶媒体を書き換える手段を有するほとんどの機器において、本技術は適用可能である。
【０１８８】
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
【０１８９】
例えば、図１の受信装置１００では、CPU１１１が、例えば、ROM１１２やフラッシュメモリ１１５に記憶されているプログラムを、RAM１１３にロードして実行することにより、上述した一連の処理が行われる。
【０１９０】
CPU１１１が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア１２５に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０１９１】
上述したプログラムは、リムーバブルメディア１２５をドライブ１１８に装着することにより、バス１１６を介して、フラッシュメモリ１１５などにインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、ネットワークI/F１１７で受信し、フラッシュメモリ１１５などにインストールすることができる。その他、プログラムは、ROM１１２やフラッシュメモリ１１５などに、あらかじめインストールしておくことができる。
【０１９２】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０１９３】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１９４】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表すものである。
【０１９５】
また、以上において、１つの装置（または処理部）として説明した構成を分割し、複数の装置（または処理部）として構成するようにしてもよい。逆に、以上において複数の装置（または処理部）として説明した構成をまとめて１つの装置（または処理部）として構成されるようにしてもよい。また、各装置（または各処理部）の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置（または処理部）の構成の一部を他の装置（または他の処理部）の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０１９６】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有するであれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例また修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１９７】
なお、本技術は以下のような構成も取ることができる。
（１）  データを格納する第１および第２のデータ格納領域、並びに、前記第１および第２のデータ格納領域の位置情報と、前記データの読み出しに対する前記第１および第２のデータ格納領域の優先順位を示す優先順位情報とを格納する位置情報格納領域を含む記憶媒体と、
前記データの更新データを取得する更新データ取得部と、
前記更新データ取得部により取得された更新データのサイズと、前記第１のデータ格納領域のサイズとの比較結果に応じて、前記第１および第２のデータ格納領域のうちのどちらか一方の領域に更新データを書き込むデータ更新部と、
前記更新データ書き込み部により更新データが書き込まれたデータ格納領域の位置情報と、前記データ格納領域の優先順位が高くなるように優先順位情報とを更新する情報更新部と
を備える電子機器。
（２）  前記第２のデータ格納領域は、前記第１のデータ格納領域から連続して配置される
前記（１）に記載の電子機器。
（３）  前記第１のデータ格納領域は、前記位置情報格納領域から連続して配置される
前記（１）または（２）に記載の電子機器。
（４）  前記データ更新部は、前記更新データ取得部により取得された更新データのサイズが、前記第１のデータ格納領域のサイズよりも大きい場合、前記第１のデータ格納領域の先頭から更新データを書き込み、前記更新データ取得部により取得された更新データのサイズが、前記第１および第２のデータ格納領域のサイズ以下である場合、前記第１のデータ格納領域の後ろを第２のデータ格納領域として前記更新データを書き込む
前記（１）乃至（３）のいずれかに記載の電子機器。
（５）  前記データ更新部は、前記更新データ取得部により取得された更新データのサイズが、前記第１のデータ格納領域のサイズよりも大きい場合、前記第１のデータ格納領域のデータを、前記更新データ分あけてコピーして新たな第２のデータ格納領域とした後、前記第１のデータ格納領域の先頭から更新データを書き込み、
前記情報更新部は、前記データ更新部により前記第１のデータ格納領域のデータがコピーされた場合、前記第２のデータ格納領域の優先順位が高くなるように前記優先順位情報を更新し、前記データ更新部により前記第１のデータ格納領域に前記更新データが書き込まれた場合、前記第１のデータ格納領域の優先順位が高くなるように前記優先順位情報を更新する
前記（１）乃至（４）のいずれかに記載の電子機器。
（６）  前記データ更新部は、前記更新データ取得部により取得された更新データのサイズが、前記第１のデータ格納領域のサイズ以下である場合、前記第１のデータ格納領域の後ろを第２のデータ格納領域として前記更新データを書き込み、
前記情報更新部は、前記データ更新部により前記第２のデータ格納領域に前記更新データが書き込まれた場合、前記第２のデータ格納領域の優先順位が高くなるように前記優先順位情報を更新する
前記（１）乃至（４）のいずれかに記載の電子機器。
（７）  前記更新データ取得部により更新データが取得された場合、前記第１のデータ格納領域の優先順位が前記第２のデータ格納領域の優先順位よりも低いとき、前記第２のデータ格納領域のデータを、前記第１のデータ格納領域の先頭から書き込む優先順変更部をさらに備え、
前記情報更新部は、前記優先順位変更部により前記第１のデータ格納領域に、前記第２のデータ格納領域のデータが書き込まれた場合、前記第１のデータ格納領域の優先順位が高くなるように前記優先順位情報を変更する
前記（１）乃至（６）のいずれかに記載の電子機器。
（８）  前記位置情報格納領域に格納されている情報を参照して、優先順位の高い方のデータ格納領域に格納されているデータを読み出すデータ読み出し部を
さらに備える
前記（１）乃至（７）のいずれかに記載の電子機器。
（９）  前記記憶媒体は、複数の前記位置情報格納領域を有し、
前記データ読み出し部は、前記複数の位置情報格納領域のうち、先に位置する位置情報格納領域から参照する
前記（８）に記載の電子機器。
（１０）  前記情報更新部は、前記複数の位置情報格納領域のうち、１の位置情報格納領域の位置情報と優先順位情報とを更新し、前記１の位置情報格納領域に更新された情報をミラーリングすることで、他の位置情報格納領域の位置情報と優先順位情報とを更新する
前記（９）に記載の電子機器。
（１１）  前記記憶媒体は、フラッシュメモリである
前記（１）乃至（１０）のいずれかに記載の電子機器。
（１２）  前記データは、プログラムのデータである
前記（１）乃至（１１）のいずれかに記載の電子機器。
（１３）  前記プログラムは、ブートローダのプログラムである
前記（１２）に記載の電子機器。
（１４）  データを格納する第１および第２のデータ格納領域、並びに、前記第１および第２のデータ格納領域の位置情報と、前記データの読み出しに対する前記第１および第２のデータ格納領域の優先順位を示す優先順位情報とを格納する位置情報格納領域を含む記憶媒体を有する電子機器が、
前記データの更新データを取得し、
取得された更新データのサイズと、前記第１のデータ格納領域のサイズとの比較結果に応じて、前記第１および第２のデータ格納領域のうちのどちらか一方の領域に更新データを書き込み、
更新データが書き込まれたデータ格納領域の位置情報と、前記データ格納領域の優先順位が高くなるように優先順位情報とを更新する
データの更新方法。
（１５）  データを格納する第１および第２のデータ格納領域、並びに、前記第１および第２のデータ格納領域の位置情報と、前記データの読み出しに対する前記第１および第２のデータ格納領域の優先順位を示す優先順位情報とを格納する位置情報格納領域を含む記憶媒体を有するコンピュータに、
前記データの更新データを取得し、
取得された更新データのサイズと、前記第１のデータ格納領域のサイズとの比較結果に応じて、前記第１および第２のデータ格納領域のうちのどちらか一方の領域に更新データを書き込み、
更新データが書き込まれたデータ格納領域の位置情報と、前記データ格納領域の優先順位が高くなるように優先順位情報とを更新する
処理を行わせるプログラム。
【符号の説明】
【０１９８】
１００  受信装置，  １１１  CPU，  １１２  ROM，  １１３  RAM，  １１４  操作入力部，  １１５  フラッシュメモリ，  １５１，１５１−１，１５１−２  位置情報格納領域，  １５２，１５２−１，１５２−２  ブートローダ格納領域，  １８１  位置情報読み出し部，  １８２  プログラム読み出し部，  １８３  プログラム実行部，  １８４  異常通知部，  ２０１  更新データ取得部，  ２０２  優先順位変更部，  ２０３  プログラム更新部，  ２０４  情報更新部
【図１】
2013156823.tif 000003
【図２】
2013156823.tif 000004
【図３】
2013156823.tif 000005
【図４】
2013156823.tif 000006
【図５】
2013156823.tif 000007
【図６】
2013156823.tif 000008
【図７】
2013156823.tif 000009
【図８】
2013156823.tif 000010
【図９】
2013156823.tif 000011
【図１０】
2013156823.tif 000012