(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、背景技術では、フラッシュROMに記憶されたプログラムを更新するための処理が他の処理において利用されることはなく、処理性能に限界がある。
【0005】
それゆえに、この発明の主たる目的は、処理性能を高めることができる、プログラム処理装置を提供することである。
【課題を解決するための手段】
【0006】
この発明に従うプログラム処理装置(10:実施例で相当する参照符号。以下同じ)は、対象プログラムを起動するための第1プログラムを保存する内部メモリ(28)、内部メモリを更新するための第2プログラムを保存する外部メモリ(42)が装着されたか否かを判別する判別手段(S5)、判別手段の否定的な判別結果に基づいて第1プログラムを指定する第1指定手段(S9)、判別手段の肯定的な判別結果に基づいて第2プログラムを指定する第2指定手段(S7)、および第1指定手段および第2指定手段のいずれか一方によって指定されたプログラムを実行する実行手段(S21~S23)を備える。
【0007】
好ましくは、対象ブログラムはファームウェアに相当し、第1プログラムおよび第2プログラムの各々はブートプログラムに相当する。
【0008】
さらに好ましくは、内部メモリは第1プログラムをロードするための第1ロード情報をさらに保存し、外部メモリは第2プログラムをロードするための第2ロード情報をさらに保存し、第1指定手段の処理は第1ロード情報の読み出しを要求する処理を含み、第2指定手段の処理は第2ロード情報の読み出しを要求する処理を含む。
【0009】
より好ましくは、実行手段は、第1指定手段および第2指定手段のいずれか一方によって読み出されたロード情報に対応するプログラムをロードするロード手段(S21)、およびロード手段によってロードされたプログラムに従う処理を実行する処理手段(S23)を含む。
【0010】
好ましくは、外部メモリは第1プログラムをさらに保存し、第2プログラムは第1プログラムを外部メモリから内部メモリに転送するためのプログラムに相当する。
【0011】
好ましくは、判別手段,第1指定手段および第2指定手段は第1CPU(32)の下で処理を実行し、実行手段は第2CPU(24)の下で処理を実行する。
【0012】
この発明に従うプログラム処理プログラムは、対象プログラムを起動するための第1プログラムを保存する内部メモリ(28)を備えるプログラム処理装置(10)のプロセッサ(24, 32)に、内部メモリを更新するための第2プログラムを保存する外部メモリ(42)が装着されたか否かを判別する判別ステップ(S5)、判別ステップの否定的な判別結果に基づいて第1プログラムを指定する第1指定ステップ(S9)、判別ステップの肯定的な判別結果に基づいて第2プログラムを指定する第2指定ステップ(S7)、および第1指定ステップおよび第2指定ステップのいずれか一方によって指定されたプログラムを実行する実行ステップ(S21~S23)を実行させるための、プログラム処理プログラムである。
【0013】
この発明に従うプログラム処理方法は、対象プログラムを起動するための第1プログラムを保存する内部メモリ(28)を備えるプログラム処理装置(10)によって実行されるプログラム処理方法であって、内部メモリを更新するための第2プログラムを保存する外部メモリ(42)が装着されたか否かを判別する判別ステップ(S5)、判別ステップの否定的な判別結果に基づいて第1プログラムを指定する第1指定ステップ(S9)、判別ステップの肯定的な判別結果に基づいて第2プログラムを指定する第2指定ステップ(S7)、および第1指定ステップおよび第2指定ステップのいずれか一方によって指定されたプログラムを実行する実行ステップ(S21~S23)を備える。
【発明の効果】
【0014】
この発明によれば、外部メモリが非装着状態であれば、内部メモリに保存された第1プログラムが指定される。これに対して、外部メモリが装着状態であれば、外部メモリに保存された第2プログラムが指定される。指定されたプログラムが第1プログラムであれば対象プログラムが起動され、指定されたプログラムが第2プログラムであれば内部メモリが更新される。つまり、外部メモリの装着/非装着に応じて指定プログラムを変更することで、実行手段の実行態様に相違が現れる。これによって、内部メモリを更新するための処理と対象プログラムの起動のための処理とを部分的に共通化でき、処理性能の向上が図られる。
【0015】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための形態】
【0017】
以下、この発明の実施の形態を図面を参照しながら説明する。
[基本的構成]
【0018】
図1を参照して、この発明の実施例のプログラム処理装置は、基本的に次のように構成される。内部メモリ1は、対象プログラムを起動するための第1プログラムを保存する。判別手段2は、内部メモリ1を更新するための第2プログラムを保存する外部メモリ6が装着されたか否かを判別する。第1指定手段3は、判別手段の否定的な判別結果に基づいて第1プログラムを指定する。第2指定手段4は、判別手段の肯定的な判別結果に基づいて第2プログラムを指定する。実行手段5は、第1指定手段および第2指定手段のいずれか一方によって指定されたプログラムを実行する。
【0019】
外部メモリ6が非装着状態であれば、内部メモリ1に保存された第1プログラムが指定される。これに対して、外部メモリ6が装着状態であれば、外部メモリ6に保存された第2プログラムが指定される。指定されたプログラムが第1プログラムであれば対象プログラムが起動され、指定されたプログラムが第2プログラムであれば内部メモリ1が更新される。つまり、外部メモリ6の装着/非装着に応じて指定プログラムを変更することで、実行手段の実行態様に相違が現れる。これによって、内部メモリ1を更新するための処理と対象プログラムの起動のための処理とを部分的に共通化でき、処理性能の向上が図られる。
[実施例]
【0020】
図2を参照して、この実施例のデータ処理装置10は、電源回路38を含む。電源回路38は、互いに異なる電圧値を各々が示す複数の直流電源をバッテリ40に基づいて生成する。生成された複数の直流電源の一部はサブCPU32に直接的に与えられ、生成された複数の直流電源の他の一部は主電源スイッチ36を介してシステム全体に与えられる。したがって、サブCPU32は常時起動されるのに対して、システム全体を構成する要素は主電源スイッチ36のオン/オフに従って起動/停止される。
【0021】
なお、この実施例において“システム全体”とは、前処理回路12,メモリ制御回路14,SDRAM16,後処理回路18,メモリI/F20,ブートRAM22,メインCPU24,メモリI/F26およびスロット30を指す。
【0022】
キー入力装置34によって電源オン操作が行われると、サブCPU32は、キー入力装置34に設けられたキーの操作状態が特定状態にあるか否か、ならびにeMMC(embedded MultiMedia Card)デバイス42がスロット30に装着されているか否かを判別する。
【0023】
キー操作状態が特定状態にあり、かつeMMCデバイス42がスロット30に装着されていれば、サブCPU32は、eMMCブートトリガをHレベルに設定する。これに対して、キー操作状態が特定状態と異なる状態にあるか、或いはeMMCデバイス42がスロット30から抜去されていれば、サブCPU32は、eMMCブートトリガをLレベルに設定する。ここで、Hレベルを示すeMMCブートトリガはNAND型フラッシュメモリ28に保存されたIPL_nand(IPL:Initial Program Loader)の読み出しの要求に相当し、Lレベルを示すeMMCブートトリガはeMMCデバイス42に保存されたIPL_emmcの読み出しの要求に相当する。
【0024】
eMMCブートトリガのレベル設定が完了すると、サブCPU32は、主電源スイッチ36をオン状態に設定する。これによって、システム全体が起動される。その後にキー入力装置32によって電源オフ操作が行われると、サブCPU32は、主電源スイッチ36をオフ状態に設定する。これによって、システム全体が停止される。
【0025】
図3を参照して、フラッシュメモリ28は、IPL_nand,ファームウェア用ブートプログラム,調整値,ファームウェアおよびコンテンツデータを記憶する。IPL_nandは、ファームウェア用ブートプログラムをロードするための情報に相当する。ファームウェア用ブートプログラムは、ファームウェアを起動するためのプログラムに相当する。調整値は、ファームウェアによって参照されるパラメータ値に相当する。コンテンツデータは、ファームウェアの実行によって作成されたデータに相当する。
【0026】
図4を参照して、eMMCデバイス42は、FATファイルシステムを採用し、IPL_emmc,メモリ更新用ブートプログラム,MBR(Master Boot Record),FAT(FAT:File Allocation Table)およびディレクトリエントリを管理データとして記憶するとともに、IPL_nand,ファームウェア用ブートプログラムおよびファームウェアを実データとして記憶する。
【0027】
IPL_emmcは、メモリ更新用ブートプログラムをロードするための情報に相当する。メモリ更新用ブートプログラムは、IPL_nand,ファームウェア用ブートプログラムおよびファームウェアをフラッシュメモリ28に複製するためのプログラムに相当する。なお、メモリ更新用ブートプログラムは、エンハンスドユーザデータエリアに記憶される。
【0028】
図2に戻って、電源オン操作によって起動したメモリI/F20は、サブCPU32によって設定されたeMMCブートトリガのレベルを検出し、検出されたレベルに応じて異なる処理を以下の要領で実行する。
【0029】
eMMCブートトリガがLレベルであれば、メモリI/F20は、IPL_nandをメモリI/F26を通してフラッシュメモリ28から読み出し、読み出されたIPL_nandをブートRAM22に書き込む。
【0030】
これに対して、eMMCブートトリガがHレベルであれば、メモリI/F20は、IPL_emmcをメモリI/F20およびスロット30を通してeMMCデバイス42から読み出し、読み出されたIPL_emmcをブートRAM22に書き込む。
【0031】
また、電源オン操作によって起動したメインCPU24は、ブートRAM22に格納されたIPLに対応するブートプログラムをロードするべく、以下の処理を実行する。
【0032】
ブートRAM22に格納されたIPLがIPL_nandであれば、メインCPU24は、フラッシュメモリ28に保存されたファームウェア用ブートブログラムをメモリI/F26を通して読み出し、読み出されたファームウェア用ブートプログラムをメモリ制御回路14を通してSDRAM16に書き込む。
【0033】
これに対して、ブートRAM22に格納されたIPLがIPL_emmcであれば、メインCPU24は、eMMCデバイス42に保存されたメモリ更新用ブートブログラムをスロット30を通して読み出し、読み出されたメモリ更新用ブートプログラムをメモリ制御回路14を通してSDRAM16に書き込む。
【0034】
メインCPU24はその後、SDRAM16にロードされたブートプログラムを実行する。
【0035】
ロードされたブートプログラムがファームウェア用ブートプログラムであれば、フラッシュメモリ28に保存されたファームウェアが起動される。この結果、前処理回路12および後処理回路18がファームウェアの制御に従って動作し、さらにこの動作によって作成されたコンテンツデータがフラッシュメモリ28の指定パーティションに保存される。
【0036】
これに対して、ロードされたブートプログラムがメモリ更新用ブートプログラムであれば、フラッシュメモリ28が更新される。eMMCデバイス42に保存されたIPL_nand,ファームウェア用ブートプログラムおよびファームウェアは、メモリ更新用ブートプログラムによってフラッシュメモリ28の指定パーティションに複製される。
【0037】
サブCPU32は、
図5に示すフロー図に従う処理を実行する。また、メインCPU24は、
図6に示すフロー図に従う処理を実行する。
【0038】
図5を参照して、ステップS1では電源オン操作が行われたか否かを判別する。判別結果がNOからYESに更新されると、キー入力装置34のキー操作状態が特定状態であるか否かをステップS3で判別し、eMMCデバイス42がスロット30に装着されているか否かをステップS5で判別する。
【0039】
ステップS3の判別結果およびステップS5の判別結果のいずれもがYESであれば、ステップS7に進み、eMMCブートトリガをHレベルに設定する。これに対して、ステップS3の判別結果およびステップS5の判別結果の少なくとも一方がNOであれば、ステップS9に進み、eMMCブートトリガをLレベルに設定する。ステップS7の処理によってIPL_nandの読み出しが要求され、ステップS9の処理によってIPL_emmcの読み出しが要求される。
【0040】
ステップS7またはS9の処理が完了すると、ステップS11で主電源スイッチ36をオン状態に設定する。この結果、システム全体が起動する。メモリI/F20は、HレベルのeMMCブートトリガに応答してIPL_nandをフラッシュメモリ28からブートRAM22に転送し、LレベルのeMMCブートトリガに応答してIPL_emmcをeMMCデバイス42からブートRAM22に転送する。
【0041】
ステップS13では電源オフ操作が行われたか否かを判別する。判別結果がNOからYESに更新されると、ステップS15で主電源スイッチ36をオフ状態に設定する。この結果、システム全体が停止する。ステップS15の処理が完了すると、ステップS1に戻る。
【0042】
図6を参照して、ステップS21ではブートRAM22に設定されたIPLに従うブートプログラムをSDRAM16にロードする。したがって、ブートRAM22上のIPLがIPL_nandであれば、フラッシュメモリ28に保存されたファームウェア用ブートプログラムがSDRAM16にロードされる。これに対して、ブートRAM22上のIPLがIPL_emmcであれば、eMMCデバイス42に保存されたメモリ更新用ブートプログラムがSDRAM16にロードされる。
【0043】
ステップS23では、ロードされたブートプログラムを実行する。したがって、ロードされたブートプログラムがファームウェア用ブートプログラムであれば、フラッシュメモリ28に格納されたファームウェアが起動され、前処理回路12および後処理回路18がファームウェアに従って動作する。これに対して、ロードされたブートプログラムがメモリ更新用ブートプログラムであれば、フラッシュメモリ28が更新される。具体的には、eMMCデバイス42に格納されたIPL_nand,ファームウェア用ブートプログラムおよびファームウェアが、フラッシュメモリ28上の指定パーティションに複製される。
【0044】
以上の説明から分かるように、フラッシュメモリ28はファームウェア用ブートプログラムを保存し、eMMCデバイス42はメモリ更新用ブートプログラムを保存する。サブCPU32は、eMMCデバイス42がスロット30に装着されたか否かを判別し(S5)、否定的な判別結果に基づいてファームウェア用ブートプログラムを指定する一方(S9)、肯定的な判別結果に基づいてメモリ更新用ブートプログラムを指定する(S7)。メインCPU24は、こうして指定されたブートプログラムを実行する(S21~S23)。この結果、ファームウェア用ブートプログラムの指定に対応してファームウェアが起動され、メモリ更新用ブートプログラムの指定に対応してフラッシュメモリ28が更新される。
【0045】
このように、eMMCデバイス42が非装着状態であれば、フラッシュメモリ28に保存されたファームウェア用ブートプログラムが指定される。これに対して、eMMCデバイス42が装着状態であれば、eMMCデバイス42に保存されたメモリ更新用ブートプログラムが指定される。指定されたプログラムがファームウェア用ブートプログラムであればファームウェアが起動され、指定されたプログラムがメモリ更新用ブートプログラムであればフラッシュメモリ28が更新される。つまり、eMMCデバイス42の装着/非装着に応じて指定ブートプログラムを変更することで、その後の処理態様に相違が現れる。これによって、フラッシュメモリ28の更新処理とファームウェアの起動処理とを部分的に共通化でき、処理性能の向上が図られる。
【0046】
なお、この実施例では、ブートトリガのレベルに応じて異なるブートプログラムをロードするようにしている。しかし、注目するトリガはブートトリガに限られるものではなく、ロードすべきプログラムもまたブートプログラムに限られるものではない。