(57)【要約】【課題】プログラムメモリのプログラム書き換えを効率的に行う。【解決手段】プログラムメモリ１１８は、プログラムを記憶するとともに、記憶データ消去は所定のイレーズ単位毎に行う。プログラム処理装置１は、プログラムメモリ１１８内のプログラムを実行するＣＰＵ２と、信号状態を検出するデバッグ処理回路１０を含む。デバッグコンピュータのメモリ００は、デバッグ処理回路１０にそのモニター条件のデータを供給するとともに、プログラム実行時の信号状態をモニターする。デバッグコンピュータ２００は、プログラムメモリ１１８に記憶されているプログラムをプログラムメモリ１１８のイレーズ単位でメモリ２３０に記憶し、これに所定の編集を加え、前記プログラム処理装置１に供給し、プログラム処理装置１がイレーズ単位の編集後のプログラムをプログラムメモリ１１８に書き込む。【選択図】図１
2009070195.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを記憶するとともに、記憶データ消去は所定のイレーズ単位毎に行われるプログラムメモリと、
このプログラムメモリ内のプログラムを実行して各種処理を行うＣＰＵと、プログラム実行における信号状態を検出するデバッグ処理回路を含むプログラム処理装置と、
このプログラム処理装置内のデバッグ処理回路にそのモニター条件のデータを供給するとともに、デバッグ処理回路からの検出した信号状態についてのデータを受け取り、プログラム実行時の信号状態をモニターするデバッグコンピュータと、
を含むプログラム処理システムであって、
前記デバッグコンピュータはメモリを備え、前記プログラムメモリに記憶されているプログラムを前記プログラムメモリのイレーズ単位で前記メモリに記憶し、これに所定の編集を加え、前記プログラム処理装置に供給し、前記プログラム処理装置がイレーズ単位の編集後のプログラムを前記プログラムメモリに書き込むことを特徴とするプログラム処理システム。
【請求項２】
請求項１に記載のプログラム処理システムにおいて、
前記プログラムメモリは、フラッシュメモリであることを特徴とするプログラム処理システム。
【請求項３】
請求項１または２に記載のプログラム処理システムにおいて、
前記イレーズ単位の編集後プログラムの前記プログラムメモリへの書き込みは、前記プログラムメモリ内に記憶されている、１つの書き込み命令により実行されることを特徴とするプログラム処理システム。
【請求項４】
外部に設けられたプログラムメモリ内のプログラムを実行して各種処理を行うＣＰＵと、プログラム実行の状態をモニターするデバッグ処理回路を含むプログラム処理装置であって、
前記デバッグ処理回路は、外部に設けられたデバッグコンピュータからモニター条件のデータを得て、このモニター条件に基づきモニターを行い得られたモニターデータを前記デバッグコンピュータに供給し、前記デバッグコンピュータからプログラムの書き換え命令を受け取った場合には、前記プログラムメモリのイレーズ単位でプログラムを前記デバッグコンピュータに供給し、前記デバッグコンピュータにおいて書き換えられたイレーズ単位のプログラムを前記プログラムメモリに書き込むことを特徴とするプログラム処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムメモリに記憶されているプログラムを実行するプログラム処理回路におけるデバッグ処理において、プログラムメモリ内のプログラムを書き換える処理に関する。
【背景技術】
【０００２】
近年、信号処理回路とＣＰＵとを同一チップ上に搭載したＬＳＩが用いられている。例えば、音声信号のデコード処理などの信号処理を施す信号処理回路とＣＰＵとを同一チップ上に搭載する場合、ＣＰＵが信号処理回路やその周辺回路（例えば、インタフェース回路など）の動作の制御を行うと共に、信号処理回路が行う処理以外のものについても、ＣＰＵがその処理を行う。
【０００３】
図４に、従来のプログラム処理装置１の構成例を示す。プログラム処理装置１は、プログラムに応じて所定の処理を実行するＣＰＵ２と、ＣＰＵ２がその処理おいて必要なデータを格納する内部ＲＡＭ８とを含む。プログラム処理装置１は入出力インタフェース４を介してプログラムメモリ１１８に接続され、プログラムメモリ１１８はＣＰＵ２が実行するプログラムを格納する。また、プログラム処理装置１は、プログラムに含まれる少なくとも１つの変数をモニタしその結果に応じて所定の処理を施すデバッグ処理回路１０と、デバッグ処理回路１０の処理結果をデバッグツール２１０を含んだパーソナルコンピュータ（デバッグコンピュータ）２００に送信するデバッグインタフェース１２と、を含んでいる。また、プログラム処理装置１には、ＳＤＲＡＭ４００が接続されており、ＣＰＵ２の処理において必要な大容量のデータを記憶するとともに、必要に応じてプログラムメモリ１１８に記憶されているプログラムを一時的に記憶する。
【０００４】
ここで、ＣＰＵ２が初期化されたときには、プログラムメモリ１１８に格納されたプログラムを外部バス１２０、入出力インタフェース４を介して読み出し、内部ＲＡＭ８に記憶する。そして、ＣＰＵ２が内部ＲＡＭ８に記憶されているプログラムに応じた所定の信号処理を実行する。また、内部ＲＡＭ８はプログラムの実行に応じて生成された中間データなどを格納する。プログラム処理装置１は図示しない信号処理回路を含み、ＣＰＵ２はプログラムに応じて信号処理回路の動作を制御する。
【０００５】
また、プログラムメモリ１１８内のプログラム、特にファームウェアは、このＬＳＩが採用される装置によって異なる。そこで、プログラムメモリ１１８内のプログラムは、プログラム処理装置１が搭載されるシステムの開発時に、個別のプログラム毎にデバッグする必要がある。このデバッグ処理を行う場合、デバッグツール２１０からの指示に基づいて、デバッグ処理回路１０が、プログラム処理装置１に対して初期化の処理や実行されているプログラムの停止及び再開の処理を行う。デバッグ処理回路１０は内部バス２２を監視することによってプログラムに含まれる変数をデバッグ処理回路に含まれるレジスタ（図示なし）に指定してモニタし、モニタの結果に応じて所定の処理を施す。デバッグ処理回路１０の処理の結果は、デバッグインタフェース１２、デバッグ通信ライン２２０を介して、デバッグコンピュータ２００に送信される。デバッグコンピュータ２００はデバッグツール２１０を含んでおり、プログラムの開発者はデバッグコンピュータ２００を用いて変数のモニタの結果を確認することができ、プログラムの検証を行うことができる。
【０００６】
【特許文献１】特開２００５−０７０９４９号公報
【特許文献２】特開２００５−０７０９５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ここで、デバッグの際には、ブレークポイントを挿入することが好適である。すなわち、プログラムのソースコード中の所望の場所にブレイクポイントを設定しておき、そこを通過する際にプログラムの実行を停止させることで、そのときの各種の信号のステータスなどを容易に検証できる。このブレークポイントは、デバッグのためにプログラム中に設定する必要があり、このためにはプログラムをロードしてブレークポイントを設定した後、プログラムメモリに書き込むという動作が必要になる。
【０００８】
従来のプログラム処理装置では、デバッグコンピュータ２００から、所望のポイントでプログラムの実行停止命令を発し、その時点でのプログラムを所定の範囲でＳＤＲＡＭ４００に展開し、このＳＤＲＡＭ４００に展開したプログラムについてブレークポイントを設定し、これをプログラムメモリ１１８に書き込んでいた。
【０００９】
しかし、システムによっては、ＳＤＲＡＭ４００を省略したいという要求がある。すなわち、信号処理などにおいて大容量のデータを格納しておく必要がない場合には、処理中の小容量の中間データを記憶する内部ＲＡＭ８だけで十分である。ところが、ＳＤＲＡＭがない場合には、ブレークポイントを設定する場合においても十分な容量のプログラムメモリを展開する場所がなくなり、内部ＲＡＭ８を利用した小容量ずつ書き換えることになる。
【課題を解決するための手段】
【００１０】
本発明は、プログラムを記憶するとともに、記憶データ消去は所定のイレーズ単位毎に行われるプログラムメモリと、このプログラムメモリ内のプログラムを実行して各種処理を行うＣＰＵと、プログラム実行における信号状態を検出するデバッグ処理回路を含むプログラム処理装置と、このプログラム処理装置内のデバッグ処理回路にそのモニター条件のデータを供給するとともに、デバッグ処理回路からの検出した信号状態についてのデータを受け取り、プログラム実行時の信号状態をモニターするデバッグコンピュータと、を含むプログラム処理システムであって、前記デバッグコンピュータは、プログラムメモリに記憶されているプログラムを前記プログラムメモリのイレーズ単位で内部のメモリに記憶し、これに所定の編集を加え、前記プログラム処理装置に供給し、プログラム処理装置がイレーズ単位の編集後のプログラムをプログラムメモリに書き込むことを特徴とする。
【００１１】
また、前記プログラムメモリは、フラッシュメモリであることが好適である。
【００１２】
また、前記イレーズ単位の編集後プログラムのプログラムメモリへの書き込みは、プログラムメモリ内に記憶されている、１つの書き込み命令により実行されることが好適である。
【００１３】
また、本発明は、外部に設けられたプログラムメモリ内のプログラムを実行して各種処理を行うＣＰＵと、プログラム実行の状態をモニターするデバッグ処理回路を含むプログラム処理装置であって、前記デバッグ処理回路は、外部に設けられたデバッグコンピュータからモニター条件のデータを得て、このモニター条件に基づきモニターを行い得られたモニターデータをデバッグコンピュータに供給し、デバッグコンピュータからプログラムの書き換え命令を受け取った場合には、前記プログラムメモリのイレーズ単位でプログラムをデバッグコンピュータに供給し、このデバッグコンピュータにおいて書き換えられたイレーズ単位のプログラムをプログラムメモリに書き込むことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、デバッグコンピュータのメモリに記憶されているプログラムを修正して、これをプログラムメモリにそのイレーズ単位で書き込むことができる。従って、プログラム処理装置において十分な容量のメモリを有しなくても、効率的なプログラムの書き換えを行うことができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態について、図面に基づいて説明する。図１は、本願発明の実施の形態におけるプログラム処理装置を示すものである。プログラム処理装置１は、ＣＰＵ２と、入出力インタフェース４と、内部ＲＡＭ８と、デバッグ処理回路１０と、デバッグインタフェース１２と、を有する。なお、プログラム処理装置１は図示しない信号処理回路を含んで構成され、これらは同一の半導体基板上に集積される。ＣＰＵ２は、入出力インタフェース４に接続されているプログラムメモリ１１８内のプログラムを取得して所定の信号処理を実行する。また、ＣＰＵ２はプログラムの実行に応じて同一の半導体基板上に集積される入出力インタフェース４、内部ＲＡＭ８、デバッグ処理回路１０、デバッグインタフェース１２や、図示しない信号処理回路の動作を制御する。
【００１６】
内部ＲＡＭ８は、ＣＰＵ２が実行する所定の信号処理に応じて生成されたデータを一時的に格納する。内部ＲＡＭ８はＳＲＡＭによって構成することが好適であり、ＣＰＵ２と同一の半導体基板上に集積することによって、プログラム処理装置１のサイズの増大を抑制することができる。プログラム処理装置１には、ＳＤＲＡＭは接続されていない。
【００１７】
デバッグ処理回路１０は、デバッグコンピュータであるデバッグコンピュータ２００内のデバッグツール２１０からの指示に基づいて、プログラム処理装置１に対して初期化の処理や実行されているプログラムの停止及び再開の処理を行う。また、デバッグ処理回路１０は内部バス２２を監視するとともに、内部ＲＡＭ８に書き込まれた変数をモニタし、その結果をレジスタ（図示なし）に書き込み、レジスタに書き込まれたデータをデバッグインタフェース１２へ送信する。モニタする変数は、デバッグツール２１０から供給されデバッグ処理回路１０に含まれるレジスタ（図示なし）を用いて指定することができ、レジスタの数に応じてプログラム実行中にモニタ可能な変数の数が決定される。
【００１８】
デバッグインタフェース１２は、デバッグ処理回路１０から送信されたデータをデバッグ通信ライン２２０を介してデバッグコンピュータ２００に送信する。また、デバッグインタフェース１２は、デバッグコンピュータ２００からデバッグ通信ライン２２０を介して送信されたデータを受信してデバッグ処理回路１０に供給する。デバッグ通信ライン２２０は少数の信号線で構成することが好適であり、例えばクロックラインと、データシリアル転送ラインの２本の信号線によって構成することができる。
【００１９】
デバッグコンピュータ２００は、デバッグツール２１０とメモリ２３０を含み、デバッグインタフェース１２から受信したデータの処理を行うとともに、デバッグツール２１０で作成したデータをデバッグインタフェース１２に送信する。特に、本実施形態においては、デバッグコンピュータ２００内のメモリ２３０にプログラムメモリ１１８内のプログラムをコピーしておく。そして、デバッグツール２１０においてプログラムの変更を行う場合には、メモリ２３０に記憶したプログラムについて書き換えを行ってから、書き換えたプログラムをプログラム処理装置１に送信する。すなわち、プログラムの開発者はデバッグコンピュータ２００を用いてデバッグ処理回路１０での処理結果を確認してプログラムの検証を行うことができるとともに、メモリ２３０にコピーしてあるプログラムの改良や修正を行う。そして、改良や修正を行ったメモリ２３０内のプログラムをデバッグインタフェース１２を介してプログラム処理装置１のデバッグ処理回路１０に供給し、これがプログラムメモリ１１８に書き込まれる。
【００２０】
ここで、プログラムメモリ１１８は、書き換え可能な不揮発性メモリ、例えばフラッシュメモリで形成されている。このプログラムメモリ１１８のイレーズ単位は、４ｋｂｙｔｅである。そこで、プログラムメモリ１１８内のプログラムを書き換える場合には、４ｋｂｙｔｅ単位（イレーズ単位）で行われる。すなわち、デバッグツール２１０により、プログラムの書き換えを行う場合には、メモリ２３０内のプログラムについて４ｋｂｙｔｅ分の書き換えを行う。
【００２１】
本実施形態の場合、デバッグコンピュータ２００において、メモリ２３０に記憶されてたプログラムを書き換えた場合には、デバッグコンピュータ２００がデバッグツール２１０にプログラムメモリ１１８内の該当するエリアのプログラム転送命令を供給する。これによって、ＣＰＵ２は、プログラムメモリ１１８内の転送プログラムを実行して、メモリ２３０から転送されてくる、書き換えられたイレーズ単位のプログラムを、入出力インタフェース４を介し、プログラムメモリ１１８の該当アドレスに書き込む。
【００２２】
なお、プログラムメモリ１１８は外部バス１２０を介し入出力インタフェース４に接続される。プログラムメモリ１１８は、ＣＰＵ２が実行するプログラムを格納する。ＣＰＵ２は、外部バス１２０を介してプログラムメモリ１１８からプログラムを取得して所定の信号処理を行い、上述のようにメモリ２３０から転送されてくる変更後のプログラムによりプログラムメモリ１１８内のプログラムを書き換える。このプログラムの書き換えには、例えばブレークポイントの設定がある。
【００２３】
次に、プログラム処理装置の動作について、図２及び図３を用いて説明する。
【００２４】
図２は、通常のプログラム処理装置の動作を示すものである。
【００２５】
ステップＳ２では、ＣＰＵ２の初期化の処理が行われる。このとき、これまでＣＰＵ２で行われていた信号処理は一切破棄され、プログラムに基づいた信号処理を開始するための準備が行われる。
【００２６】
このようにして、ＣＰＵ２が初期化されると、ステップＳ４において、ＣＰＵ２は、プログラムメモリ１１８のプログラムを実行して起動する。
【００２７】
ステップＳ６では、ＣＰＵ２が、プログラムメモリ１１８に格納されたプログラムに基づいて所定の信号処理を行う。これによって、デバッグ処理回路１０、デバッグインタフェース１２、及び図示しない信号処理回路はＣＰＵ２が行う信号処理に応じて活性とされる。
【００２８】
図２に示すプログラム処理装置の動作は、開発が完了したプログラムをプログラムメモリ１１８に格納して、ユーザへ提供した後に用いることが好適である。つまり、プログラム処理装置１を搭載した製品において、プログラム処理装置１がプログラムメモリ１１８に格納されたプログラムを取得して起動する。
【００２９】
図３はデバッグ処理を行う際のプログラム処理装置の動作を示すものである。
【００３０】
ステップＳ１２では、ＣＰＵ２の初期化の処理が行われる。このとき、これまでＣＰＵ２で行われていた信号処理は一切破棄され、プログラムメモリ１１８内のプログラムに基づいた信号処理を開始するための準備が行われる。
【００３１】
ステップＳ１４ではＣＰＵ２が起動し、プログラムメモリ１１８に格納されたプログラムに基づいてＣＰＵ２が所定の信号処理を行う。
【００３２】
ステップＳ１６では、ＣＰＵ２が行う信号処理に応じて、入出力インタフェース４、デバッグ処理回路１０、デバッグインタフェース１２、及び図示しない信号処理回路が活性とされる。これによって、デバッグコンピュータ２００のデバッグツール２１０が動作し、プログラムの開発者はデバッグコンピュータ２００を用いてデバッグ処理回路１０での処理結果を確認してプログラムの検証を行うことが可能となる。
【００３３】
そして、ステップＳ１８では、デバッグコンピュータ２００において、改良や修正を行ったプログラムをデバッグインタフェース１２を介してプログラムメモリ１１８書き込む。
【００３４】
ステップＳ２０では、ＣＰＵ２について初期化の処理が必要か否かを判断する。初期化の処理は、プログラムを修正するプログラムをプログラムメモリ１１８に書き込んだ後、その修正したプログラムを再度実行して検証を行う際に行われる。初期化が不要な場合はデバッグを終了して、ＣＰＵ２は所定の信号処理を行う。初期化が必要な場合は初期化処理を行ってステップＳ１８のＣＰＵ２の起動処理に移る。
【００３５】
このように、本実施形態では、デバッグ処理の際に、ＣＰＵ２がプログラムメモリ１１８内のプログラムを実行して、デバッグコンピュータ２００内のメモリ２３０内の変更後のプログラムをプログラムメモリ１１８に書き込む。メモリ２３０は十分な容量を持っており、ここにプログラムメモリ１１８内のメモリを全部書き込むことも可能である。また、書き換え前のプログラムをそのまま保持しながら、書き換えたプログラムを別に持つことができる。従って、ブレークポイントなどデバッグ用にプログラムメモリ１１８内のプログラムを書き換え、デバッグを終了した後、ブレークポイントなどの設定前のプログラムに戻すことも容易である。また、一部の変更データを別に持つことで、その部分のみを変更することも容易である。
【００３６】
特に、ＣＰＵ２は、プログラムメモリ１１８内のプログラムを書き換える際には、そのプログラムをイレーズ単位（例えば、４ｋｂｙｔｅ）で書き換える。内部ＲＡＭ８には、十分な領域がない。このため、デバッグツール２１０の指令によって、ＣＰＵ２がプログラムを書き換える場合には、内部ＲＡＭ８において使える容量に応じて、プログラムを書き換えプログラムメモリ１１８に書き込む必要があった。
【００３７】
しかし、本実施形態では、書き換えたプログラムがメモリ２３０に用意される。ＣＰＵ２は、多数回の書き込み命令を行うことなく、メモリ２３０からプログラムメモリ１１８内の該当アドレスに書き換え後のプログラムを転送する命令を実行すればよい。すなわち、プログラムメモリ１１８から読み出して実行するプログラム命令としては、１命令でメモリ２３０から読み出したプログラムのプログラムメモリ１１８への書き込みが行える。
【図面の簡単な説明】
【００３８】
【図１】実施形態のプログラム処理装置の構成を示す図である。
【図２】プログラム処理のフローチャートを示す図である。
【図３】デバッグ処理のフローチャートを示す図である。
【図４】従来のプログラム処理装置の構成を示す図である。
【符号の説明】
【００３９】
１  プログラム処理装置、２  ＣＰＵ、４  入出力インタフェース、８  内部ＲＡＭ、１０  デバッグ処理回路、１２  デバッグインタフェース、２２  内部バス、１１８  プログラムメモリ、１２０  外部バス、２００  デバッグコンピュータ、２１０  デバッグツール、２２０  デバッグ通信ライン、２３０  メモリ。
【図１】
2009070195.tif 000003
【図２】
2009070195.tif 000004
【図３】
2009070195.tif 000005
【図４】
2009070195.tif 000006