(57)【要約】【課題】ブロック図に対する割込み処理及び演算周期設定を含めたブロック図の設計とデバッグを容易にする。【解決手段】システム本体１００は、ブロックの設計と、各ブロックの演算順序を定義したブロック図の設計を支援するユーザ定義ブロック設定装置１０の外に、ブロック図デバッグ装置６０を備える。ブロック図デバッグ装置は、ブロック図上に割込み禁止設定ブロックと割込み禁止解除ブロックの設置、ブロック図の先頭から順に演算シミュレーションモデルを実行する順次ステップ実行、ブロック図のブレークポイントから演算シミュレーションモデルを実行するブレークポイントステップ実行、ブロックまたは関数に対する演算周期と優先度の設定、設定されるチェック条件で演算シミュレーション時にチェックを行う汎用チェックブロック作成の各機能をもつ。【選択図】図１
2010102362.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ処理システムに組み込むソフトウェアの設計を支援するシステムとして、入力に対して所期の関数演算を行って出力するブロックの設計と、各ブロック間を線で結んで演算順序を定義したブロック図の設計を支援するユーザ定義ブロック設定装置を備えた組込みソフトウェアの開発支援システムであって、
ブロック図に対する割込み処理及び演算周期設定を含めたユーザによるブロック図の設計とデバッグを支援するブロック図デバッグ装置を備え、
前記ブロック図デバッグ装置は、ブロック図上に割込み禁止設定ブロックと割込み禁止解除ブロックを設置できる割込み禁止ブロック作成手段と、前記割込み禁止設定ブロックと割込み禁止解除ブロックがブロック図上に対で存在しているか確認する割込み禁止確認手段とを備えたことを特徴とするソフトウェアの開発支援システム。
【請求項２】
前記ブロック図デバッグ装置は、
ブロック図の演算順序の先頭から順に演算対象ブロックを取得し、この演算対象ブロックの演算シミュレーションモデルを取得し、この演算シミュレーションモデルを実行して演算結果を外部出力装置に表示して演算シミュレーション実行を一時停止する演算シミュレーションステップ実行処理手段と、
前記一時停止状態で、外部入力装置によりステップ実行の動作指示を受けると、次の演算順序について、前記演算シミュレーションモデルを実行するステップ実行手段と、
前記一時停止状態で、外部入力装置により連続実行の動作指示を受けると、次の演算順序から順に連続して前記演算シミュレーションモデルを実行する連続実行手段と、
前記一時停止状態で、中断の動作指示を受けると、前記演算シミュレーションを中止するステップ実行中止手段と、
により構成される順次ステップ実行部を備えたことを特徴とする請求項１に記載のソフトウェアの開発支援システム。
【請求項３】
前記ブロック図デバッグ装置は、
ブロック図の演算順序の先頭から順に演算対象ブロックを取得し、この演算対象ブロックの演算シミュレーションモデルを取得し、この演算シミュレーションモデルを実行する演算シミュレーション実行処理を、演算対象ブロックがブレークポイントになるまで繰り返し、演算対象ブロックがブレークポイントになると演算結果を外部出力装置に表示して演算シミュレーション実行を一時停止する演算シミュレーションステップ実行処理手段と、
前記一時停止状態で、外部入力装置によりステップ実行の動作指示を受けると、次の演算順序について、前記演算シミュレーションモデルを実行するステップ実行手段と、
前記一時停止状態で、外部入力装置により連続実行の動作指示を受けると、次の演算順序から演算シミュレーションモデルを実行する連続実行手段と、
前記一時停止状態で、外部入力装置により中断の動作指示を受けると、演算シミュレーションを中止するステップ実行中止手段と、
により構成されるブレークポイントステップ実行部を備えたことを特徴とする請求項１または２に記載のソフトウェアの開発支援システム。
【請求項４】
前記ブロック図デバッグ装置は、
ブロック図上のブロックを一つまたは複数選択し、そのブロックに演算周期と優先度を設定するブロック演算周期設定手段と、
同じ演算周期のブロックを同じ強調表示させる演算周期強調表示手段と、
により構成される演算周期設定部を備えたことを特徴とする請求項１〜３のいずれか１項に記載のソフトウェアの開発支援システム。
【請求項５】
前記ブロック図デバッグ装置は、
ブロック図上の関数を一つまたは複数選択し、その関数に演算周期と優先度を設定する関数演算周期設定手段と、
同じ演算周期の関数を同じ強調表示させる演算周期強調表示手段と、
により構成される演算周期設定部を備えたことを特徴とする請求項１〜４のいずれか１項に記載のソフトウェアの開発支援システム。
【請求項６】
前記ブロック図デバッグ装置は、
チェックする条件を設定するチェック条件設定手段と、
前記チェック条件設定手段で設定した情報を外部記憶媒体に保存するチェック条件保存手段と、
前記チェック条件保存手段で保存した情報を外部記憶媒体から読み込むチェック条件読込手段と、
前記チェック条件設定手段またはチェック条件読込手段で設定した条件で演算シミュレーション時にチェックを行うチェック実行手段と、
により構成される汎用チェックブロック作成部を備えたことを特徴とする請求項１〜５のいずれか１項に記載のソフトウェアの開発支援システム。
【請求項７】
コンピュータ処理システムに組み込むソフトウェアの設計を支援する方法として、入力に対して所期の関数演算を行って出力するブロックの設計と、各ブロック間を線で結んで演算順序を定義したブロック図の設計を支援するユーザ定義ブロック設定装置を備えた組込みソフトウェアの開発支援方法であって、
ブロック図に対する割込み処理及び演算周期設定を含めたユーザによるブロック図の設計とデバッグを支援するブロック図デバッグ装置を備え、
前記ブロック図デバッグ装置は、ブロック図上に割込み禁止設定ブロックと割込み禁止解除ブロックを設置できる割込み禁止ブロック作成ステップと、前記割込み禁止設定ブロックと割込み禁止解除ブロックがブロック図上に対で存在しているか確認する割込み禁止確認ステップとを有することを特徴とする組込みソフトウェアの開発支援方法。
【請求項８】
前記ブロック図デバッグ装置は、
ブロック図の演算順序の先頭から順に演算対象ブロックを取得し、この演算対象ブロックの演算シミュレーションモデルを取得し、この演算シミュレーションモデルを実行して演算結果を外部出力装置に表示して演算シミュレーション実行を一時停止する演算シミュレーションステップ実行処理ステップと、
前記一時停止状態で、外部入力装置によりステップ実行の動作指示を受けると、次の演算順序について、前記演算シミュレーションモデルを実行するステップ実行ステップと、
前記一時停止状態で、外部入力装置により連続実行の動作指示を受けると、次の演算順序から順に連続して前記演算シミュレーションモデルを実行する連続実行ステップと、
前記一時停止状態で、中断の動作指示を受けると、前記演算シミュレーションを中止するステップ実行中止ステップと、
により構成される順次ステップ実行部を有することを特徴とする請求項７に記載の組込みソフトウェアの開発支援方法。
【請求項９】
前記ブロック図デバッグ装置は、
ブロック図の演算順序の先頭から順に演算対象ブロックを取得し、この演算対象ブロックの演算シミュレーションモデルを取得し、この演算シミュレーションモデルを実行する演算シミュレーション実行処理を、演算対象ブロックがブレークポイントになるまで繰り返し、演算対象ブロックがブレークポイントになると演算結果を外部出力装置に表示して演算シミュレーション実行を一時停止する演算シミュレーションステップ実行処理ステップと、
前記一時停止状態で、外部入力装置によりステップ実行の動作指示を受けると、次の演算順序について、前記演算シミュレーションモデルを実行するステップ実行ステップと、
前記一時停止状態で、外部入力装置により連続実行の動作指示を受けると、次の演算順序から演算シミュレーションモデルを実行する連続実行ステップと、
前記一時停止状態で、外部入力装置により中断の動作指示を受けると、演算シミュレーションを中止するステップ実行中止ステップと、
により構成されるブレークポイントステップ実行部を有することを特徴とする請求項７または８に記載の組込みソフトウェアの開発支援方法。
【請求項１０】
前記ブロック図デバッグ装置は、
ブロック図上のブロックを一つまたは複数選択し、そのブロックに演算周期と優先度を設定するブロック演算周期設定ステップと、
同じ演算周期のブロックを同じ強調表示させる演算周期強調表示ステップと、
により構成される演算周期設定部を有することを特徴とする請求項７〜９のいずれか１項に記載の組込みソフトウェアの開発支援方法。
【請求項１１】
前記ブロック図デバッグ装置は、
ブロック図上の関数を一つまたは複数選択し、その関数に演算周期と優先度を設定する関数演算周期設定ステップと、
同じ演算周期の関数を同じ強調表示させる演算周期強調表示ステップと、
により構成される演算周期設定部を有することを特徴とする請求項７〜１０のいずれか１項に記載の組込みソフトウェアの開発支援方法。
【請求項１２】
前記ブロック図デバッグ装置は、
チェックする条件を設定するチェック条件設定ステップと、
前記チェック条件設定ステップで設定した情報を外部記憶媒体に保存するチェック条件保存ステップと、
前記チェック条件保存ステップで保存した情報を外部記憶媒体から読み込むチェック条件読込ステップと、
前記チェック条件設定ステップまたはチェック条件読込ステップで設定した条件で演算シミュレーション時にチェックを行うチェック実行ステップと、
により構成される汎用チェックブロック作成部を有することを特徴とする請求項７〜１１のいずれか１項に記載の組込みソフトウェアの開発支援方法。
【請求項１３】
請求項７〜１２のいずれか１項に記載の組込みソフトウェア開発支援方法における処理手順をコンピュータで実行可能にしたことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの開発支援システムおよび開発支援方法に係り、特に組込みソフトウェアとして開発するブロック図の動作を確認するためのデバッグに関する。
【背景技術】
【０００２】
監視制御や計測制御などのコンピュータ処理システムに組み込むアプリケーション・ソフトウェアの開発ではＵＭＬで設計図の記述を行うことが多い。このＵＭＬの設計図のうち、クラス図などからソースコードを出力し、残りのロジックに関する部分の実装を手作業で行う（例えば、非特許文献１参照）。
【０００３】
一方、組み込みソフトウェアの設計では、制御演算を司る部分の設計図については、従来からブロック図が用いられている。ブロック図の要素としてはブロックと線があり（図２参照）、これらが図面上で接続されることで、ソフトウェアとして実現したい内容を表現する。この設計図を元にして実装を行うにあたっては、実装者が設計図から設計情報を読み取りながら、手作業で実装が行われている。また、ＭＡＴＬＡＢ／Ｓｉｍｕｌｉｎｋに代表されるようなブロック図作成のためのアプリケーションでは、ブロック図を元にソースコードを出力するものもある（例えば、非特許文献２参照）。
【０００４】
ブロック図から作成したプログラムの動作確認には、ブロックやブロック図に入力を設定して出力を取り出し、この入出力関係からブロックやブロック図の動作を確認することができる。
【０００５】
図１９はブロック図からプログラムを作成し、動作確認をする例を示す。図１９の左上はブロック図の例を示し、入力にｌＮ１，１Ｎ２，ｌＮ３があり、ＶＡＲはｌＮ１とｌＮ２の和が入り、ＯＵＴはＶＡＲとｌＮ３の積が入る演算ブロックとする。このブロック図から図１９の右上のようにプログラムを手動または自動で作成する。そして、図１９の右下のように、入力設定値として、入力１Ｎ１に数値「２」，ｌＮ２に数値「３」，ｌＮ３に数値「４」を設定すると、ＶＡＲは値「５」になり、ＯＵＴは値「２０」となり、動作を確認することができる。
【非特許文献１】明電時報、２００６年９・１０月、通巻３１０号、Ｎｏ．５「ソフトウェア開発総合支援システムにおける仕様作成支援機能」
【非特許文献２】ＭＡＴＬＡＢ／Ｓｉｍｕｌｉｎｋ（ｈｔｔｐ：／／ｗｗｗ．ｃｙｂｅｒｎｅｔ．ｃｏ．ｊｐ／ｍａｔｌａｂ／ｐｒｏｄｕｃｔｓ／ｐｒｏｄｕｃｔ＿ｌｉｓｔｉｎｇ／ｓｉｍｕｌｉｎｋ／）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
組み込みソフトウェアの動作を確認するためのデバッグには以下の問題があった。
【０００７】
（１）組込みソフトウェアでは、ハードウェアからの情報取得、演算、動作制御など、複数の処理をまとめて行う必要がある。そのとき、割込みによって現在実行しようとする処理を切リ替える。割込みとは、あるシステムの内部や外部から送られてくる割込み信号により、現在実行している処理を中断して、送られてきた割込み信号に対応する処理を実行することである。
【０００８】
例えば、ブロック図上で結線されている複数のブロックがあり、その中で割込によって処理が分断されてしまうことを避ける必要がある部分（ブロック群）が存在することがある。このブロック群に対して、組込みソフトウェアでは割込み禁止を設定する記述が存在しないため、割込み禁止の記述がない設計図（ブロック図）の通りにプログラムを作成すると、割込みによって処理が分断されて、システムに予期しない不具合が発生し、手戻りが発生し、設計の見直しを行わなければならなくなる。
【０００９】
（２）組込みソフトウェアでは、すべての演算を同一の周期で演算するのではなく、全体の処理負荷を軽減するために、一部の演算を異なる周期で演算することがある。ＭＡＴＬＡＢ／Ｓｉｍｕｌｉｎｋには離散系ブロックがあり、このブロックにサンプル時間を設定することによって、異なる演算周期を設定することができる。この作業は設定に手間がかかるだけでなく、ブロック図を一目見ただけではどの範囲（ブロック）がどの演算周期なのかが分かりにくい。
【００１０】
（３）組込みソフトウェア開発支援システムには、作成されたソースコードの段階でチェックブロックを仮設定しておき、チェックブロックの位置で演算処理が正常に設計されているかをチェック可能とするものがある。このチェックブロックによる主要なチェック機能としては、指定した値を超えないかをチェックする上限値チェック、指定した値を下回らないかをチェックする下限値チェック、演算結果がオーバーフローとならないかをチェックするオーバーフローチェック、演算結果がアンダーフローとならないかをチェックするアンダーフローチェック、演算結果が桁落ちしないかをチェックする桁落ちチェックがある。
【００１１】
これらのチェックブロックは組込みソフトウェア開発支援システムに組み込まれており、外部に公開されていない。このため、用意されていない内容のチェックを行うときは、専用のチェックブロックを新規に作成して組込みソフトウェア開発支援システムに追加する必要がある。
【００１２】
（４）設計図（ブロック図）のシミュレーションでは、ブロック図にブレークポイントを設定してシミュレーションをその場所で一時停止させ、各ブロックなどの現在値を確認することができる。図２０上のように、ブロックＢ１とＢ２の間にブレークポイントＣ１を配置すると、シミュレーションはブロックＢ１の演算を行った後、ブレークポイントＣ１で演算を一時停止する。ここで、ユーザがシミュレーションを再開させると、次のブレークポイントＣ２が見つかるまで演算を一時停止させることができない。ブレークポイントが見つからなければ、シミュレーションは最後の出力ＯＵＴに到達して終了する。
【００１３】
このため、ブロック図上の各ブロックをシミュレーションによって演算結果を確認するためには、図２０下のように、確認箇所すべて（Ｂ１〜Ｂ３）にブレークポイント（Ｃ１〜Ｃ３）を設置しなければならない。
【００１４】
一般に、組込みソフトウェアの開発支援システムは、基本的な設計、シミュレーションを行うことができるが、上記のような詳細な設計、シミュレーションを行うことができない。
【００１５】
本発明の目的は、ブロック図に対する割込み処理及び演算周期設定を含めたブロック図の設計とデバッグを容易にしたソフトウェアの開発支援システム、開発支援方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１６】
本発明は、前記の課題を解決するため、ブロック図に対する割込み処理及び演算周期設定を含めたユーザによるブロック図の設計とデバッグを支援できるブロック図デバッグ装置を用意するもので、以下の開発支援システム、開発支援方法およびプログラムを特徴とする。
【００１７】
（システムの発明）
（１）コンピュータ処理システムに組み込むソフトウェアの設計を支援するシステムとして、入力に対して所期の関数演算を行って出力するブロックの設計と、各ブロック間を線で結んで演算順序を定義したブロック図の設計を支援するユーザ定義ブロック設定装置を備えた組込みソフトウェアの開発支援システムであって、
ブロック図に対する割込み処理及び演算周期設定を含めたユーザによるブロック図の設計とデバッグを支援するブロック図デバッグ装置を備え、
前記ブロック図デバッグ装置は、ブロック図上に割込み禁止設定ブロックと割込み禁止解除ブロックを設置できる割込み禁止ブロック作成手段と、前記割込み禁止設定ブロックと割込み禁止解除ブロックがブロック図上に対で存在しているか確認する割込み禁止確認手段とを備えたことを特徴とする。
【００１８】
（２）前記ブロック図デバッグ装置は、
ブロック図の演算順序の先頭から順に演算対象ブロックを取得し、この演算対象ブロックの演算シミュレーションモデルを取得し、この演算シミュレーションモデルを実行して演算結果を外部出力装置に表示して演算シミュレーション実行を一時停止する演算シミュレーションステップ実行処理手段と、
前記一時停止状態で、外部入力装置によりステップ実行の動作指示を受けると、次の演算順序について、前記演算シミュレーションモデルを実行するステップ実行手段と、
前記一時停止状態で、外部入力装置により連続実行の動作指示を受けると、次の演算順序から順に連続して前記演算シミュレーションモデルを実行する連続実行手段と、
前記一時停止状態で、中断の動作指示を受けると、前記演算シミュレーションを中止するステップ実行中止手段と、
により構成される順次ステップ実行部を備えたことを特徴とする。
【００１９】
（３）前記ブロック図デバッグ装置は、
ブロック図の演算順序の先頭から順に演算対象ブロックを取得し、この演算対象ブロックの演算シミュレーションモデルを取得し、この演算シミュレーションモデルを実行する演算シミュレーション実行処理を、演算対象ブロックがブレークポイントになるまで繰り返し、演算対象ブロックがブレークポイントになると演算結果を外部出力装置に表示して演算シミュレーション実行を一時停止する演算シミュレーションステップ実行処理手段と、
前記一時停止状態で、外部入力装置によりステップ実行の動作指示を受けると、次の演算順序について、前記演算シミュレーションモデルを実行するステップ実行手段と、
前記一時停止状態で、外部入力装置により連続実行の動作指示を受けると、次の演算順序から演算シミュレーションモデルを実行する連続実行手段と、
前記一時停止状態で、外部入力装置により中断の動作指示を受けると、演算シミュレーションを中止するステップ実行中止手段と、
により構成されるブレークポイントステップ実行部を備えたことを特徴とする。
【００２０】
（４）前記ブロック図デバッグ装置は、
ブロック図上のブロックを一つまたは複数選択し、そのブロックに演算周期と優先度を設定するブロック演算周期設定手段と、
同じ演算周期のブロックを同じ強調表示させる演算周期強調表示手段と、
により構成される演算周期設定部を備えたことを特徴とする。
【００２１】
（５）前記ブロック図デバッグ装置は、
ブロック図上の関数を一つまたは複数選択し、その関数に演算周期と優先度を設定する関数演算周期設定手段と、
同じ演算周期の関数を同じ強調表示させる演算周期強調表示手段と、
により構成される演算周期設定部を備えたことを特徴とする。
【００２２】
（６）前記ブロック図デバッグ装置は、
チェックする条件を設定するチェック条件設定手段と、
前記チェック条件設定手段で設定した情報を外部記憶媒体に保存するチェック条件保存手段と、
前記チェック条件保存手段で保存した情報を外部記憶媒体から読み込むチェック条件読込手段と、
前記チェック条件設定手段またはチェック条件読込手段で設定した条件で演算シミュレーション時にチェックを行うチェック実行手段と、
により構成される汎用チェックブロック作成部を備えたことを特徴とする。
【００２３】
（方法の発明）
（７）コンピュータ処理システムに組み込むソフトウェアの設計を支援する方法として、入力に対して所期の関数演算を行って出力するブロックの設計と、各ブロック間を線で結んで演算順序を定義したブロック図の設計を支援するユーザ定義ブロック設定装置を備えた組込みソフトウェアの開発支援方法であって、
ブロック図に対する割込み処理及び演算周期設定を含めたユーザによるブロック図の設計とデバッグを支援するブロック図デバッグ装置を備え、
前記ブロック図デバッグ装置は、ブロック図上に割込み禁止設定ブロックと割込み禁止解除ブロックを設置できる割込み禁止ブロック作成ステップと、前記割込み禁止設定ブロックと割込み禁止解除ブロックがブロック図上に対で存在しているか確認する割込み禁止確認ステップとを有することを特徴とする。
【００２４】
（８）前記ブロック図デバッグ装置は、
ブロック図の演算順序の先頭から順に演算対象ブロックを取得し、この演算対象ブロックの演算シミュレーションモデルを取得し、この演算シミュレーションモデルを実行して演算結果を外部出力装置に表示して演算シミュレーション実行を一時停止する演算シミュレーションステップ実行処理ステップと、
前記一時停止状態で、外部入力装置によりステップ実行の動作指示を受けると、次の演算順序について、前記演算シミュレーションモデルを実行するステップ実行ステップと、
前記一時停止状態で、外部入力装置により連続実行の動作指示を受けると、次の演算順序から順に連続して前記演算シミュレーションモデルを実行する連続実行ステップと、
前記一時停止状態で、中断の動作指示を受けると、前記演算シミュレーションを中止するステップ実行中止ステップと、
により構成される順次ステップ実行部を有することを特徴とする。
【００２５】
（９）前記ブロック図デバッグ装置は、
ブロック図の演算順序の先頭から順に演算対象ブロックを取得し、この演算対象ブロックの演算シミュレーションモデルを取得し、この演算シミュレーションモデルを実行する演算シミュレーション実行処理を、演算対象ブロックがブレークポイントになるまで繰り返し、演算対象ブロックがブレークポイントになると演算結果を外部出力装置に表示して演算シミュレーション実行を一時停止する演算シミュレーションステップ実行処理ステップと、
前記一時停止状態で、外部入力装置によりステップ実行の動作指示を受けると、次の演算順序について、前記演算シミュレーションモデルを実行するステップ実行ステップと、
前記一時停止状態で、外部入力装置により連続実行の動作指示を受けると、次の演算順序から演算シミュレーションモデルを実行する連続実行ステップと、
前記一時停止状態で、外部入力装置により中断の動作指示を受けると、演算シミュレーションを中止するステップ実行中止ステップと、
により構成されるブレークポイントステップ実行部を有することを特徴とする。
【００２６】
（１０）前記ブロック図デバッグ装置は、
ブロック図上のブロックを一つまたは複数選択し、そのブロックに演算周期と優先度を設定するブロック演算周期設定ステップと、
同じ演算周期のブロックを同じ強調表示させる演算周期強調表示ステップと、
により構成される演算周期設定部を有することを特徴とする。
【００２７】
（１１）前記ブロック図デバッグ装置は、
ブロック図上の関数を一つまたは複数選択し、その関数に演算周期と優先度を設定する関数演算周期設定ステップと、
同じ演算周期の関数を同じ強調表示させる演算周期強調表示ステップと、
により構成される演算周期設定部を有することを特徴とする。
【００２８】
（１２）前記ブロック図デバッグ装置は、
チェックする条件を設定するチェック条件設定ステップと、
前記チェック条件設定ステップで設定した情報を外部記憶媒体に保存するチェック条件保存ステップと、
前記チェック条件保存ステップで保存した情報を外部記憶媒体から読み込むチェック条件読込ステップと、
前記チェック条件設定ステップまたはチェック条件読込ステップで設定した条件で演算シミュレーション時にチェックを行うチェック実行ステップと、
により構成される汎用チェックブロック作成部を有することを特徴とする。
【００２９】
（プログラムの発明）
（１３）上記（７）〜（１２）のいずれか１項に記載の組込みソフトウェア開発支援方法における処理手順をコンピュータで実行可能にしたことを特徴とする。
【発明の効果】
【００３０】
以上のとおり、本発明によれば、ブロック図デバッグ装置を用意することにより、ブロック図に対する割込み処理及び演算周期設定を含めたユーザによるブロック図の設計とデバッグが容易になる。
【００３１】
具体的には、割込み禁止を考慮したブロック図を作成でき、そのブロック図からソースコードを自動生成することにより、ブロック図とソースコードとの整合性が保たれる。
【００３２】
また、割込み禁止を考慮した演算シミュレーションのステップ実行ができる。
【００３３】
また、ブロックや関数に簡単に演算周期を設定することができ、可視化することによって異なる演算周期が一目で分かりやすくなる。また、異なる演算周期を考慮した演算シミュレーションのステップ実行ができる。
【００３４】
また、汎用のチェックブロックを作成することで、専用のチェックブロックを新規に作成して組込みソフトウェア開発支援システムに追加することなく、開発者が所望するチェック機能を持ったチェックブロックを配置することができる。また、汎用チェックブロックを考慮した演算シミュレーションのステップ実行ができる。
【００３５】
また、割込み禁止、演算周期、汎用チェックブロックを含むブロック図を作成でき、これらを考慮した演算シミュレーションのステップ実行ができる。すなわち、ソースコードをコンパイルして実機に組み込んで動作を確認せずに、ブロック図上でデバッグを簡単に行うことができる。
【発明を実施するための最良の形態】
【００３６】
図１は、本実施形態における組込みソフトウェア開発支援システムの基本構成図である。同図において、システム本体１００は、コンピュータ資源とこれを利用したソフトウェアで構成され、外部入出力装置になるブロック情報入力部２００とブロック図情報表示部３００との間にインタフェースを構成する。
【００３７】
システム本体１００には、ユーザがソフトウェアとして組み込もうとする任意の情報処理機能をブロックとして定義可能とし、これを「ユーザ定義ブロック」として効率よく作成できるようにするユーザ定義ブロック設定装置１０と、ブロック情報定義ＤＢ（データベース）２０と、表示用ブロック情報ＤＢ３０と、ブロック選択部４０および関数情報ＤＢ５０を搭載する。なお、ユーザ定義ブロック設定装置１０などの各機能を実現するプログラム言語はＣ言語を想定しているが、Ｃ言語以外のプログラム言語でも良い。
【００３８】
図１において、ユーザ定義ブロック設定装置１０は、ユーザによって定義されたブロックのブロック名を設定するブロック名設定部１１と、ブロックの端子に名前を設定する端子情報設定部１２と、ブロックにコード片（ブロックに対応する部分的なソースコード）を設定するコード片設定部１３と、ブロックのプロパティを設定するプロパティ設定部１４と、ブロックに定義されるコード片変数名を変換するコード片変数名変換部１５を備える。
【００３９】
これらブロック名設定部・端子情報設定部・コード片設定部・プロパティ設定部で設定した内容を、ブロック選択部４０で選択したブロック別に、ブロック情報定義ＤＢ２０と、表示用ブロック情報ＤＢ３０に保存する。また、関数情報ＤＢ５０には各ブロック毎にユーザ定義された関数情報を保存する。また、ブロック情報入力部（マウス・キーボード）２００からはブロックの情報を入力し、ブロック図およびブロックの設定情報をブロック図情報表示部（ディスプレイ）３００に表示する。
【００４０】
以上のような組込みソフトウェア開発支援システムにおいて、本実施形態では、ブロック図デバッグ装置６０を増設する。このブロック図デバッグ装置６０はその機能構成図を図２に示すように、割込み禁止／解除部６１、順次ステップ実行部６２、プレークポイントステップ実行部６３、演算周期設定部６４および汎用チェックブロック作成部６５を備え、ブロック図に対する割込み処理及び演算周期設定を含めたユーザによるブロック図の設計とデバッグを容易にする。
【００４１】
これら各部は、コンピュータ資源とこれを利用したソフトウェアで構成される。以下、各部によるブロック図の設計とデバッグの詳細を項分けして説明する。
【００４２】
（１）割込み禁止設定／解除設定
システムにより作成されるブロック図は、ブロック図上で結線されている複数のブロックがあり、その中で割込みによって処理が分断されてしまうことを避ける必要がある部分（以下、ブロック群と呼ぶ）が存在することがある。
【００４３】
上記のブロック群に対して割込み禁止を設定するために、図２に示す割込み禁止／解除部６１の割込み禁止ブロック作成機能により、ブロック図に割込み禁止設定ブロックを設置できるようにし、また、設定した割込み禁止を解除するために、割込み禁止解除ブロックを設置できるようにする。さらに、これら設定を使った割込み禁止確認を割込み禁止確認機能により確認できるようにする。
【００４４】
この割込み禁止／解除部６１で設定する割込み禁止設定ブロックと割込み禁止解除ブロックには、それぞれ入力端子と出力端子が一つずつ付くように設定し、加算ブロックや乗算ブロックなどの他のブロックと同様に結線することができる。
【００４５】
また、割込み禁止設定ブロックには割込み禁止を設定するコード片を、割込み禁止解除ブロックには割込み禁止を解除するコード片を設定する。Ｃ言語における割込み禁止設定や割込み禁止解除の実行は、一般的に関数呼び出しの形式が多いので、たとえば図３では、「割込み禁止設定（）」・「割込み禁止解除（）」という関数を呼ぶコード片を設定する。このコード片は、使用する割込みシステムに応じて設定すると、異なる割込みシステムに対応できる。
【００４６】
ここで、ブロック図上に割込み禁止設定ブロックを設置し、その後の演算で割込み禁止解除ブロックを設置していない場合、割込み禁止の設定が無限に続くことになり、その後、割込み処理を行うことができなくなってしまう。そこで、割込み禁止設定ブロックと割込み禁止解除ブロックが対で存在しているかを確認する割込み禁止確認機能を設け、両者が対で存在しない場合、その旨（割込み禁止解除されていない）の警告を出すようにする。
【００４７】
この確認は、図４に例を示し、設計されたブロック図の演算順序に従って最初の割込み禁止設定ブロックを見つけたとき、演算順序が後のブロックをたどって、割込み禁止解除ブロックが存在するか調べる。割込み禁止解除ブロックが存在すれば正常に終了する（図４のａ）。一方、途中に他の割込み禁止設定ブロックが存在するか（図４のｂ）、出力のブロック（演算の終わり）に到違した場合（図４のｃ）、対になる割込み禁止解除ブロックが設定されていないことになり、その警告を出力する。
【００４８】
逆に、ブロック図上に割込み禁止解除ブロックを設置し、その前の演算で割込み禁止設定ブロックを設置していない場合、割込み禁止設定をすべきブロック群が存在するにもかかわらず、割込み禁止設定を忘れている可能性がある。上記の割込み禁止解除の確認と同様に、割込み禁止設定ブロックと割込み禁止解除ブロックが対で存在しているかを確認する機能が、両者が対で存在しない場合、その旨（割込み禁止設定されていない）の警告を出すようにする。
【００４９】
この確認は、図５に例を示し、ブロック図の演算順序に従って最初の割込み禁止解除ブロックを見つけたとき、演算順序が前のブロックをたどって、割込み禁止設定ブロックが存在するか調べる。割込み禁止設定ブロックが存在すれば正常に終了する（図５のａ）。一方、途中に他の割込み禁止解除ブロックが存在するか（図５のｂ）、入力のブロック（演算のはじめ）に到達した場合（図５のｃ）、対になる割込み禁止設定ブロックが設定されていないことになり、その警告を出力する。
【００５０】
したがって、割込み禁止を考慮したブロック図を作成でき、そのブロック図からソースコードを自動生成することにより、ブロック図とソースコードとの整合性が保たれる。
【００５１】
（２）割込み禁止を考慮したステップ実行
組込みソフトウェア開発支援システムに、割込み禁止を考慮したステップ実行を行う機能を設ける。この機能は図２に示すように、最初からステップ実行する順次ステップ実行部６２と、ブレークポイントからステップ実行するブレークポイントステップ実行部６３として用意する。
【００５２】
図６は、最初からステップ実行する順次ステップ実行部６２の手順を示す。設計されたブロック図の演算順序を取得し（ｓｔｅｐ１）、まず先頭の演算順序を取り出し、その演算対象ブロックを取得する（ｓｔｅｐ２）。次に、演算対象ブロックの演算シミュレーションモデルを取得し（ｓｔｅｐ３）、この演算シミュレーションモデルを実行し（ｓｔｅｐ４）、演算結果を取得して演算結果ＤＢに保存し（ｓｔｅｐ５）、演算結果をディスプレイなどの外部出力装置に表示する（ｓｔｅｐ６）。ここで、ステップ実行のため、演算シミュレーション実行を一時停止する（ｓｔｅｐ７）。ここでは、演算順序を取り出してから演算シミュレーション実行を一時停止するまでを「演算シミュレーションステップ実行処理」と呼ぶ。この停止状態で、ユーザからマウスなどの外部入力装置で次の動作指示を受けると、上記指示が「ステップ実行」であれば、上記演算順序の次の演算順序について、上記演算シミュレーションステップ実行処理を行い（ｓｔｅｐ８）、上記指示が「連続実行」であれば、上記演算順序の以降のすべての演算順序について演算シミュレーションモデルを一時停止することなく実行して演算シミュレーションを終了する。上記指示が「中断」であれば、上記演算順序の以降のすべての演算順序について演算シミュレーション実行を行わずに演算シミュレーションを中止する（ｓｔｅｐ９）。演算順序の最後まで、上記を繰り返す。
【００５３】
図７は演算シミュレーションのステップ実行を最初から行う順次ステップ実行部６２の実行例を示す。図７の（ａ）に示すステップ実行手順は、まず演算順序１の対象ブロックＢ１の演算シミュレーションモデルＳ１を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。次いで、ユーザがステップ実行を指示すると、演算順序２の対象ブロックＢ２の演算シミュレーションモデルＳ２を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。さらに、ユーザがステップ実行を指示すると、演算順序３の対象ブロックＢ３の演算シミュレーションモデＳ３を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、出力ＯＵＴに到達して演算シミュレーションを終了する。
【００５４】
図７の（ｂ）に示すステップ実行手順は、演算シミュレーションモデルＳ１を実行して演算結果を表示し、演算シミュレーションを一時停止している状態で、ユーザが連続実行を指示すると、以降の演算順序「２」〜「３」について、演算シミュレーションモデルＳ２〜Ｓ３を一時停止することなく実行し、出力ＯＵＴに到達して演算シミュレーションを終了する。
【００５５】
図７の（ｃ）に示すステップ実行手順は、演算シミュレーションモデルＳ１を実行して演算結果を表示し、演算シミュレーションを一時停止している状態で、ユーザが中断を指示すると、以降の演算順序「２」〜「３」について、演算シミュレーションモデルＳ２〜Ｓ３を実行せずに演算シミュレーションを中止する。
【００５６】
図８は、ブレークポイントからステップ実行するブレークポイントステップ実行部６３の手順を示す。上記の最初からステップ実行する順次ステップ実行の場合、ステップ実行で演算結果を確認したいブロックが演算順序の後方にあると、演算順序の最初のブロックから上記所望のブロックに到達するまで、ユーザはマウスなどの外部入力装置でステップ実行を指示し続けなければならなくなる。
【００５７】
そこで、ブレークポイント用チェックブロックを用いて、ブレークポイントからのステップ実行を可能にする。図８が図６と異なる部分は、演算対象ブロックを取得したとき（ｓｔｅｐ２）、当該演算対象ブロックがブレークポイント用チェックブロックであるときに、演算シミュレーションモデルの取得と実行（ｓｔｅｐ３，４）を行うことなく、演算結果の取得（ｓｔｅｐ５）にジャンプする。
【００５８】
図９は演算シミュレーションのステップ実行をブレークポイントから行うブレークポイントステップ実行部６３の実行例を示す。図９の（ａ）に示すステップ実行手順は、まず演算順序１の対象ブロックＢ１の演算シミュレーションモデルＳ１を実行して、次の演算順序に進む。次の演算順序「２」の対象ブロックはブレークポイント用チェックブロックＣ１なので、演算結果を表示して、演算シミュレーションを一時停止する。この状態で、ユーザがステップ実行を指示すると、次に演算順序「３」の対象ブロックＢ２の演算シミュレーションモデルＳ２を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、次に演算順序「４」の対象ブロックＢ３の演算シミュレーションモデルＳ３を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。さらにユーザがステップ実行を指示すると、出力ＯＵＴに到達して演算シミュレーションを終了する。
【００５９】
図９の（ｂ）に示すステップ実行手順は、ブレークポイント用チェックブロックＣ１で演算シミュレーションを一時停止している状態で、ユーザが連続実行を指示すると、以降の演算順序について、対象ブロックがブレークポイント用チェックブロックになるまで、演算順序「３」〜「４」の演算シミュレーションモデルＳ２〜Ｓ３を一時停止することなく続けて実行し、出力ＯＵＴに到達して演算シミュレーションを終了する。
【００６０】
図９の（ｃ）に示すステップ実行手順は、演算シミュレーションモデルＳ１を実行して演算結果を表示し、演算シミュレーションを一時停止している状態で、ユーザが中断を指示すると、以降の演算順序「２」〜「３」について、演算シミュレーションモデルＳ２〜Ｓ３を実行せずに演算シミュレーションを中止する。
【００６１】
図１０は複数の対象ブロックがブレークポイント用チェックブロックを設定した場合のステップ実行処理を示す。演算結果を表示して演算シミュレーションを一時停止し、上記の演算シミュレーションステップ実行処理を行う。図１０の場合、ブレークポイント用チェックブロックＣ１で演算シミュレーションを一時停止している状態で、ユーザが連続実行を指示すると、以降の演算順序について、対象ブロックがブレークポイント用チェックブロックＣ２になるまで、演算順序「３」〜「４」の演算シミュレーションモデルＳ２〜Ｓ３を一時停止することなく連続して実行し、演算順序５のブレークポイント用チェックブロックＣ２で演算結果を表示して演算シミュレーションを一時停止する。さらに、ユーザが連続実行を指示すると、次に演算順序「６」の対象ブロックＢ４の演算シミュレーションモデルＳ４を実行し、出力ＯＵＴに到達して演算シミュレーションを終了する。
【００６２】
以上までのステップ実行において、優先度の高い割込みが発生すると、現在の演算シミュレーションを中断して、割込みの演算シミュレーションを行う。しかし、割込み禁止設定ブロックをシミュレーション中の場合、優先度の高い割込みが発生しても現在の演算シミュレーションを中断せず実行を継続し、割込み禁止解除ブロックをシミュレーション後、割込みの演算シミュレーションを行う。
【００６３】
図１１は、割込み禁止を考慮した演算シミュレーションを最初から実行する例を示す。まず演算順序「１」の対象ブロックＢ１の演算シミュレーションモデルＳ１を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、次に演算順序「２」の割込み禁止設定を行う。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、次に演算順序「３」の対象ブロックＢ２の演算シミュレーションモデルＳ２を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。
【００６４】
ユーザがステップ実行を指示し、さらに割込みが発生すると、割込み禁止設定されているため、割込み用演算シミュレーションモデルＳ１１を割込み演算リストに追加し、次の演算順序「４」の対象ブロックＢ３の演算シミュレーションモデルＳ３を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。
【００６５】
ユーザがステップ実行を指示すると、次に演算順序「５」の割込み禁止解除を行う。ここで演算シミュレーションを一時停止する。ユーザがステッブ実行を指示すると、次に割込み演算リストにある演算順序「１」の対象ブロックＢ１１の演算シミュレーションモデルＳ１１を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、メインの演算シミュレーションに戻り、演算シミュレーションを終了する。
【００６６】
なお、ブレークポイントからステップを実行する場合も同様に演算シミュレーションを行う。
【００６７】
したがって、割込み禁止を考慮した演算シミュレーションのステップ実行を行うことができる。
【００６８】
（３）ブロック演算周期の設定
図２に示す演算周期設定部６４は、ブロック演算周期設定機能により、ブロックに優先度を付与した演算周期を設定し、優先度付きの演算周期を考慮した演算シミュレーションのステップ実行が行えるようにする。
【００６９】
この設定は、ユーザはマウスなどの外部入力装置でブロック図上にあるブロックを一つまたは複数選択し、メニューなどで演算周期設定を実行し、そのブロックに演算周期と優先度を設定する。優先度は、同じ演算周期の別のブロックが存在する場合に、どちらのブロックを優先して演算するかを示す指針である。
【００７０】
設定した演算周期がブロック図を一目見て分かるように、演算周期設定部６４の演算周期強調表示機能は、同じ演算周期のブロックは、たとえば同じ色で縁取りして、同じ強調表示をする。このとき異なる演算周期のブロックは、異なる色で縁取りする。これは、ブロックを塗りつぶすなど別の強調表示でも良い。
【００７１】
図２に示す組込みソフトウェア開発支援システムを利用した場合で説明する。表示用ブロック情報ＤＢ３０にプロパティ情報として演算周期と優先度を追加する。図１２左は、ブロックＢ１に演算周期を周期１，Ｂ２に周期１，Ｂ３に周期２をそれぞれ設定し、Ｂ１とＢ２は同じ演算周期なので優先度をそれぞれ０、１に設定した例を示す。
【００７２】
前記の割込み禁止を考慮したステップ実行と同様に、演算周期を考慮してステップ実行を行う。図１３には演算周期を考慮した演算シミュレーションの実行例（最初から）の場合を示し、１秒経過時は、演算周期１秒のブロックを演算順序「１」から順に演算シミュレーションを行う。演算順序「１」の対象ブロックＢ１の演算シミュレーションモデルＳ１を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、経過時間を進める。
【００７３】
２秒経過時は、演算周期１秒と２秒のブロックについて、優先度の高い方から、それぞれ演算順序「１」から順に演算シミュレーションを行う。優先度２の演算順序「１」の対象ブロックＢ２の演算シミュレーションモデルＳ１を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、優先度１の演算順序「１」の対象ブロックＢ１の演算シミュレーションモデルＳ１を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、経過時間を進める。
【００７４】
３秒経過時、４秒経過時などこれ以降の経過時間についても同様にステップ実行を行う。そして、ユーザが中断を指示するか、あらかじめ設定した演算シミュレーション時間が経過すると、演算シミュレーションを終了する。ブレークポイントからステッブを実行する場合も同様に演算シミュレーションを行う。
【００７５】
したがって、ブロックに簡単に演算周期を設定することができ、可視化することによって異なる演算周期が一目で分かりやすくなる。また、異なる演算周期を考慮した演算シミュレーションのステップ実行ができる。
【００７６】
（４）関数演算周期の設定
図２に示す演算周期設定部６４の関数演算周期設定機能は、演算定義／設計された関数に優先度を付与した演算周期を設定し、優先度付きの演算周期を考慮した演算シミュレーションのステップ実行が行えるようにする。
【００７７】
関数は複数のブロックで構成される。同じ関数内のブロックは同じ演算周期を設定する必要がある。上記のようにすべてのブロックに同じ演算周期を設定する作業は手間がかかる。
【００７８】
そこで、ユーザはマウスなどの外部入力装置でブロック図上にある関数を一つまたは複数選択し、メニューなどで演算周期設定を実行し、その関数に演算周期と優先度を設定する。優先度は、同じ演算周期の別の関数が存在する場合に、どちらの関数を優先して演算するかを示す指針である。関数内のブロックはブロック図の演算順序に従った順番に演算する。
【００７９】
ブロックに演算周期を設定する場合と同様に、設定した演算周期がブロック図を一目見て分かるように、強調表示機能は、同じ演算周期の関数は、たとえば同じ色で縁取りして、同じ強調表示をする。このとき異なる演算周期の関数は、異なる色で縁取りする。これは、関数を塗りつぶすなど別の強調表示でも良い。
【００８０】
図２に示す組込みソフトウェア開発支援システムを利用した場合で説明する。関数情報ＤＢ５０には項目として演算周期と優先度を追加する。図１２右は、関数Ｆｕｎｃ１に演算周期を周期１、Ｆｕｎｃ２に周期２をそれぞれ設定した例を示す。
【００８１】
前記のブロック演算周期の設定と同様に、演算周期を考慮してステップ実行を行う。図１４は演算周期を考慮した演算シミュレーションのステップ実行を最初から行う場合を示す。１秒経過時は、演算周期１秒の関数を構成するブロックを演算順序「１」から順に演算シミュレーションを行う。演算順序「１」の対象ブロックＢ１の演算シミュレーションモデルＳ１を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、経過時間を進める。
【００８２】
２秒経過時は、演算周期１秒と２秒の関数について、優先度の高い方から、それぞれその関数を構成するブロックを演算順序「１」から順に演算シミュレーションを行う。優先度２の関数Ｆ２について、演算順序「１」の対象ブロックＢ２の演算シミュレーションモデルＳ２を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、優先度１の関数Ｆ１について、演算順序「１」の対象ブロックＢ１の演算シミュレーションモデルＳ１を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、経過時間を進める。
【００８３】
３秒経過時、４秒経過時などこれ以降の経過時間についても同様にステッブ実行を行う。また、ユーザが中断を指示するか、あらかじめ設定した演算シミュレーション時間が経過すると、演算シミュレーションを終了する。
【００８４】
なお、ブレークポイントからステップ実行する場合も同様に演算シミュレーションを行う。
【００８５】
したがって、関数に簡単に演算周期を設定することができ、可視化することによって異なる演算周期が一目で分かりやすくなる。また、異なる演算周期を考慮した演算シミュレーションのステップ実行ができる。
【００８６】
（５）汎用チェックブロックの作成
図２に示す汎用チェックブロック作成部６５は、専用のチェックブロックを新規に作成して組込みソフトウェア開発支援システムに追加することなく、開発者が所望するチェック機能を持ったチェックブロックを配置できるようにする。
【００８７】
汎用チェックブロック作成装置６５は、チェックする条件を設定するチェック条件設定機能、このチェック条件設定機能で設定した情報をファイルなどの外部記億媒体に保存するチェック条件保存機能、このチェック条件保存機能で保存した情報をファイルなどの外部記憶媒体から読み込むチェック条件読込機能、このチェック条件読込機能または上記チェック条件設定機能で設定した条件で演算シミュレーション時にチェックを行うチェック実行機能で構成される。以下、これら機能別のチェック機能別の設定方式を説明する。
【００８８】
＜条件式によるチェック＞
上限値チェックや下限値チェックのように、チェック条件として条件式を設定する場合、チェック条件設定機能で条件式を設定する。
【００８９】
たとえば、図１５の（ａ）のように、上限値チェックで「１０を超えないか」を条件とする場合、条件式として「＞１０」を設定する。
【００９０】
チェック実行機能は演算結果が設定されている条件式を満たしているか否かのチェックを行い、満たしている場合にチェックのフラグを立てる。
【００９１】
＜項目によるチェック＞
オーバーフローチェックや桁落ちチェックのように、チェック条件として条件式ではなく項目を設定する場合、チェック条件設定機能でその項目名を設定する。項目名とそのチェック内容を対応付けるもの（たとえば、テーブル）を用意する。
【００９２】
たとえば、図１５の（ｂ）のように、オーバーフローチェックで「オーバーフローにならないか」を条件とする場合、項目名として「ｏｖｅｒｆｌｏｗ」を設定する。オーバーフローを特定できれば良いので、これ以外の項目名でも良い。
【００９３】
チェック実行機能では演算結果が設定されている項目名からそのチェック内容を取得し、チェック内容を満たしているか否かのチェックを行い、満たしている場合にはチェックのフラグを立てる。
【００９４】
いずれの場合も、フラグを立てたい（エラーとなる）場合を条件として設定する。
【００９５】
＜組み合わせによるチェック＞
上下限値チェックのように、チェック条件として複数の条件を設定する場合、チェック条件設定機能ではある一つの条件を設定した後、さらに別の条件を追加設定していく。このとき、組み合わせとして、論理積（ａｎｄ）と論理和（ｏｒ）を設定可能とする。
【００９６】
たとえば、図１５の（ｃ）のように、上下限値チェックで「１以上５以下であるか」を条件とする場合、第一の条件式として「＜１」を設定し、続けて第二の条件式として「＞５」を設定する。二つの条件式を論理和（ｏｒ）で関連付ける。
【００９７】
チェック実行機能では演算結果が設定されているすべての条件を満たしているか否かのチェックを行い、論理積の場合はすべての条件を満たしている場合、論理和の場合は一つでも条件を満たしている場合、チェックのフラグを立てる。
【００９８】
図１６の汎用チェックブロックを考慮した演算シミュレーションのステップ実行を最初から行う場合を示し、前記の割込み禁止を考慮したステップ実行と同様に、汎用化したチェックブロックを利用してステップ実行を行う。
【００９９】
図１６の例では、まず演算順序「１」の対象ブロックＢ１の演算シミュレーションモデルＳ１を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、次に演算順序「２」の汎用チェックブロックＣ１のチェック実行を行い演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステッブ実行を指示すると、次に演算順序「３」の対象ブロックＢ２の演算シミュレーションモデルＳ２を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、演算シミュレーションを終了する。
【０１００】
なお、ブレークポイントからステップ実行する場合も同様に演算シミュレーションを行う。
【０１０１】
したがって、汎用のチェックブロックを作成することで、専用のチェックブロックを新規に作成して組込みソフトウェア開発支援システムに追加することなく、開発者が所望するチェック機能を持ったチェックブロックを配置することができる。また、汎用チェックブロックを考慮した演算シミュレーションのステップ実行ができる。
【０１０２】
（６）デバッグ装置の機能全体でデバッグ実行
上記（１）〜（５）の機能を組み合わせてブロック図を作成し、作成したブロック図を演算シミュレーションすることにより動作を確認する。
【０１０３】
上記の（１）の割込み禁止設定／解除設定を使用して、ブロック図上で割込み禁止を明示的に表現する。上記の（３）ブロック演算周期の設定、および（４）演算周期の設定で、ブロックや関数に適切な演算周期を設定して、それをブロック図上で同じ演算周期を同じ強調表示で可視化する。上記の（５）汎用チェックブロックの作成により、所望の条件を設定して、ブロック図上のチェックしたい箇所に設置する。ブロック図の設計が終わると、演算シミュレーションで動作を確認する。上記の（２）と同様に、ステップ実行により、演算順序を一つずつあるいはブレークポイントの位置まで進めて一時停止し、その時点での演算結果を見ながら詳細な動作確認を行う。
【０１０４】
図１７および図１８に示す演算シミュレーションの実行例では、１秒経過時は、演算周期１秒の関数Ｆ１を構成するブロックを演算順序「１」から順に演算シミュレーションを行う。まず演算順序「１」の対象ブロックＢ１１の演算シミュレーションモデルＳ１１を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステッブ実行を指示すると、次に演算順序「２」の割込み禁止設定を行う。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、次に演算順序「３」の対象ブロックＢ１２の演算シミュレーションモデルＳ１２を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示し、さらに割込みが発生すると、割込み禁止設定されているため、割込み用演算シミュレーションモデルＳ２１を割込み演算リストに追加し、次の演算順序「４」の対象ブロックＢ１３の演算シミュレーションモデルＳ１３を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、次に演算順序「５」の割込み禁止解除を行う。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、次に割込み演算リストにある演算順序「１」の対象ブロックＢ２１の演算シミュレーションモデルＳ２１を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、経過時間を進める。
【０１０５】
２秒経過時は、演算周期１秒と２秒の関数について、優先度の高い方から、それぞれその関数を構成するブロックを演算順序「１」から順に演算シミュレーションを行う。優先度２の関数Ｆ２について、まず演算順序「１」の対象ブロックＢ３１の演算シミュレーションモデルＳ３１を実行して演算結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、次に演算順序「２」の汎用チェックブロックＣ１のチェック実行を行いチェック結果を表示する。ここで演算シミュレーションを一時停止する。ユーザがステップ実行を指示すると、優先度１の関数Ｆ１について、演算順序「１」の対象ブロックＢ１１の演算シミュレーションモデルＳ１１から順に上記１秒経過時と同様にステップ実行を行う。
【０１０６】
３秒経過時、４秒経過時などこれ以降の経過時間についても同様にステッブ実行を行う。ユーザが中断を指示するか、あらかじめ設定した演算シミュレーション時間が経過すると、演算シミュレーションを終了する。
【０１０７】
したがって、割込み禁止、演算周期、汎用チェックブロックを含むブロック図を作成でき、これらを考慮した演算シミュレーションのステップ実行ができる。すなわち、ソースコードをコンパイルして実機に組み込んで動作を確認せずに、ブロック図上でデバッグを簡単に行うことができる。
【０１０８】
なお、上記までの実施形態に示したデバッグ方法の一部又は全部の処理機能をコンピュータで実行可能にしたプログラムとして提供することができる。
【図面の簡単な説明】
【０１０９】
【図１】本発明の実施形態を示す組込みソフトウェア開発支援システムの基本構成図。
【図２】ブロック図デバッグ装置の機能構成図。
【図３】割込み禁止設定／割込み禁止解除ブロックの情報定義。
【図４】割込み禁止解除の確認の例。
【図５】割込み禁止設定の確認の例。
【図６】演算シミュレーションのステップ実行（最初から）の手順。
【図７】演算シミュレーションのステップ実行例（最初から）。
【図８】演算シミュレーションのステップ実行（ブレークポイントから）の手順。
【図９】演算シミュレーションのステップ実行例（ブレークポイントから）。
【図１０】演算シミュレーションのステップ実行例（ブレークポイントから）。
【図１１】割込み禁止を考慮した演算シミュレーションの実行例（最初から）。
【図１２】演算周期を考慮した表示用ブロック情報ＤＢと関数情報ＤＢの構造。
【図１３】演算周期を考慮した演算シミュレーションの実行例（最初から）。
【図１４】演算周期を考慮した演算シミュレーションの実行例（最初から）。
【図１５】汎用チェックブロックの例。
【図１６】汎用チェックブロックを考慮した演算シミュレーションの実行例（最初から）。
【図１７】演算シミュレーションの実行例。
【図１８】演算シミュレーションの実行例。
【図１９】ブロック図からプログラム自動生成および動作確認の手順図。
【図２０】演算シミュレーションのブレークポイントの設置例。
【符号の説明】
【０１１０】
１００  組込みソフトウェア開発支援システム本体
２００  ブロック情報入力部
３００  ブロック図情報表示部
１０  ユーザ定義ブロック設定装置
２０  ブロック情報定義ＤＢ
３０  表示用ブロック情報ＤＢ
４０  ブロック選択部
５０  関数情報ＤＢ
６０  ブロック図デバッグ装置
【図１】
2010102362.tif 000003
【図２】
2010102362.tif 000004
【図３】
2010102362.tif 000005
【図４】
2010102362.tif 000006
【図５】
2010102362.tif 000007
【図６】
2010102362.tif 000008
【図７】
2010102362.tif 000009
【図８】
2010102362.tif 000010
【図９】
2010102362.tif 000011
【図１０】
2010102362.tif 000012
【図１１】
2010102362.tif 000013
【図１２】
2010102362.tif 000014
【図１３】
2010102362.tif 000015
【図１４】
2010102362.tif 000016
【図１５】
2010102362.tif 000017
【図１６】
2010102362.tif 000018
【図１７】
2010102362.tif 000019
【図１８】
2010102362.tif 000020
【図１９】
2010102362.tif 000021
【図２０】
2010102362.tif 000022