(57)【要約】【課題】ＲＡＭへの転送が完了してからプログラムを実行していたため、プログラム起動までの時間がかかっていた。【解決手段】演算処理部（ＣＰＵ）１は起動によってブートローダＢを起動し、ブートローダＢは転送処理部（ＤＭＡ）３を起動するとともに、不揮発性記憶部（ＲＯＭ）２におけるプログラムＰをブロック単位に分割し、転送処理部は不揮発性記憶部におけるプログラムをブロック単位で一時記憶部に転送し、さらに演算処理部の制御を一時記憶部への転送後プログラムＰ′に分岐させ、演算処理部は、プログラムのブロック単位での一時記憶部への転送完了ごとにその転送後プログラムを実行し、転送処理部によるプログラムのブロック単位での不揮発性記憶部への転送と演算処理部による不揮発性記憶部におけるブロック単位での転送後プログラムの実行とが並行に処理されるように構成されている。【選択図】図１
2007206933.tif 000002
【特許請求の範囲】
【請求項１】
演算処理部と、不揮発性記憶部と、転送処理部と、一時記憶部とからなり、
前記不揮発性記憶部は、プログラムとブートローダを含み、
前記演算処理部は、起動によって前記ブートローダを起動し、
起動された前記ブートローダは、前記転送処理部を起動し、
起動された前記転送処理部は、前記不揮発性記憶部における前記プログラムを前記一時記憶部に転送し、
前記一時記憶部は、転送されてくる前記プログラムを一時記憶し、
前記ブートローダは、前記転送処理部の起動後に前記演算処理部の制御を前記一時記憶部への転送後プログラムに分岐させ、
前記演算処理部は、前記プログラムの前記一時記憶部への転送が一定ブロック完了するごとにその転送後プログラムを実行し、
前記転送処理部による前記プログラムの前記一時記憶部への転送と前記演算処理部による前記一時記憶部における前記転送後プログラムの実行とが並行に処理されるように構成されている情報処理装置。
【請求項２】
前記不揮発性記憶部における前記プログラムは、前記演算処理部の命令セットから選択した基本命令を用いて複数のブロックに分割されている請求項１に記載の情報処理装置。
【請求項３】
前記不揮発性記憶部における前記プログラムは、前記基本命令として、この基本命令の後に実行するプログラムに影響を与えない命令を用いる請求項２に記載の情報処理装置。
【請求項４】
前記プログラム中の分割された各ブロック内に存在する分岐命令の分岐先は、前記分岐命令が存在するブロックである請求項３に記載の情報処理装置。
【請求項５】
前記ブートローダは、前記プログラムが前記一時記憶部に転送される前に、前記基本命令が配置される前記一時記憶部の特定アドレス領域に、前記基本命令以外の命令を書き込む請求項４に記載の情報処理装置。
【請求項６】
前記プログラムは、前記一時記憶部の特定アドレス領域における命令が前記基本命令であるかどうかを判断する処理を含み、
前記演算処理部は、前記一時記憶部の特定アドレス領域における命令が前記基本命令である場合には、プログラムの転送が完了していると判断してプログラムの実行を開始し、前記基本命令以外である場合には、再び前記一時記憶部の特定アドレス領域における命令をチェックする請求項５に記載の情報処理装置。
【請求項７】
前記プログラムは、割込みハンドラを１つのブロックとし、前記割込みハンドラのブロックを前記一時記憶部に転送した後、前記演算処理部の割込み発生時に分岐するベースアドレスを前記一時記憶部に転送した前記割込みハンドラのブロックに変更する請求項６に記載の情報処理装置。
【請求項８】
前記基本命令は、ＮＯＰ命令である請求項２から請求項７までのいずれかに記載の情報処理装置。
【請求項９】
プログラムのデバッグ情報ファイルをオープンするステップと、
次いでブートローダをオープンするステップと、
次いで前記デバッグ情報ファイルから前記プログラムをブロック分割するための基本命令を検出するステップと、
前記基本命令があれば、検出した前記基本命令が一時記憶部に配置されるアドレスを前記デバッグ情報ファイルから抽出するステップと、
次いで抽出した前記アドレスに前記基本命令以外の命令を書き込む命令を前記ブートローダに追加するステップと、
次いで前記基本命令がなくなるまで次の基本命令を検出するステップに戻るステップと、
検出すべき基本命令がなくなったときに処理を終了するステップとを含む情報処理装置におけるブートローダ生成方法。
【請求項１０】
電源投入により演算処理部が起動されるのに伴って、不揮発性記憶部におけるブートローダを起動するステップと、
次いで転送処理部を起動するステップと、
次いで転送処理部が前記不揮発性記憶部におけるプログラムを読み出し、一時記憶部に転送するステップと、
次いで前記プログラムの前記一時記憶部への転送が一定ブロック完了するごとに、前記演算処理部が前記一時記憶部における前記一定ブロック単位での転送後プログラムを実行するステップと、
前記転送処理部による前記不揮発性記憶部からの前記プログラムの前記一時記憶部への転送の処理と、前記演算処理部による前記一時記憶部における前記一定ブロック単位での転送後プログラムの実行とを並行的に行うステップとを含む情報処理装置におけるプログラム転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主として、デジタルテレビや携帯電話等のデジタル家電機器に搭載されるもので、ブートローダを備える情報処理装置に関するものであり、特に、演算処理部、不揮発性記憶部、転送処理部および一時記憶部を備え、不揮発性記憶部におけるプログラムの一時記憶部に対する高速ブートを実現するブートローダを含む情報処理装置に関する。
【０００２】
演算処理部は例えばＣＰＵ（Central Processing Unit）であり、不揮発性記憶部は例えばＲＯＭ（ReadOnly Memory）であり、転送処理部はＤＭＡ（Direct Memory Access）であり、一時記憶部は例えばＲＡＭ（Random AccessMemory）である。
【背景技術】
【０００３】
図７は従来の情報処理装置の構成を示すブロック図である。この情報処理装置Ａ２は、ＣＰＵ１、ＲＯＭ２、ＤＭＡ３およびＲＡＭ４から構成されている。ＲＯＭ２には、ブートローダＢおよびプログラムＰが記録されている。
【０００４】
ＣＰＵ１は、起動する際に、ＲＯＭ２に記録されているブートローダＢの実行を開始する。ブートローダＢは、ＲＯＭ２に記録されているプログラムＰをＲＡＭ４へ転送し、転送完了後にＣＰＵ１の制御をＲＡＭ４における転送後プログラムＰ′に分岐させる。
【０００５】
以上のように、プログラムＰをＲＯＭ２から高速動作可能なＲＡＭ４へ一旦転送した後、ＣＰＵ１がＲＡＭ４に記録されている転送後プログラムＰ′を実行することで、情報処理装置Ａ２の実行速度を速めている（特許文献１参照）。
【特許文献１】特開平１−２６１７４３号公報（第２−３頁、第１−２図）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記従来の技術では、ブートローダがＲＯＭにあるプログラムをＲＡＭに転送するためにある程度の時間が必要であり、プログラム実行開始までに発生する遅延の大きさが処理の高速化に対する１つのネックとなっていた。
【０００７】
本発明は、このような事情に鑑みて創作したものであり、プログラム実行開始までの時間を短縮することができる情報処理装置を提供することを目的としている。
【課題を解決するための手段】
【０００８】
本発明による情報処理装置は、
演算処理部と、不揮発性記憶部と、転送処理部と、一時記憶部とからなり、
前記不揮発性記憶部は、プログラムとブートローダを含み、
前記演算処理部は、起動によって前記ブートローダを起動し、
起動された前記ブートローダは、前記転送処理部を起動し、
起動された前記転送処理部は、前記不揮発性記憶部における前記プログラムを前記一時記憶部に転送し、
前記一時記憶部は、転送されてくる前記プログラムを一時記憶し、
前記ブートローダは、前記転送処理部の起動後に前記演算処理部の制御を前記一時記憶部への転送後プログラムに分岐させ、
前記演算処理部は、前記プログラムの前記一時記憶部への転送が一定ブロック完了するごとにその転送後プログラムを実行し、
前記転送処理部による前記プログラムの前記一時記憶部への転送と前記演算処理部による前記一時記憶部における前記転送後プログラムの実行とが並行に処理されるように構成されている。
【０００９】
この構成において、演算処理部はＣＰＵに相当し、不揮発性記憶部はＲＯＭに相当し、転送処理部はＤＭＡに相当し、一時記憶部はＲＡＭに相当する。電源投入により演算処理部（ＣＰＵ）が起動されると、演算処理部（ＣＰＵ）は不揮発性記憶部（ＲＯＭ）におけるブートローダを起動する。起動されたブートローダは、さらに転送処理部（ＤＭＡ）を起動し、さらに転送処理部（ＤＭＡ）の起動後に演算処理部（ＣＰＵ）の制御を一時記憶部（ＲＯＭ）への転送後プログラムに分岐させる。起動された転送処理部（ＤＭＡ）は、不揮発性記憶部（ＲＯＭ）におけるプログラムを読み出し、一時記憶部（ＲＡＭ）に転送する。一時記憶部（ＲＡＭ）は転送されてくるプログラムを記憶する。プログラムの転送が一定ブロック完了するごとに、演算処理部（ＣＰＵ）は、一時記憶部（ＲＡＭ）における一定ブロック単位での転送後プログラムを実行する。このとき、転送処理部（ＤＭＡ）による不揮発性記憶部（ＲＯＭ）からのプログラムの一時記憶部（ＲＡＭ）への転送の処理と、演算処理部（ＣＰＵ）による一時記憶部（ＲＡＭ）における一定ブロック単位での転送後プログラムの実行とが並行的に行われる。このような並行処理により、従来課題であったプログラム実行開始までの時間を短縮することができる。また、転送処理部（ＤＭＡ）によるプログラムの転送処理と、（ＣＰＵ）によるプログラムの実行処理の並列処理の調停をソフトウェアで行うため、特別なハードウェアの拡張は必要ない。
【００１０】
上記において、前記不揮発性記憶部における前記プログラムは、前記演算処理部の命令セットから選択した基本命令を用いて複数のブロックに分割されているという態様がある。
【００１１】
さらに、前記不揮発性記憶部における前記プログラムは、前記基本命令として、この基本命令の後に実行するプログラムに影響を与えない命令を用いるという態様がある。ここで、プログラムに影響を与えない命令については、例えば、ＮＯＰ（No Operation）命令や減算命令や比較命令などがある。
【００１２】
また、前記プログラム中の分割された各ブロック内に存在する分岐命令の分岐先は、前記分岐命令が存在するブロックであるという態様がある。
【００１３】
また、前記ブートローダは、前記プログラムが前記一時記憶部に転送される前に、前記基本命令が配置される前記一時記憶部の特定アドレス領域に、前記基本命令以外の命令を書き込むという態様がある。
【００１４】
このように構成することにより、転送処理部（ＤＭＡ）による不揮発性記憶部（ＲＯＭ）からのプログラムの一時記憶部（ＲＡＭ）への転送の処理と、演算処理部（ＣＰＵ）による一時記憶部（ＲＡＭ）における一定ブロック単位での転送後プログラムの実行との並行処理において、演算処理部（ＣＰＵ）による転送後プログラムの実行が、転送処理部（ＤＭＡ）によるプログラムの転送処理を追い越さないように制御することができる。ひいては、上記の並行処理を矛盾なく遂行することができる。
【００１５】
また上記において、前記プログラムは、前記一時記憶部の特定アドレス領域における命令が前記基本命令であるかどうかを判断する処理を含み、前記演算処理部は、前記一時記憶部の特定アドレス領域における命令が前記基本命令である場合には、プログラムの転送が完了していると判断してプログラムの実行を開始し、前記基本命令以外である場合には、再び前記一時記憶部の特定アドレス領域における命令をチェックするという態様がある。これにより、前述の並行処理において、演算処理部（ＣＰＵ）による転送後プログラムの実行が、転送処理部（ＤＭＡ）によるプログラムの転送処理を追い越さないように制御する機能を確実化することができる。
【００１６】
また上記において、前記プログラムは、割込みハンドラを１つのブロックとし、前記割込みハンドラのブロックを前記一時記憶部に転送した後、前記演算処理部の割込み発生時に分岐するベースアドレスを前記一時記憶部に転送した前記割込みハンドラのブロックに変更するという態様がある。このように割込みハンドラを１つのブロックとすることで、演算処理部（ＣＰＵ）の割込み発生時に分岐するベースアドレスを遅延なく直ちに割込みハンドラに変更することができるため、もしブート中に割り込みが発生したとしても割込み処理を高速に実行することができる。
【００１７】
また、本発明による情報処理装置におけるブートローダ生成方法は、
プログラムのデバッグ情報ファイルをオープンするステップと、
次いでブートローダをオープンするステップと、
次いで前記デバッグ情報ファイルから前記プログラムをブロック分割するための基本命令を検出するステップと、
前記基本命令があれば、検出した前記基本命令が一時記憶部に配置されるアドレスを前記デバッグ情報ファイルから抽出するステップと、
次いで抽出した前記アドレスに前記基本命令以外の命令を書き込む命令を前記ブートローダに追加するステップと、
次いで前記基本命令がなくなるまで次の基本命令を検出するステップに戻るステップと、
検出すべき基本命令がなくなったときに処理を終了するステップとを含むものである。
【００１８】
ここで、基本命令とは例えばＮＯＰ命令であり、基本命令以外の命令とは例えばＡＤＤ命令である。このブートローダ生成方法によれば、プログラムのデバッグ情報を活用することによりブートローダを自動的に生成することができるため、開発期間を短縮することができる。
【００１９】
また、本発明による情報処理装置におけるプログラム転送方法は、
電源投入により演算処理部が起動されるのに伴って、不揮発性記憶部におけるブートローダを起動するステップと、
次いで転送処理部を起動するステップと、
次いで転送処理部が前記不揮発性記憶部におけるプログラムを読み出し、一時記憶部に転送するステップと、
次いで前記プログラムの転送が一定ブロック完了するごとに、前記演算処理部が前記一時記憶部における前記一定ブロック単位での転送後プログラムを実行するステップと、
前記転送処理部による前記不揮発性記憶部からの前記プログラムの前記一時記憶部への転送の処理と、前記演算処理部による前記一時記憶部における前記一定ブロック単位での転送後プログラムの実行とを並行的に行うステップとを含むものである。
【００２０】
これによれば、上記と同様に並行処理を実現し、従来課題であったプログラム実行開始までの時間を短縮することができる。
【発明の効果】
【００２１】
本発明によれば、ブートローダが転送処理部（ＤＭＡ）を制御するようにして、転送処理部（ＤＭＡ）による不揮発性記憶部（ＲＯＭ）からのプログラムの一時記憶部（ＲＡＭ）への転送の処理と、演算処理部（ＣＰＵ）による一時記憶部（ＲＡＭ）における一定ブロック単位での転送後プログラムの実行とを並行的に行うことにより、プログラム実行開始までの遅延時間を削減し、情報処理装置の起動時間を短縮することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明にかかわる情報処理装置の実施の形態を図面に基づいて詳細に説明する。
【００２３】
図１は、本発明の実施の形態における情報処理装置の構成を示すブロック図である。この情報処理装置Ａ１は、演算処理部としてのＣＰＵ１と、不揮発性記憶部としてのＲＯＭ２と、転送処理部としてのＤＭＡ３および一時記憶部としてのＲＡＭ４から構成されている。ＲＯＭ２には、ブートローダＢおよびプログラムＰが記録されている。
【００２４】
ブートローダＢは、ＤＭＡ３を起動し、プログラムＰをＲＡＭ４に転送する処理をＤＭＡ３に行わせる機能を有している。
【００２５】
ＤＭＡ３は、プログラムＰをＲＡＭ４へ転送する。ＣＰＵ１は、ＲＡＭ４に転送された転送後プログラムＰ′を一定ブロック単位で実行する。ＤＭＡ３によるプログラムＰの転送と、ＣＰＵ１による一定ブロック単位での転送後プログラムＰ′の実行とを並行に処理する。
【００２６】
図２は、ＲＯＭ２に記録されているプログラムＰをＲＡＭ４に転送したときの図である。ブートローダＢは、初期化部１１、ＤＭＡ起動部１２、ＲＡＭ４に転送されたプログラムＰ′にＣＰＵ１の制御を分岐させるプログラム分岐部１３を備えている。ｂ１，ｂ２はプログラムＰのブロック、ｎ１，ｎ２はプログラムＰのＮＯＰ（No Operation）命令である。Ｐ′はＲＡＭ４に転送されたプログラム（転送後プログラム）、ｂ３，ｂ４は転送後プログラムＰ′のブロック、ｎ３，ｎ４は転送後プログラムＰ′のＮＯＰ命令、ａ１はＮＯＰ命令ｎ３のＲＡＭ４におけるアドレス、ａ２はＮＯＰ命令ｎ４のＲＡＭ４におけるアドレスである。
【００２７】
次に、上記のように構成された本実施の形態の情報処理装置Ａ１の動作を説明する。
【００２８】
情報処理装置Ａ１に電源が入ると、ＣＰＵ１が起動する。
【００２９】
ＣＰＵ１は、起動すると、ＲＯＭ２に格納されているブートローダＢを実行する。
【００３０】
ブートローダＢは、ＤＭＡ３を起動し、ＤＭＡ３に、ＲＯＭ２におけるプログラムＰをＲＡＭ４に転送させる処理を制御する。
【００３１】
ブートローダＢは、ＤＭＡ３の起動後、ＣＰＵ１の制御をＲＡＭ４に転送された転送後プログラムＰ′に分岐させる。
【００３２】
次に図３に示すフローチャートを参照して、ブートローダＢの動作について具体的に説明する。
【００３３】
ステップＳ１は初期化部１１が行う情報処理装置Ａ１の初期化処理、ステップＳ２はＲＡＭ４にＡＤＤ命令を書き込む処理、ステップＳ３はＤＭＡ起動部１２が行うＤＭＡ３の起動処理、ステップＳ４はプログラム分岐部１３が行うＣＰＵ１の制御を転送後プログラムＰ′に分岐させる処理である。
【００３４】
ステップＳ１において、ＣＰＵ１は、プログラムＰをＲＡＭ４に転送するために必要な情報処理装置Ａ１の機能を初期化する。
【００３５】
次いでステップＳ２において、ＣＰＵ１はＲＡＭ４において、アドレスａ１〜ａ２にＡＤＤ命令を書き込む。
【００３６】
次いでステップＳ３において、ＣＰＵ１はＤＭＡ３を起動して、プログラムＰのＲＡＭ４への転送を開始する。
【００３７】
次いでステップＳ４において、ＣＰＵ１はその制御をＲＡＭ４に転送された転送後プログラムＰ′に分岐する。ＣＰＵ１は、転送後プログラムＰ′への分岐後に転送後プログラムＰ′の処理を開始する。この時点から、ＤＭＡ３を用いた転送とＣＰＵ１の転送後プログラムＰ′の実行は並行処理となる。
【００３８】
なお、ステップＳ２において、アドレスａ１〜ａ２にＡＤＤ命令を書き込んでいるが、ＮＯＰ命令と同じサイズの命令・データであれば代替可能である。
【００３９】
次に図４に示すフローチャートを参照して、ＣＰＵ１が転送後プログラムＰ′を用いて行う動作について具体的に説明する。
【００４０】
ステップＳ１１はアドレスａ１の判定処理、ステップＳ１２はブロックｂ３の処理、ステップＳ１３はアドレスａ２の判定処理、ステップＳ１４はブロックｂ４の処理である。
【００４１】
ステップＳ１１において、ＣＰＵ１はアドレスａ１に格納されている命令を判定する。アドレスａ１に格納されている命令がＡＤＤ命令であれば、ブロックｂ３の転送が未完了であるためＮＯと判定されて、再びアドレスａ１に格納されている命令を判定する。一方、アドレスａ１に格納されている命令がＮＯＰ命令であれば、ブロックｂ３の転送が完了しているためＹＥＳと判定されて、制御はステップＳ１２に進む。
【００４２】
ステップＳ１２において、ＣＰＵ１はブロックｂ３の処理を行う。
【００４３】
次いでステップＳ１３において、ＣＰＵ１はアドレスａ２に格納されている命令を判定する。アドレスａ２に格納されている命令がＡＤＤ命令であれば、ブロックｂ４の転送が未完了であるためＮＯと判定されて、再びアドレスａ２に格納されている命令を判定する。一方、アドレスａ２に格納されている命令がＮＯＰ命令であれば、ブロックｂ４の転送が完了しているためＹＥＳと判定される。
【００４４】
このようにＮＯＰ命令を用いてプログラムＰを複数のブロックに分割し、転送することにより、転送後プログラムＰ′は、これを段階的にブートさせることができる。また、図４で示したステップを実行することで、ハードウェアを拡張することなく、ＣＰＵ１が転送未完了のブロックを処理することを防止することができる。なお、転送後プログラムＰ′を分割する基本命令はＮＯＰ命令以外でも代替可能である。例えば、分割する基本命令の後のブロックの処理に影響を与えないのであれば、減算命令や比較命令やその他の命令でも代替可能である。
【００４５】
図５はプログラムＰの構造の一例を示したものである。３１は割込みハンドラ部、３２はレジスタ初期化部、３３はＣ言語変数初期化部、３４はＯＳ初期化部、３５はプログラムメイン部、ｎ１１〜ｎ１５はＮＯＰ命令である。
【００４６】
割込みハンドラ部３１は、割込みハンドラと、ＣＰＵ１の割込み発生時に分岐するベースアドレスを初期状態から割込みハンドラ部３１に変更する処理とを含む。
【００４７】
レジスタ初期化部３２は、ＣＰＵ１のレジスタを初期化する処理を含む。
【００４８】
Ｃ言語変数初期化部３３は、ＲＡＭ４においてＣ言語変数のデータが置かれる領域を変数の初期値、あるいは０で初期化する処理を含む。
【００４９】
ＯＳ初期化部３４は、ＯＳ（Operating System）のタスクの初期化や、セマフォやファイルシステムの初期化を行う処理を含む。セマフォ（semaphore）とは、マルチタスクやマルチプロセッサのシステム（コンピュータ）上で、複数のタスクを同時に実行している際の、タスク間の動作の同期をとるためのフラグ、あるいはそれを処理するツールのことである。資源を共有して使用するタスク間での、処理のデッドロックを避けるためなどに使われる。
【００５０】
プログラムメイン部３５は情報処理装置Ａ１のブートが完了した後に実行するプログラムを含む。
【００５１】
ＮＯＰ命令ｎ１１は、割込みハンドラ部３１とレジスタ初期化部３２をブロックとして分割するためのものである。
【００５２】
ＮＯＰ命令ｎ１２は、レジスタ初期化部３２とＣ言語変数初期化部３３をブロックとして分割するためのものである。
【００５３】
ＮＯＰ命令ｎ１３は、Ｃ言語変数初期化部３３とＯＳ初期化部３４をブロックとして分割するためのものである。
【００５４】
ＮＯＰ命令ｎ１４は、ＯＳ初期化部３４とプログラムメイン部３５を分割するためのものである。
【００５５】
ＮＯＰ命令ｎ１５は、プログラムメイン部の最後を示すためのものである。
【００５６】
このように、割込みハンドラ部３１を１つのブロックとすることで、ＣＰＵ１の割込み発生時に分岐するベースアドレスを遅延なく直ちに割込みハンドラ部３１に変更することができるため、もしブート中に割り込みが発生したとしても割込み処理を高速に実行することができる。
【００５７】
次に図６を参照して、ブートローダＢに処理を追加して、ブートローダＢを生成する方法について説明する。
【００５８】
ステップＳ２１はプログラムＰのデバッグ情報ファイルをオープンする処理、ステップＳ２２はブートローダＢをオープンする処理、ステップＳ２３はＮＯＰ命令を検索する処理、ステップＳ２４はＮＯＰ命令のアドレスを抽出する処理、ステップＳ２５はブートローダＢにＡＤＤ命令を追加する処理である。
【００５９】
ステップＳ２１において、ブートローダ生成プロセスは、プログラムＰのデバッグ情報ファイルをオープンする。
【００６０】
次いでステップＳ２２において、ブートローダ生成プロセスは、ブートローダＢをオープンする。
【００６１】
次いでステップＳ２３において、ブートローダ生成プロセスは、プログラムＰのデバッグ情報ファイルからプログラムＰをブロック分割するＮＯＰ命令を検出する。未検出のＮＯＰ命令が存在すればＹＥＳと判断され、制御は次のステップＳ２４に進む。一方、ＮＯＰ命令が存在しなければＮＯと判断され、ブートローダ生成プロセスを終了する。
【００６２】
次いでステップＳ２４において、ブートローダ生成プロセスは、ステップＳ２３で検出したＮＯＰ命令が配置されるアドレスをプログラムＰのデバッグ情報ファイルから抽出する。
【００６３】
次いでステップＳ２５において、ブートローダＢにステップＳ２４で抽出したＮＯＰ命令が配置されるアドレスにＡＤＤ命令をストアする命令を追加する。そして、制御はステップＳ２３に戻る。
【００６４】
このように、プログラムＰのデバッグ情報を活用することによりブートローダＢを自動生成することができるため、開発期間を短縮することができる。
【００６５】
以上の構成により、ＣＰＵ１のプログラム処理と、ＤＭＡ３の転送処理を並行処理することができ、プログラム実行までの遅延時間を削減することができる。
【００６６】
また、ブートローダＢを自動的に生成することができるため、開発期間を短縮できるといった効果を得ることができる。
【産業上の利用可能性】
【００６７】
本発明を使用した情報処理装置は、デジタルテレビや携帯電話等のデジタル家電に有用である。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施の形態における情報処理装置の構成を示すブロック図
【図２】本発明の実施の形態において、ＲＯＭに記録されているプログラムをＲＡＭに転送したときの図
【図３】本発明の実施の形態におけるブートローダの動作を示すフローチャート
【図４】本発明の実施の形態におけるＣＰＵの動作を示すフローチャート
【図５】本発明の実施の形態におけるプログラムの構造を示す図
【図６】本発明の実施の形態におけるブートローダ生成の動作を示すフローチャート
【図７】従来の技術における情報処理装置の構成を示すブロック図
【符号の説明】
【００６９】
Ａ１  情報処理装置
ａ１，ａ２  アドレス
Ｂ  ブートローダ
ｂ１，ｂ２，ｂ３，ｂ４  ブロック
Ｐ  プログラム
Ｐ′  転送後プログラム
１  ＣＰＵ（演算処理部）
２  ＲＯＭ（記憶部）
３  ＤＭＡ（転送処理部）
４  ＲＡＭ（一時記憶部）
１１  初期化部
１２  ＤＭＡ起動部
１３  プログラム分岐部
ｎ１〜ｎ４，ｎ１１〜ｎ１５  ＮＯＰ命令（基本命令）
３１  割込みハンドラ部
３２  レジスタ初期化部
３３  Ｃ言語変数初期化部
３４  ＯＳ初期化部
３５  プログラムメイン部
【図１】
2007206933.tif 000003
【図２】
2007206933.tif 000004
【図３】
2007206933.tif 000005
【図４】
2007206933.tif 000006
【図５】
2007206933.tif 000007
【図６】
2007206933.tif 000008
【図７】
2007206933.tif 000009