説明

プログラムの作成支援装置、作成支援方法及び作成支援プログラム

【課題】駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することのできるプログラムの作成支援装置、作成支援方法及び作成支援プログラムを提供する。
【解決手段】複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するためのプログラムの作成支援装置において、モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報I2を記憶する外部記憶装置5と、プログラムの実行に係る演算処理を実行するCPU1と、チャート情報I2における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するエディタープログラムP1とを備えることで、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減するようにした。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するための装置、方法及びプログラムに関する。
【背景技術】
【0002】
車両の制御システムのような大規模な組込みシステムのソフトウェアは、再利用可能なソフトウェア部品であるモジュールを多数組合せて構成されている。モジュールの多くは、一定の周期毎に実行される、定時割り込み型の演算処理として形成されている。そうしたモジュールにはそれぞれ、そのモジュールの演算処理を実行する周期(実行周期)が設定されている。また同じ実行周期で演算処理が実行されるモジュールが複数存在する場合には、その実行周期でのモジュールの実行順序も設定されることになる。
【0003】
なおモジュールの実行順序は、モジュール間の依存関係によって決定されるものとなっている。例えばモジュールAの出力がモジュールBの演算処理で参照される場合には、B→Aの順序でモジュールを実行すると、モジュールBの必要とする情報をモジュールAが出力するまで、モジュールBの実行を一時停止させる必要があり、遅延が問題となる。そのため、こうした場合には、A→Bの順序でモジュールが実行されるように実行順序を設定した方が望ましいことになる。
【0004】
ここで、以下に述べるようなシステムを例に、システムを構成するモジュールを規定の周期毎に実行するためのプログラム、すなわちシステムの駆動プログラムの設定態様を説明する。ここでは、最小実行周期が「1msec」であり、各モジュールの実行周期が「{1、4、16}msec」のいずれかとなるようなシステムを想定して説明する。なお、最小実行周期やモジュールの実行周期は、適用される組込みシステムによって定められるパラメーターとなっている。
【0005】
図7は、上記のような組込みシステムの駆動プログラムのコードの一例を示している。この駆動プログラムは、システムのオペレーティングシステムにより、最小実行周期毎に繰り返し実行されるものとなっている。同図に示すように、駆動プログラムは、同プログラムの実行毎にインクリメントされるカウンターcの値が実行周期の倍数となる毎に、その実行周期のモジュールを呼び出して実行するように形成されている。
【0006】
同図の例では、カウンターcの値をモジュールの実行周期で除算したときの剰余が「0」となるときに、その実行周期のモジュールを実行するように駆動プログラムが構成されている。例えば、実行周期が「1msec」の各モジュール(func1(),func2())は、カウンターcの値を「1」で除算したときに剰余が「0」となるときに、すなわち駆動プログラムが実行される毎に読み込まれて実行されるようになっている。また実行周期が「4msec」の各モジュール(func3(),func4(),func5())は、カウンターcの値を「4」で除算したときに剰余(c%4)が「0」となるときに読み込まれて実行されるようになっている。更に実行周期が「16msec」の各モジュール(func6(),func7(),func8())は、カウンターcの値を「16」で除算したときの剰余(c%16)が「0」となるときに読み込まれて実行されるようになっている。なお、同図に示される駆動プログラムのコードでは、説明を簡単とするために、各モジュールの引数は省略されている。
【0007】
次に、こうした駆動プログラムの従来の作成手順を説明する。図8は、作成する駆動プログラムの雛形となるコードを示している。同図に示すように、この雛形コードには、各実行周期のモジュールの呼び出しコードを差し込ませる箇所が「/*[1msec処理]*/」、「/*[4msec処理]*/」、「/*[16msec処理]*/」といったコメントとして記載されている。こうした箇所に該当するモジュールの呼び出しコードをそれぞれ記入することで、駆動プログラムが作成されるようになっている。
【0008】
こうした駆動プログラムへの各モジュールの登録は、図9に例示するようなモジュール情報のリストを参照して行われる。このリストには、対象とする組込みシステムに必要なモジュールの情報がそれぞれ1つずつ格納されている。また、こうしたリストには、駆動プログラムに登録される各モジュールの情報として、名称、手続き、実行周期の情報がそれぞれ登録されている。ここで名称は、該当モジュールの呼び名であり、手続きは、当該モジュールを呼び出して実行するために駆動プログラムに記述されるコード(呼出コード)となっている。なお手続きの内容は、該当モジュールのプログラムにより決定されるものとなっている。また実行周期は、当該モジュールを実行する周期を示している。ちなみに、同図において実行周期の欄が空白のモジュール(処理4、処理8)は、その実行周期が未定であることを示している。
【0009】
ソフトウェア開発者は、こうしたリストを参照しながら、図8に示した駆動プログラムの雛形コードの該当する箇所に各モジュールの手続き(呼出コード)を挿入して、図7に示すような駆動プログラムを作成する。こうした駆動プログラムへの各モジュールの呼出コードの登録は、ソフトウェア開発者がテキストエディター等を用いて駆動プログラムのコードを手動で編集することで行われる。
【0010】
なお本願に関する従来の技術としては、特許文献1及び2に記載のものがある。これらは、ソフトウェア開発者のコードの記載ミスを低減することで、プログラムの作成効率を向上させるものとなっている。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開平05−289858号公報
【特許文献2】特開平08−328835号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
ところで、上記のような駆動プログラムの作成作業では、ソフトウェア開発者による手動でのプログラムコードの編集により、各モジュールの呼出コードの登録を行っている。そのため、同じモジュールの呼出コードを複数の箇所に記述してしまうモジュールの重複登録やモジュールの呼出コードの記述漏れといった不注意による編集ミスを招くことがある。また駆動プログラムの作成時に参照される図9のようなモジュール情報のリストについても、ソフトウェア開発者が手動で作成しているため、リストの作成段階でモジュールの重複や漏れが発生することもある。
【0013】
本発明は、こうした実状に鑑みてなされたものであって、その解決しようとする課題は、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することのできるプログラムの作成支援装置、作成支援方法及び作成支援プログラムを提供することにある。
【課題を解決するための手段】
【0014】
以下、上記課題を解決するための手段、及びその作用効果を記載する。
上記課題を解決するため、請求項1に記載の発明は、複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するためのプログラムの作成支援装置において、モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報を記憶する記憶装置と、プログラムの実行に係る演算処理を実行する演算処理装置と、を備えている。また請求項1に記載の発明は、演算処理装置により実行されるプログラムとして、チャート情報における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するエディタープログラムを備えるようにしてもいる。
【0015】
上記構成では、駆動プログラムによって呼び出されて実行されるモジュールの全てについてのモジュールの名称及び実行周期の情報がチャート情報として記憶装置に記憶される。また演算処理装置によりエディタープログラムを実行すると、チャート情報における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスが提供されるようになる。
【0016】
ソフトウェア開発者は、エディタープログラムの提供するユーザーインターフェイスを通じて、各モジュールの実行周期の編集を行う。こうしたエディタープログラムでの編集によれば、必要な全てのモジュールについてその実行周期の情報が重複や漏れの無い状態で登録されるようになる。そして駆動プログラムにより呼び出し、実行されるモジュールの全てがチャート情報に登録され、且つ各モジュールの実行周期の情報が漏れ無く登録されていれば、各モジュールの実行周期が記述された、重複や漏れの無い完全なリストが得られることになる。そして、そうした完全なリストを参照しながら駆動プログラムの作成を行うことで、モジュールの重複や漏れの無い駆動プログラムの作成が可能となる。したがって上記構成によれば、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することができるようになる。
【0017】
ところで、実行周期が同一のモジュールが複数存在し、そのモジュール間に依存関係が存在する場合には、各実行周期におけるモジュールの実行順序を規定しておくことが必要となる。そうした場合、請求項2によるように、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報をチャート情報に併せて格納させるとともに、そうした実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供するようにエディタープログラムを構成すれば、重複や漏れの無い完全なモジュール実行順序の情報がチャート情報から得られるようになる。
【0018】
更に請求項3によるように、記憶装置に記憶されたチャート情報を読み込むとともに、そのチャート情報に基づいて同チャート情報の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードを演算処理装置による演算処理を通じて自動生成させる自動生成プログラムを備えるようにしても良い。この場合、チャート情報に登録された実行周期に各モジュールを呼び出して実行する駆動プログラムがチャート情報に基づいて自動的に生成されるようになる。また上記エディタープログラムを用いた編集作業によれば、重複や漏れの無い完全なリストを作成することができる。したがって、上記構成によれば、モジュール登録の重複や漏れの無い駆動プログラムを確実に作成することができるようになる。
【0019】
なおこうした本発明のプログラムの作成支援装置は、請求項4によるように、車両の制御システム用の組込みシステムの駆動プログラムの作成支援に用いることが可能である。
上記課題を解決するため、プログラムの作成支援方法としての請求項5に記載の発明では、複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するための方法であって、情報を記憶する記憶装置及びプログラムの実行に係る演算処理を実行する演算処理装置を用いて以下の各工程を行なうようにしている。すなわち、モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報を前記記憶装置に記憶させる工程と、実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するエディタープログラムを演算処理装置に実行させるとともに、そのエディタープログラムの提供するインターフェイスを通じてチャート情報における各モジュールの実行周期の情報を編集する工程と、である。
【0020】
こうした作成支援方法では、駆動プログラムによって呼び出されて実行されるモジュールの全てについての名称及び実行周期の情報がチャート情報として記憶装置に記憶されるようになる。また演算処理装置にエディタープログラムを実行させると、チャート情報における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスが提供されるようになる。こうしたユーザーインターフェイスでの編集を通じては、各モジュールの実行周期が記述された、重複や漏れの無い完全なリストが得られるようになる。そしてそうした完全なリストを参照しながら駆動プログラムの作成を行うことで、モジュールの重複や漏れの無い駆動プログラムの作成が可能となる。したがって上記方法によれば、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することができるようになる。
【0021】
また実行周期が同一のモジュールが複数存在し、そのモジュール間に依存関係が存在する場合には、請求項6によるように、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報をチャート情報に併せて格納させるとともに、そうした実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供するようにエディタープログラムを構成すれば、重複や漏れの無い完全なモジュール実行順序の情報がチャート情報から得られるようになる。
【0022】
更に請求項7によるように、記憶装置に記憶された前記チャート情報に基づいてそのチャート情報の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードを前記演算処理装置に自動生成させる工程を備えるようにすれば、モジュール登録の重複や漏れの無い駆動プログラムを確実に作成することができるようになる。
【0023】
なおこうした本発明のプログラムの作成支援方法は、請求項8によるように、車両の制御システム用の組込みシステムの駆動プログラムの作成支援に用いることが可能である。
上記課題を解決するため、請求項9に記載の発明は、複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するためのプログラムの作成支援プログラムにおいて、次の各ステップを備えるようにしている。すなわち、モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報を記憶装置から読み出すステップと、そのチャート情報における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するステップと、である。
【0024】
こうした作成支援プログラムでは、記憶装置から読み込まれたチャート情報における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスが提供されるようになる。そしてソフトウェア開発者は、その提供されたユーザーインターフェイスを通じて、各モジュールの実行周期の編集を行うことになる。こうしたユーザーインターフェイスを通じた編集作業によれば、必要な全てのモジュールの情報が重複や漏れの無い状態で登録されるようになる。そのため、各モジュールの実行周期が記述された、重複や漏れの無い完全なリストが得られるようになり、そのリストを参照しながら駆動プログラムの作成を行うことで、モジュールの重複や漏れの無い駆動プログラムの作成が可能となる。したがって上記作成支援プログラムによれば、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することができるようになる。
【0025】
また実行周期が同一のモジュールが複数存在し、そのモジュール間に依存関係が存在する場合には、請求項10によるように、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報をチャート情報に併せて格納させるとともに、ユーザーインターフェイスの提供に係るステップにおいて、そうした実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供するようにすれば、重複や漏れの無い完全なモジュール実行順序の情報がチャート情報から得られるようになる。
【0026】
更に請求項11によるように、記憶装置に記憶された前記チャート情報を読み込むとともに、そのチャート情報に基づいて同チャート情報の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードを自動生成するステップを備えるようにすれば、モジュール登録の重複や漏れの無い駆動プログラムを確実に作成することができるようになる。
【0027】
なおこうした本発明のプログラムの作成支援プログラムは、請求項12によるように、車両の制御システム用の組込みシステムの駆動プログラムの作成支援に用いることが可能である。
【図面の簡単な説明】
【0028】
【図1】本発明の一実施形態に係るプログラムの作成支援装置の全体構造を模式的に示す略図。
【図2】同実施形態のエディタープログラムにより自動生成されるチャート情報について、(a)はその生成開始時の状態を、(b)はその生成途中の状態を、(c)はその生成完了時の状態をそれぞれ示す表図。
【図3】同実施形態に採用されるエディタープログラムの提供するユーザーインターフェイスの編集画面の一例を示す図。
【図4】同ユーザーインターフェイスでのモジュール実行周期の変更操作について、(a)はその変更中の状態を、(b)はその変更後の状態をそれぞれ示す図。
【図5】同ユーザーインターフェイスでのモジュール実行順序の変更操作について、(a)はその変更中の状態を、(b)はその変更後の状態をそれぞれ示す図。
【図6】同自動生成プログラムの処理手順を示すフローチャート。
【図7】組込みシステムの駆動プログラムのコードの一例を示す図。
【図8】駆動プログラムの雛形のコードの一例を示す図。
【図9】同駆動プログラムの作成時に参照されるモジュール情報の一例を示す図。
【発明を実施するための形態】
【0029】
以下、本発明を具体化した一実施形態を、図1〜図9を参照して詳細に説明する。なお本実施の形態のプログラムの作成支援装置、作成支援方法及び作成支援プログラムは、組込みシステムとしての車両の制御システムの駆動プログラムの作成を支援するものとなっている。なお本実施の形態に係る装置、方法、プログラムの支援の元に作成される駆動プログラムは、図7に例示したような構造を有するものとなっている。すなわち、この駆動プログラムは、各モジュールを必要な周期に読み込んで実行するプログラムとして構成されている。なお本実施の形態においても、最小実行周期が「1msec」であり、各モジュールの実行周期が「{1、4、16}msec」のいずれかとなるようなシステムが想定されている。
【0030】
ちなみに実際の駆動プログラムには、呼び出して実行するモジュールのタスクの優先度を定義するコードや、イベント駆動型のモジュールを実行するためのコードが記述されているが、ここでは説明の簡単のため、これらについての説明は省略することにする。
【0031】
図1は、本実施の形態のプログラムの作成支援装置の全体構造を示している。同図に示すように、この作成支援装置は、中央演算処理装置(CPU)1を中心に構成されている。CPU1には、実行中のプログラムや処理中のデータが読み込まれる主記憶装置2、CPU1の演算結果等を表示する表示装置3、ソフトウェア開発者の入力操作を受け付ける入力装置4、及びデータやプログラムが記憶される外部記憶装置5が接続されている。
【0032】
本実施の形態の作成支援装置の外部記憶装置5には、モジュール情報I1及びチャート情報I2などのデータや、エディタープログラムP1や自動生成プログラムP2などプログラムが記憶されている。CPU1は、必要に応じて、外部記憶装置5から主記憶装置2にプログラムやデータを読み込んで、プログラムの実行やデータの操作を実施する。
【0033】
モジュール情報I1は、図9に例示したようなデータ構造を有した情報のリストとなっている。モジュール情報I1には、駆動プログラムに登録される全てのモジュールの情報がそれぞれ1つずつ格納されている。各モジュールの情報としては、名称、手続き、実行周期の情報がそれぞれ登録されている。ここで名称は、該当モジュールの呼び名であり、手続きは、当該モジュールを呼び出して実行するために駆動プログラムに記述されるコード(呼出コード)となっている。また実行周期は、当該モジュールを実行する周期を示している。こうしたモジュール情報I1は、ソフトウェア開発者によって予め作成され、外部記憶装置5に記憶されるものとなっている。ちなみに、こうしたモジュール情報I1に格納される各モジュールの実行周期は、仮のものであり、後の編集工程において変更され得るものとなっている。またモジュール情報I1に実行周期が未定のモジュールについては、その実行周期を未定義のままとすることが許容されており、その場合のそのモジュールの実行周期の欄は、空白としておくことになっている。
【0034】
またチャート情報I2は、駆動プログラムに登録されるモジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたリストとして構成されている。こうしたチャート情報I2は、エディタープログラムP1によって、モジュール情報I1を基に自動生成されるものとなっている。具体的には、チャート情報I2のリストは、実行周期の列とメンバーの列とにより構成されている。そして各行の実行周期の欄には、実行周期の値が、各行のメンバーの欄には同行の実行周期の欄の値に示される実行周期が設定された各モジュールの名称がそれぞれ格納されるようになっている。なお、各実行周期のメンバー欄におけるモジュールの名称の記述の順序は、その実行周期におけるモジュールの実行順序を示すものとなっている。
【0035】
一方、エディタープログラムP1は、チャート情報I2を生成するとともに、そのチャート情報I2における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するプログラムとして構成されている。また自動生成プログラムP2は、外部記憶装置5に記憶されたチャート情報I2を読み込むとともに、そのチャート情報I2に基づいて同チャート情報I2の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムをCPU1による演算処理を通じて自動生成させるプログラムとして構成されている。なお、これらエディタープログラムP1及び自動生成プログラムP2は、必要に応じて主記憶装置2に読み込まれ、CPU1により実行されるようになっている。
【0036】
次にエディタープログラムP1によるチャート情報I2の自動生成について説明する。エディタープログラムP1は、その起動時に外部記憶装置5からモジュール情報I1を読み込むとともに、そのモジュール情報I1に基づいてチャート情報I2を生成するようにしている。
【0037】
図2(a)は、生成開始時のチャート情報I2の状態を示している。同図に示すように、初期状態のチャート情報I2は、情報が一切格納されておらず、情報を格納する欄の全てが空欄となっている。
【0038】
チャート情報I2の生成を開始すると、エディタープログラムP1は、モジュール情報I1の先頭から順に各行の情報を読み込み、チャート情報I2に情報を順に追加する。このチャート情報I2への情報の追加は、次の手順(a)〜(c)を繰り返すことで行われる。
(a)チャート情報I2のリストの実行周期の欄に、読み込んだモジュール情報I1の行の実行周期の欄の値と同じ値の欄が無ければ、チャート情報I2のリストにその実行周期の欄を追加する。そして読み込んだモジュール情報I1の行の名称の欄に記述されたモジュール名称の文字列をその行のメンバーの欄に記述する。
(b)チャート情報I2のリストの実行周期の欄に、読み込んだモジュール情報I1の行に示される実行周期の値と同じ値の欄があれば、読み込んだモジュール情報I1の行に示されるモジュール名称の文字列をその行のメンバーの欄に追加する。
(c)読み込んだモジュール情報I1の行の実行周期の欄が空欄であれば、実行周期の欄が未定義の行に(無ければ値が未定義の実行周期の欄を新規に作成して)、読み込んだモジュール情報I1の行に示されるモジュール名称の文字列をその行のメンバーの欄に追加する。
【0039】
例えば、図2示されるようにモジュール情報I1が設定されている場合、エディタープログラムP1はまずモジュール情報I1の先頭行を読み込む。この先頭行の実況周期の欄の値は、「1(msec)」であり、名称の欄の値は「処理1」となっている。初期状態のチャート情報I2には当然ながら、値が「1」の実行周期の欄は存在しない。そこでエディタープログラムP1は、図2(b)に示すように、チャート情報I2のリストに、値が「1」の実行周期の欄を追加し、その行のメンバーの欄に文字列「処理1」を記述する。以後、エディタープログラムP1は、モジュール情報I1の各行を先頭から順に読み込み、必要に応じて実行周期の欄を追加しながら、チャート情報I2に情報を追加する。そしてモジュール情報I1の最終行の処理を終えると、図2(c)に示されるようなリストがチャート情報I2として生成されることになる。
【0040】
チャート情報I2の生成後、エディタープログラムP1は、編集プロセスに移行する。編集プロセスに移行すると、エディタープログラムP1は、生成したチャート情報I2に基づいて図3に示すような編集画面を生成して、表示装置3に表示させる。この編集画面には、実行周期の値が表示される領域と、モジュールの名称を示すアイコンが表示される領域とが、値が「未定」のものも含めて実行周期毎に設けられている。具体的には実行周期の値が表示される実行周期欄が左側の列に配置され、各モジュールのアイコンが配置されるメンバー欄が右側の列に配置された表図として、編集画面が表示されるようになっている。
【0041】
こうした編集画面では、モジュールの実行周期の変更と実行順序の変更とを行うことができるようになっている。その一方、この編集画面では、モジュールの新規追加や削除は行えないようになっている。
【0042】
まずモジュールの実行周期の変更のための操作手順について説明する。実行周期の変更は、編集画面のメンバー欄に配置された該当モジュールのアイコンを選択し、ドラッグ・アンド・ドロップにより他の実行周期のメンバー欄に移動することで行うことができる。例えば図4(a)に示すように、実行周期の値が「未定」の行のメンバー欄に配置された「処理4」のアイコンを選択して実行周期が「4msec」の行のメンバー欄まで移動させると、同図(b)に示すように、「処理4」のアイコンが実行周期が「4msec」の行のメンバー欄に移動するようになる。
【0043】
次にモジュールの実行順序の変更のための操作手順について説明する。実行順序の変更は、編集画面のメンバー欄に配置された該当モジュールのアイコンを選択し、ドラッグ・アンド・ドロップにより同じメンバー欄の他の行に移動することで行うことができる。例えば図5(a)に示すように、実行周期の値が「4msec」の行のメンバー欄の3行目に配置された「処理4」のアイコンを選択して、同メンバー欄の1行目と2行目との間に移動させると、同図(b)に示すように「処理4」のアイコンは、実行周期の値が「4msec」の行のメンバー欄の2行目に移動するようになる。
【0044】
こうして編集画面上でアイコンが移動されると、エディタープログラムP1は、その表示に併せてチャート情報I2の更新を行う。例えば図4の操作の例では、チャート情報I2の実行周期の値が「未定」の行のメンバー欄から文字列「処理4」の記述が削除されるとともに、同チャート情報I2の実行周期の値が「4msec」の行のメンバー欄の末尾に、文字列「処理4」の記述が追加されることになる。また図5の操作の例では、チャート情報I2の実行周期の値が「4msec」の行のメンバー欄におけるモジュールの記述順序が、「処理3」→「処理5」→「処理4」の順から「処理3」→「処理4」→「処理5」の順に変更されるようになる。
【0045】
こうしたチャート情報I2の編集作業は、全てのモジュールの実行周期が正式に定義されるまで続けられる。編集作業が完了した後、自動生成プログラムP2を実行すると、完成されたチャート情報I2の内容を反映した駆動プログラムのコードが自動的に生成される。自動生成プログラムP2は、外部記憶装置5に記憶されたチャート情報I2を読み込むとともに、そのチャート情報I2に基づいて同チャート情報I2の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードをCPU1による演算処理を通じて自動生成させるように構成されている。
【0046】
図6は、こうした自動生成プログラムの処理手順を示している。この自動生成プログラムは、モジュール情報I1、チャート情報I2、及び図8に例示したような駆動プログラムの雛形コードを入力とし、駆動プログラムのコードが記述されたファイルを出力するプログラムとして構成されている。
【0047】
プログラムが実行されると、自動生成プログラムP2はまずステップS100において、全てのモジュールの実行周期が定義されているか否かを確認する。すなわち、自動生成プログラムP2は、チャート情報I2の実行周期の欄の値が「未定」の行のメンバー欄が空欄であるか否かを確認する。ここで実行周期が未定のモジュールが残っていれば(S100:NO)、自動生成プログラムP2はそのまま終了する。なお同図のフローチャートでは省略されているが、このときの自動生成プログラムP2は、実行周期が未定義のモジュールが存在する旨のエラーメッセージを表示装置3に表示させるようになっている。
【0048】
一方、全モジュールの実行周期が定義済みであれば(S100:YES)、自動生成プログラムP2はステップS101の処理に進む。ステップS101の処理に進むと、自動生成プログラムP2は、そのステップS101において、雛形コードの先頭の行の文字列を読み込む。例えば、図8の例のように雛形プログラムが構成されている場合には、「void exec(void)」という文字列がここで読み込まれることになる。
【0049】
続いて自動生成プログラムP2は、ステップS102において、読み込んだ文字列が差込箇所を示すものであるか否かを確認する。図8の雛形コードの例では、差込箇所は、「/*[{1,4,16}msec処理]*/」という文字列で表されている。ここで読み込んだ文字列が差込箇所を示すものでないときには(S102:NO)、自動生成プログラムP2は、ステップS103において、読み込んだ文字列をそのまま駆動プログラムのファイルの末尾に追加して、処理をステップS107に進める。一方、読み込んだ文字列が差込箇所であることを示すものであれば(S102:YES)、ステップS104〜ステップS106の処理を実施した後、処理をステップS107に進める。
【0050】
処理がステップS104に進むと、自動生成プログラムP2は、そのステップS104において、差込箇所の文字列に示される実行周期の値を読み取るとともに、チャート情報I2の該当する実行周期の行のメンバー欄の内容を、すなわち該当実行周期の各モジュールの名称の文字列を読み込む。そして自動生成プログラムP2は続くステップS105において、読み込んだモジュール名称の文字列をキーとしてモジュール情報I1を検索し、その名称に対応する手続き(呼出コード)の欄の内容を読み込む。また自動生成プログラムP2は、続くステップS106において読み込んだ手続きの文字列を駆動プログラムのファイルの末尾に追加して、処理をステップS107に進める。なお、チャート情報I2の該当する実行周期の行のメンバー欄に複数のモジュールの名称が格納されている場合には、駆動プログラムのファイルの末尾への手続きの文字列の追加は、チャート情報のメンバー欄の名称の記述順序に従って行われる。
【0051】
処理がステップS107に進むと、自動生成プログラムP2は、そのステップS107において、雛形コードから読み込んだ行が同雛形コードの末尾であるか否かを確認する。ここで読み込んだ行が雛形コードの末尾でなければ(S107:NO)、自動生成プログラムP2は、ステップS108において雛形コードの次の行の文字列を読み込んだ後、ステップS102の処理に戻る。一方、読み込んだ行が雛形コードの末尾であれば、自動生成プログラムP2はその時点で終了する。
【0052】
以上により、チャート情報I2に示される実行周期、実行周期で各モジュールを読み込んで実行する駆動プログラムのコードが自動生成されるようになる。こうして生成された駆動プログラムのコードは、例えば図7に示されるようなものとなる。
【0053】
なお以上の本実施の形態では、外部記憶装置5が上記記憶装置に、CPU1が上記演算処理装置にそれぞれ対応する構成となっている。また本実施の形態の作成支援プログラムは、エディタープログラムP1及び自動生成プログラムP2の2つのプログラムにより構成されている。
【0054】
以上説明した本実施形態のプログラムの作成支援装置、作成支援方法及び作成支援プログラムによれば、次の効果を奏することができる。
(1)本実施の形態に係るプログラムの作成支援装置は、モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報I2を記憶する外部記憶装置5と、プログラムの実行に係る演算処理を実行するCPU1と、を備えている。また本実施の形態の作成支援装置は、CPU1により実行されるプログラムとして、チャート情報I2における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するエディタープログラムP1を備えるようにしてもいる。ソフトウェア開発者は、エディタープログラムP1の提供するユーザーインターフェイスを通じて、各モジュールの実行周期の編集を行う。こうしたエディタープログラムP1での編集によれば、必要な全てのモジュールについてその実行周期の情報が重複や漏れの無い状態で登録されるようになる。そして駆動プログラムにより呼び出されて実行されるモジュールの全てがチャート情報I2に登録され、且つ各モジュールの実行周期の情報が抜け無く登録されていれば、各モジュールの実行周期が記述された、重複や漏れの無い完全なリストが得られることになる。そのため、そうした完全なリストを参照しながら駆動プログラムを作成することができるようになり、モジュールの重複や漏れの無い駆動プログラムの作成が可能となる。したがって本実施の形態のプログラムの作成支援装置によれば、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することができるようになる。
【0055】
(2)本実施の形態に係るプログラムの作成支援方法では、情報を記憶する外部記憶装置5及びプログラムの実行に係る演算処理を実行するCPU1を用いて以下の2つの工程を行なうようにしている。すなわち、第1の工程は、モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報I2を外部記憶装置5に記憶させる工程となっている。また第2の工程は、実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するエディタープログラムP1をCPU1に実行させるとともに、そのエディタープログラムの提供するインターフェイスを通じてチャート情報I2における各モジュールの実行周期の情報を編集する工程となっている。こうした作成支援方法では、エディタープログラムP1の提供するユーザーインターフェイスでの編集作業を通じて、各モジュールの実行周期が記述された、重複や漏れの無い完全なリストが得られるようになる。そのため、そうした完全なリストを参照しながら駆動プログラムを作成することができるようになり、モジュールの重複や漏れの無い駆動プログラムの作成が可能となる。したがって本実施の形態のプログラムの作成支援方法によれば、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することができるようになる。
【0056】
(3)本実施の形態に係るプログラムの作成支援プログラムでは、複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するためのプログラムの作成支援プログラムにおいて、次の2つのステップを備えるようにしている。すなわち、第1のステップは、モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報I2を外部記憶装置5から読み出すステップとなっている。また、第2のステップは、そのチャート情報I2における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するステップとなっている。こうして提供されるユーザーインターフェイスを通じた編集作業によれば、必要な全てのモジュールの情報が重複や漏れの無い状態で登録されるようになる。そのため、各モジュールの実行周期が記述された、重複や漏れの無い完全なリストが得られるようになり、そのリストを参照しながら駆動プログラムの作成を行うことで、モジュールの重複や漏れの無い駆動プログラムの作成が可能となる。したがって本実施の形態の作成支援プログラムによれば、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することができるようになる。
【0057】
(4)本実施の形態に係るプログラムの作成支援装置では、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報をチャート情報I2に併せて格納させるとともに、そうした実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供するようにエディタープログラムP1を構成するようにしている。また本実施の形態に係るプログラムの作成支援方法では、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報をチャート情報I2に併せて格納させるとともに、そうした実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供するようにエディタープログラムP1を構成するようにしている。更に本実施の形態に係るプログラムの作成支援プログラムでは、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報をチャート情報I2に併せて格納させるようにしている。またこれとともに、ユーザーインターフェイスの提供に係るステップにおいて、そうした実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供するようにしている。実行周期が同一のモジュールが複数存在し、そのモジュール間に依存関係が存在する場合には、各実行周期におけるモジュールの実行順序を規定しておくことが必要となる。その点、本実施の形態では、重複や漏れの無いかたちで各モジュールの実行順序を定義することが可能であり、重複や漏れの無い完全なモジュール実行順序の情報がチャート情報I2から得られるようになり、ひいては、モジュールの実行順序が適正に定義された駆動プログラムの作成が可能となる。
【0058】
(5)本実施の形態に係るプログラムの作成支援装置では、自動生成プログラムP2を備えるようにしている。この自動生成プログラムP2は、外部記憶装置5に記憶されたチャート情報I2を読み込むとともに、そのチャート情報I2に基づいて同チャート情報I2の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードをCPU1による演算処理を通じて自動生成させるものとなっている。また本実施の形態に係るプログラムの作成支援方法では、外部記憶装置5に記憶されたチャート情報I2に基づいてそのチャート情報I2の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードをCPU1に自動生成させる工程を備えるようにしている。更に本実施の形態に係るプログラムの作成支援プログラムでは、外部記憶装置5に記憶されたチャート情報I2を読み込むとともに、そのチャート情報I2に基づいて同チャート情報I2の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードを自動生成するステップを備えるようにしている。こうした本実施の形態では、チャート情報I2に登録された実行周期に各モジュールを呼び出して実行する駆動プログラムがチャート情報I2に基づいて自動的に生成されるようになる。また上記エディタープログラムP1を用いた編集作業によれば、重複や漏れの無い完全なリストを作成することができる。したがって、本実施の形態によれば、モジュール登録の重複や漏れの無い駆動プログラムを確実に作成することができるようになる。
【0059】
なお上記実施の形態は、以下のように変更して実施することもできる。
・上記実施の形態においてエディタープログラムP1により提供される編集画面の構成やその編集画面での実行周期、実行順序の変更のための操作の仕方は、すなわちエディタープログラムP1により提供される実行周期及び実行順序の編集に係るユーザーインターフェイスの構成は、必要に応じて適宜変更しても良い。例えば実行周期をノードとするツリー状の図形として編集画面を構成するようにしても良い。
【0060】
・上記実施の形態では、エディタープログラムP1の提供するユーザーインターフェイスを通じてモジュールの実行周期及び実行順序の編集されたチャート情報I2に基づき、自動生成プログラムP2が駆動プログラムを自動生成するようにしていた。こうした駆動プログラムの生成を手動で行うようにしても、駆動プログラムへのモジュール呼出コードの登録ミスを効果的に低減することは可能である。すなわち、エディタープログラムP1による編集後のチャート情報I2のリストを、表示装置や印字装置に出力するとともに、出力されたリストを参照しながら駆動プログラムの作成を行うことで、駆動プログラムへのモジュール呼出コードの登録ミスは効果的に低減されるようになる。これが可能なのは、エディタープログラムP1による編集後のチャート情報I2には、重複や漏れの無い状態で各モジュールの実行周期及び実行順序の情報が格納されているためである。
【0061】
・上記実施の形態では、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報をチャート情報I2に併せて格納するようにしていた。またそうした実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供するようにエディタープログラムP1を構成するようにもしていた。しかしながら、モジュール間に依存関係が無いようなシステムでは、各モジュールの実行順序を定義する必要はなく、そうした場合には、チャート情報I2への実行順序の情報の格納、及びエディタープログラムP1による実行順序の情報の書き換えを行うためのユーザーインターフェイスの提供を割愛するようにしても良い。
【0062】
・上記実施の形態では、車両の制御システム用の駆動プログラムを作成支援の対象とする場合について説明した。ただし、本発明に係るプログラムの作成支援装置、作成支援方法及び作成支援プログラムは、車両の制御システム以外の組込みシステムに用いられる駆動プログラムの作成支援にも、用いることが可能である。
【符号の説明】
【0063】
1…中央演算処理装置(CPU)、2…主記憶装置、3…表示装置、4…入力装置、5…外部記憶装置、I1…モジュール情報、I2…チャート情報、P1…エディタープログラム、P2…自動生成プログラム。

【特許請求の範囲】
【請求項1】
複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するためのプログラムの作成支援装置において、
前記モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報を記憶する記憶装置と、
プログラムの実行に係る演算処理を実行する演算処理装置と、
前記チャート情報における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するエディタープログラムと、
を備えることを特徴とするプログラムの作成支援装置。
【請求項2】
前記チャート情報には、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報が併せて格納されるとともに、
前記エディタープログラムは、前記実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供する
ことを特徴とする請求項1に記載のプログラムの作成支援装置。
【請求項3】
前記記憶装置に記憶された前記チャート情報を読み込むとともに、そのチャート情報に基づいて同チャート情報の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードを前記演算処理装置による演算処理を通じて自動生成させる自動生成プログラムを備える
ことを特徴とする請求項1又は2に記載のプログラムの作成支援装置。
【請求項4】
前記組込みシステムは、車両の制御システムである
請求項1〜3のいずれか1項に記載のプログラムの作成支援装置。
【請求項5】
複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するための方法であって、
情報を記憶する記憶装置及びプログラムの実行に係る演算処理を実行する演算処理装置を用いるとともに、
前記モジュールの全てについてその名称とその実行周期とが情報としてそれぞれ格納されたチャート情報を前記記憶装置に記憶させる工程と、
実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するエディタープログラムを前記演算処理装置に実行させるとともに、そのエディタープログラムの提供するインターフェイスを通じて前記チャート情報における各モジュールの実行周期の情報を編集する工程と、
を備えることを特徴とするプログラムの作成支援方法。
【請求項6】
前記チャート情報には、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報が併せて格納されるとともに、
前記エディタープログラムは、前記実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供する
ことを特徴とする請求項5に記載のプログラムの作成支援方法。
【請求項7】
前記記憶装置に記憶された前記チャート情報に基づいてそのチャート情報の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードを前記演算処理装置に自動生成させる工程を備える
ことを特徴とする請求項5又は6に記載のプログラムの作成支援方法。
【請求項8】
前記組込みシステムは、車両の制御システムである
請求項5〜7のいずれか1項に記載のプログラムの作成支援方法。
【請求項9】
複数のモジュールを組合せて構成される組込みシステムでの各モジュールの呼び出しと実行とを行う駆動プログラムの作成を支援するためのプログラムの作成支援プログラムにおいて、
前記モジュールの全てについてその名称とその実行周期とが情報してそれぞれ格納されたチャート情報を記憶装置から読み出すステップと、
前記チャート情報における各モジュールの実行周期の情報の書き換えを行うためのユーザーインターフェイスを提供するステップと、
を備えることを特徴とするプログラムの作成支援プログラム。
【請求項10】
前記チャート情報には、実行周期が同一の複数のモジュール間におけるモジュールの実行順序の情報が併せて格納されるとともに、
前記ユーザーインターフェイスの提供に係るステップにおいて、前記実行順序の情報の書き換えを行うためのユーザーインターフェイスを併せて提供する
ことを特徴とする請求項9に記載のプログラムの作成支援プログラム。
【請求項11】
前記記憶装置に記憶された前記チャート情報を読み込むとともに、そのチャート情報に基づいて同チャート情報の実行周期の情報に示される実行周期にて該当モジュールを呼び出して実行する駆動プログラムのコードを自動生成するステップを備える
ことを特徴とする請求項9又は10に記載のプログラムの作成支援プログラム。
【請求項12】
前記組込みシステムは、車両の制御システムである
請求項9〜11のいずれか1項に記載のプログラムの作成支援プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−48492(P2011−48492A)
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2009−194709(P2009−194709)
【出願日】平成21年8月25日(2009.8.25)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【出願人】(598088871)キャッツ株式会社 (9)
【Fターム(参考)】