図面 (/)

この項目の情報は公開日時点(2018年3月15日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (4)

課題

解決手段

機器開ループ制御または閉ループ制御するための制御ユニットのオペレーティングソフトウェア20において、ハードウェア依存性のソフトウェア部分を実行する代わりにハードウェア依存性のソフトウェア部分の機能的挙動を等価関数23によってシミュレートする。かかる変更のために、ハードウェア依存性のソフトウェア部分を自動的に同定し、等価関数を自動的に生成する。変更されたオペレーティングソフトウェアは、適切なシミュレーション環境200上にて実行されるときに、技術的システムの実ソフトウェアに依存せずに技術的システムをシミュレートする。

概要

背景

概要

技術的システムオペレーティングソフトウェアとそのハードウェア依存性ソフトウェア部分とをシミュレートできる簡単かつ低コストの手段を提供する。機器開ループ制御または閉ループ制御するための制御ユニットのオペレーティングソフトウェア20において、ハードウェア依存性のソフトウェア部分を実行する代わりにハードウェア依存性のソフトウェア部分の機能的挙動を等価関数23によってシミュレートする。かかる変更のために、ハードウェア依存性のソフトウェア部分を自動的に同定し、等価関数を自動的に生成する。変更されたオペレーティングソフトウェアは、適切なシミュレーション環境200上にて実行されるときに、技術的システムの実ソフトウェアに依存せずに技術的システムをシミュレートする。

目的

コスト上の理由から好適でない1つの代替的手段は、ハードウェアに依存する全てのソフトウェア部分をオペレーティングソフトウェアから完全に排除し、その後、他の可能な限り標準化された類似のハードウェアを用いて、または「ラピッドコントロールプロトタイピング」(RCP)によって、ハードウェア相互作用をシミュレートすることである

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

技術的システムオペレーティングソフトウェア(10)、特に少なくとも1つの技術的機器開ループ制御または閉ループ制御するための制御ユニットのオペレーティングソフトウェア(10)を変更する方法であって、前記技術的システム上にて直接実行可能なオペレーティングソフトウェア(10)を準備するステップ(S0)を有する方法において、さらに、実行が前記技術的システムのハードウェア(100)に依存する、前記オペレーティングソフトウェア(10)のソフトウェア部分(17)を自動的に同定するステップ(S1)と、同定されたハードウェア依存性の前記ソフトウェア部分(17)を、実行が前記技術的システムの前記ハードウェア(100)に依存しない等価関数(23)と置換するステップ(S2)とを有し、前記置換により変更された前記オペレーティングソフトウェア(20)は、シミュレーション環境(200)上における実行時に前記技術的システムを当該技術的システムの前記ハードウェア(100)に依存せずにシミュレートする(S3)ことを特徴とする方法。

請求項2

前記オペレーティングソフトウェア(10)を、前記技術的システム上にて実行可能なバイナリコードの形態で準備し、インタフェース仕様(40)を用いて、前記オペレーティングソフトウェア(10)の前記バイナリコードにおいて、前記ハードウェア依存性のソフトウェア部分(17)を同定する(S1)、請求項1記載の方法。

請求項3

前記インタフェース仕様(40)は、前記技術的システムのハードウェア(100)に固有のバイナリコードパターンを指定するものである、請求項2記載の方法。

請求項4

前記オペレーティングソフトウェア(10)のソースコードを前記バイナリコードに翻訳する際に(S0)、前記インタフェース仕様(40)を使用して、前記オペレーティングソフトウェア(10)における前記ハードウェア依存性のソフトウェア部分(17)へのアクセスを提供するバイナリインタフェース(16)の実装を生成し、前記バイナリコードパターンを、前記バイナリインタフェース(16)から、かつ/または前記バイナリインタフェース(16)の実装から導出する、請求項3記載の方法。

請求項5

前記オペレーティングソフトウェア(10)は、前記技術的システムの前記ハードウェア(100)に依存するインタフェース層(15)であって、当該オペレーティングソフトウェア(10)における前記ハードウェア依存性のソフトウェア部分(17)へのアクセス(16)を提供するインタフェース層(15)を備えており、ハードウェア依存性の前記インタフェース層(15)を、前記等価関数(23)の関数呼び出し(22)を含む等価インタフェース層(21)と置換する、請求項1から4までのいずれか1項記載の方法。

請求項6

前記等価関数(23)が前記シミュレーション環境(200)上にて実行されるときに前記ハードウェア依存性のソフトウェア部分(17)の機能がシミュレートされるように、前記等価関数(23)を自動的に求め、前記等価インタフェース層(15)に、求められた前記等価関数(23)を実行するための関数呼び出し(22)を装備する、請求項5記載の方法。

請求項7

マッピング規則(41)を用いて前記等価関数(23)を求め、前記等価関数(23)が前記シミュレーション環境(200)上にて実行されるときに前記ハードウェア依存性のソフトウェア部分(17)の機能がシミュレートされるように、前記等価関数(23)を前記ハードウェア依存性のソフトウェア部分(17)に対応付け、前記等価インタフェース層(21)に、求められた前記等価関数(23)を実行するための関数呼び出し(22)を装備する、請求項5または6記載の方法。

請求項8

前記マッピング規則(41)を用いて前記等価関数(23)を求める際に、前記ハードウェア依存性のソフトウェア部分(17)の機能記述を考慮し、前記技術的システムのプロセッサ(100)の命令セットをシミュレートする、前記シミュレーション環境(200)の命令セットシミュレータ(202)を用いて、前記機能記述を使用して、前記ハードウェア依存性のソフトウェア部分(17)の機能をシミュレートする、請求項7記載の方法。

請求項9

前記等価インタフェース層(21)は、前記バイナリインタフェース(16)の実装を含み、前記オペレーティングソフトウェア(10,20)の、前記等価インタフェース層(21)外にあるソフトウェア部分(14)が、特に前記等価インタフェース層(21)を用いて、前記等価関数(23)を呼び出せるように、前記関数呼び出し(22)を前記バイナリインタフェース(16)の前記実装に組み込む、請求項5から8までのいずれか1項および請求項4記載の方法。

請求項10

前記インタフェース仕様(40)および/または前記インタフェース層(15)は標準規格準拠したものであり、有利にはAUTSAR規格に準拠したものである、請求項2から9までのいずれか1項記載の方法。

請求項11

前記ハードウェア依存性のソフトウェア部分(17)は、前記オペレーティングソフトウェア(10,20)外にある等価関数(23)であって、前記シミュレーション環境(200)によって前記オペレーティングソフトウェア(10)に依存せずに実行される(S3)等価関数(23)と置換される、請求項1から10までのいずれか1項記載の方法。

請求項12

前記ハードウェア依存性のソフトウェア部分(17)を、バイナリコードの形態および/または前記シミュレーション環境(200)により実行可能なコードの形態の等価関数(23)と置換する、請求項1から11までのいずれか1項記載の方法。

請求項13

技術的システムを、特に少なくとも1つの技術的機器を開ループ制御または閉ループ制御するための制御ユニットを、シミュレーション環境(200)上においてシミュレートする方法であって、請求項1から12までに記載の一方法により前記技術的システムのオペレーティングソフトウェア(10)を変更し(S1,S2)、前記技術的システムをシミュレートするように、変更された前記オペレーティングソフトウェア(20)を前記シミュレーション環境(200)上において実行する(S3)方法。

請求項14

技術的システムのシミュレータ(202)、特に少なくとも1つの技術的機器を開ループ制御または閉ループ制御するための制御ユニットのシミュレータ(202)を備えたシミュレーション環境(200)であって、前記シミュレータ(202)は、前記技術的システムをシミュレートすべく、請求項1から12までのいずれか1項記載の方法により変更された、前記技術的システムのオペレーティングソフトウェア(20)を実行するように構成されている、シミュレーション環境(200)。

請求項15

シミュレーション環境(200)上における実行時に技術的システムをシミュレートするように、請求項1から12までに記載の一方法により変更された、当該技術的システムの変更されたオペレーティングソフトウェア(20)、特に、少なくとも1つの技術的機器を開ループ制御または閉ループ制御するための制御ユニットの変更されたオペレーティングソフトウェア(20)。

技術分野

0001

本発明は、技術的システムオペレーティングソフトウェアの変更と、当該変更がなされたオペレーティングソフトウェアとに関する。本発明はさらに、オペレーティングソフトウェアのシミュレーションと、対応するシミュレーション環境とに関する。とりわけ本発明は、たとえば車両エンジン等の他の技術的機器開ループ制御または閉ループ制御する制御ユニット(「Electronic Control Unit」、ECU)のオペレーティングソフトウェアの変更およびシミュレーションに関する。

0002

技術的システムおよびそのオペレーティングソフトウェアのコンピュータ支援による開発および試験においては、しばしば、実際の技術的システムを仮想システムによりシミュレートし、ソフトウェアモデルとして、適切な開発シミュレーション環境においてシミュレートすることが多い。かかるソフトウェアモデルを用いて、技術的システムのオペレーティングソフトウェアと、技術的システムのハードウェアとの双方を、モデリングすることができる。制御ユニットのソフトウェアモデルは、通常は「仮想制御ユニット」または「仮想電子制御ユニット(Virtual Electronic Control Unit、仮想ECU)」と称される。制御ユニットの試験の際には、たとえばソースコードとなっているオペレーティングソフトウェアを、特定のシミュレーション環境に対して翻訳コンパイル)し、ここでシミュレートし、テストし、場合によっては開発を継続する。

0003

しかし、個別にコンパイルされたオペレーティングソフトウェアに基づいて技術的システムないしは制御ユニットをシミュレートすることは、しばしば問題となることが多い。というのも、技術的システムのオペレーティングソフトウェアとハードウェアとの協働により生じる、ハードウェアに依存する技術的現象は、シミュレーション環境に対して翻訳されたオペレーティングソフトウェアによっては、通常は十分な精度でシミュレートできないからである。その結果、実システム挙動と当該実システムのシミュレーションとの間に不所望の偏差が存在することになる。かかる現象はたとえば、当該マイクロコントローラまたはプロセッサの特性と、その固有命令セットの特性とが、各個別に異なることに起因するものである。少なくとも1つのプロセッサと付加的な周辺装置とを含むマイクロコントローラはしばしば、特に組み込みシステムの分野、たとえば制御ユニットの分野では、シミュレート対象の技術的システムの中心的な構成要素であることが多い。マイクロコントローラの周辺装置は他の問題を引き起こす。というのも、周辺装置とオペレーティングソフトウェアとの技術的な相互作用も、容易にはシミュレートしにくいからである。そうでなくとも、オペレーティングソフトウェアは実際には、全くソースコードになっていないことが多いので、その理由だけで既に、上述のシミュレーション手法に代わる代替手法が必要になる。

0004

コスト上の理由から好適でない1つの代替的手段は、ハードウェアに依存する全てのソフトウェア部分をオペレーティングソフトウェアから完全に排除し、その後、他の可能な限り標準化された類似のハードウェアを用いて、または「ラピッドコントロールプロトタイピング」(RCP)によって、ハードウェア相互作用をシミュレートすることである。しかし、このことは労力かつコストを要し、特に、この回避ソリューションと変更されたオペレーティングソフトウェアとの協働の正確性の観点において、労力かつコストを要する。他のアプローチとして、ハードウェアに依存する個々の機能の実行を回避して、その機能を他の態様で提供することを目指したアプローチがある。このアプローチも、該当のハードウェアと、オペレーティングソフトウェアのハードウェア依存性のソフトウェア部分との双方についての特殊な知識を有する開発エンジニア手動介入を要する。従来、完全自動化されたアプローチは、オペレーティングソフトウェアのハードウェア依存性のソフトウェア部分を完全かつ正確に同定することに既に失敗している。また、ハードウェアのシミュレーションまたはエミュレーションベースとするソリューションも同様に、技術的な労力と、これに付随するコスト上の理由により、既に失敗している。というのも、そのシミュレーション環境ないしはエミュレーション環境は、演算性能に非常に高い要求を課すからである。

0005

上記点に鑑みて、本発明の課題は、技術的システムのオペレーティングソフトウェアとそのハードウェア依存性のソフトウェア部分とをシミュレートできる簡単かつ低コストの手段を実現することである。

0006

前記課題は、独立請求項に記載の、オペレーティングソフトウェアを変更して、変更されたオペレーティングソフトウェアを用いて技術的システムをシミュレートする方法と、シミュレーション環境と、変更されたオペレーティングソフトウェアとによって解決される。独立請求項を引用する請求項に、本発明の有利な実施形態、発展形態が記載されている。

0007

本発明では、技術的システムの提供されたオペレーティングソフトウェアにおいて、最初に、実行が当該技術的システムのハードウェアに依存するソフトウェア部分を自動的に同定する。この自動同定は、シミュレート対象の技術的システムのハードウェアと相互作用するソフトウェア部分に係るものである。次に、この同定されたハードウェア依存性のソフトウェア部分について、実行が技術的システムのハードウェアとの相互作用を要しない、固有の等価関数を求める。この等価関数は技術的システムの実ハードウェアに依存しないので、シミュレーション環境において実行することができる。最後に、ハードウェア依存性のソフトウェア部分が作用を発揮しなくなるように、かつ等価関数が、オペレーティングソフトウェアに必要な、ハードウェア依存性のソフトウェア部分の技術的効果を可能な限り正確にシミュレートするように、ハードウェア依存性のソフトウェア部分をオペレーティングソフトウェアにおいて、当該ハードウェア非依存性の等価関数に置換する。その結果、技術的システムは、変更されたオペレーティングソフトウェアが適切なシミュレーション環境上にてそのハードウェアに依存せずに実行されることにより、シミュレートされることとなる。

0008

変更されたオペレーティングソフトウェアにおいてハードウェア依存性のソフトウェア部分が作用を発揮しなくなるようにこれを置換することは、ハードウェア依存性のソフトウェア部分を該当の等価関数によって完全に置換することによって達成することができる。この場合、変更されたオペレーティングソフトウェアにはハードウェア依存性のソフトウェア部分は残らなくなり、この変更されたオペレーティングソフトウェアにおいては等価関数が、ほぼ1対1でその代わりとなる。なおかつ、変更されたオペレーティングソフトウェアにおいてハードウェア依存性のソフトウェア部分の各部分の代わりに等価関数が呼び出されるように、ハードウェア依存性のソフトウェア部分の呼び出し、呼び出される関数および/またはインタフェース実装のみを変更することも可能である(かつこのことは好適である)。この場合、ハードウェア依存性のソフトウェア部分のバイナリコードの少なくとも一部は、変更されたオペレーティングソフトウェアに残るが、ハードウェアに依存しない機能が、変更されたオペレーティングソフトウェアにおいて、適切に変更された関数、呼び出しおよび/またはインタフェース実装を介して等価関数を呼び出す

0009

オペレーティングソフトウェアの本発明の変更は、少なくとも、ハードウェア依存性のソフトウェア部分が手動のインタラクション無しで同定される限りにおいて自動化されて実施される。さらに、ハードウェアに依存しない等価関数は自動的に生成または算出され、ハードウェア依存性のソフトウェア部分は自動的にこの等価関数に置換されることも有利である。

0010

オペレーティングソフトウェアは技術的システム上にて直接実行可能なものである。すなわち、オペレーティングソフトウェアは実行可能なバイナリコード等になっている。オペレーティングソフトウェアのハードウェア依存性のソフトウェア部分は、技術的システムのハードウェアに、たとえば制御ユニットのマイクロコントローラに、一般的にはマイクロコントローラの周辺装置に、直接アクセスする。かかるアクセスは特に、機械語で命令セットを使用してマイクロコントローラの周辺レジスタに直接行うことができる。

0011

有利には、本発明による変更対象であるオペレーティングソフトウェアは、車両における他の技術的システムを開ループ制御および/または閉ループ制御する電子制御ユニット(ECU)上にインストールされる。オペレーティングソフトウェアのハードウェア依存性のソフトウェア部分は、制御ユニット上にあるマイクロコントローラ、その周辺装置、場合によっては他のハードウェアコンポーネントとインタラクションする。よって、オペレーティングソフトウェアは階層構造の複数のソフトウェア層を含み、たとえばアプリケーション層サービス層(「ミドルウェア(middleware)」)、オペレーティングシステムおよび/またはハードウェア抽象化層を含む。サービス層およびハードウェア抽象化層の具体的な特徴は、AUTSAR規格ランタイム環境(「run time environment」、RTE)およびハードウェア依存性のベースソフトウェア層(「microcontroler abstraction layer」、MCAL)である。本発明では、ハードウェア依存性のベースソフトウェア層に存在するハードウェア依存性のソフトウェア部分が、ハードウェアに依存しない等価関数と置換される。

0012

対応するシミュレーション環境は、当該技術的システムないしは制御ユニットのシミュレータを備えており、これは、本発明により変更されたオペレーティングソフトウェアを実行し、この実行により、技術的システムないしは制御ユニットのハードウェアにアクセスすることなく技術的システムないしは制御ユニットをシミュレートするために適したものである。本発明のシミュレーション方法では、本発明により変更されたオペレーティングソフトウェアをシミュレーション環境上で実行することにより、当該技術的システムないしは制御ユニットをシミュレートする。

0013

シミュレーション環境では、ハードウェア依存性のソフトウェア部分を実行するのではなく、機能等価の等価関数を実行する。この等価関数は、変更されたオペレーティングソフトウェアに組込み構成要素として組み込まれるか、または有利には、シミュレーション環境によって直接実行可能な形態となって、変更されたオペレーティングソフトウェア外に存在して、当該変更されたオペレーティングソフトウェア内にて現在呼び出し側となっている関数へ結果と戻り値を返すことができる。かかる場合、等価関数はたとえば、等価関数を有する関数ライブラリ内に、または等価関数を有する追加関数モジュール内に存在し、オペレーティングソフトウェアのハードウェア非依存性のソフトウェア部分がハードウェア依存性のソフトウェア部分の機能を必要とする場合、直ちにこの関数ライブラリまたは追加関数モジュールの等価関数が呼び出される。これは、オペレーティングソフトウェアの変更された部分を介して提供される。

0014

既に述べたように、オペレーティングソフトウェアは有利には、技術的システムないしは制御ユニットのマイクロコントローラによって直接解釈可能または実行可能なバイナリコードとなっている。ハードウェア依存性のソフトウェア部分はこのバイナリコードにおいて、有利には、少なくとも置換対象のハードウェア依存性のソフトウェア部分を呼び出すためのバイナリインタフェースを指定するインタフェース仕様によって同定される。このインタフェース仕様から、技術的システムのハードウェア依存性のソフトウェア部分に固有である、該当のバイナリインタフェースを特徴付けるバイナリコードパターン導出することができ、特に自動的にも導出することができる。マッピング規則を使用して、変更対象のオペレーティングソフトウェアにおいて、このバイナリコードパターンの元であるハードウェア依存性のソフトウェア部分の実装を自動的に発見することができる。このインタフェース仕様は、権利保護されているものとすることができるが、有利には、関連の工業規格準拠のもの、たとえば自動車産業分野におけるAUTOSAR規格に準拠したものである。

0015

インタフェース仕様は、オペレーティングソフトウェアのソースコードをバイナリコードに翻訳してバイナリインタフェースの実装を生成する際に使用される。このソースコードのレベルにおいてインタフェース仕様は、ハードウェア依存性のソフトウェア部分へのアクセスを提供する、アプリケーションプログラミングのためのインタフェース、いわゆるプログラミングインタフェース(「application programming interfaces」、API)を記述する。このプログラミングインタフェースはバイナリコードのレベルでは、ハードウェア非依存性のソフトウェア部分とハードウェア依存性のソフトウェア部分との間のバイナリインタフェースに相当する。オペレーティングソフトウェアのバイナリコードにおいて該当のバイナリコードパターンを特定することにより、ハードウェア依存性のソフトウェア部分が自動的に同定される。

0016

有利にはオペレーティングソフトウェアのバイナリコードは、オペレーティングソフトウェアのハードウェア依存性のソフトウェア部分を包含しているのでオペレーティングソフトウェアの唯一の層として技術的システムのハードウェアに依存する別個インタフェース層を含むように編成されており、ないしは翻訳される。インタフェース層は、オペレーティングソフトウェアの他の層からハードウェア依存性のソフトウェア部分を呼び出すためのバイナリインタフェースと、ハードウェア依存性のソフトウェア部分自体との双方を含む。かかるインタフェース層を準備するベースも、標準規格となることができ、たとえばAUTOSAR規格となることができる。

0017

同定されたハードウェア依存性のソフトウェア部分を適切な等価関数と置換するステップでは、有利にはインタフェース層のみを変更し、オペレーティングソフトウェアの他の全ての構成要素は変化しないままとすることができる。個々のハードウェア依存性のソフトウェア部分の変更および/またはそのバイナリインタフェース実装の変更を行う代わりに、インタフェース層全体を等価インタフェース層ないしは等価層と置換することができる。これは、変更されたオペレーティングソフトウェアがシミュレーション環境において実行されるときに、ハードウェア依存性のソフトウェア部分に代えて等価関数の関数呼び出しまたはインタフェース層の全部の機能を含む機能を提供するものである。

0018

ハードウェア依存性のソフトウェア部分を置換するためには、シミュレーション環境の実行時にハードウェア依存性のソフトウェア部分の機能をシミュレートする等価関数を求める。よって、これに対応する関数呼び出しは等価層において、インタフェース層のハードウェア依存性のソフトウェア部分の呼び出し、ないしは、該当するバイナリインタフェース実装と置換される。

0019

本発明の有利な一実施形態では、等価関数は、既に挙げたインタフェース仕様および/またはマッピング規則に基づいて求められる。後者は基本的に、ハードウェア依存性のソフトウェア部分および/または該当のバイナリインタフェースの機能記述表現するものであり、これは、ソースコードからオペレーティングソフトウェアのバイナリコードを翻訳ないしは生成する際に用いられる。よって、マッピング規則は等価関数の機能も指定する。この機能記述は、シミュレーション環境を用いてハードウェア依存性のソフトウェア部分の機能をシミュレートするために用いられる。これはたとえば、シミュレーション環境の命令セットシミュレータを用いて行うことができる。この命令セットシミュレータは、技術的システムのプロセッサまたはマイクロコントローラの命令セットをシミュレートするものである。

0020

等価関数は有利には、等価関数ライブラリ内において編纂されている。この等価関数ライブラリは、使用されるシミュレーション環境によってサポートされ、等価層における関数呼び出しはこの等価関数ライブラリの等価関数をポインティングする。この場合、オペレーティングソフトウェアの変更は基本的に、等価層に、適切な等価関数の関数呼び出しを装備すること、またはバイナリインタフェース実装に、対応する関数呼び出しを装備することとなる。よって、たとえば等価関数が等価層に組み込まれる場合には、等価関数はバイナリコードとなっているか、またはシミュレーション環境によって他の態様により実行可能なフォーマットとなっている。

0021

添付の図面を参照した、以下の本発明の実施例の説明および他の代替的な実施態様から、本発明の他の特徴および利点が明らかである。

図面の簡単な説明

0022

本発明の方法のフローチャートである。
オペレーティングソフトウェアの構成(図2a)、および本発明により変更されたオペレーティングソフトウェアの構成(図2b)を示す図である。
本発明の他の実施形態を示す図である。

0023

図2aに、制御ユニット(図示されていない)のマイクロコントローラ100上で実行可能である、制御ユニットのオペレーティングソフトウェア10の構成を概略的に示している。オペレーティングソフトウェア10はバイナリコードの形態、たとえば機械語となっており、制御ユニット上ないしはマイクロコントローラ100上で直接実行することができる。

0024

オペレーティングソフトウェア10は複数のコンポーネントおよび層を有し、その中にはハードウェア依存性の層15が含まれる。これは、オペレーティングソフトウェア10のハードウェアに依存しない部分が制御ユニットのハードウェアに、具体的にはたとえばマイクロコントローラ100の周辺装置にアクセスできるようにするものである。オペレーティングソフトウェア10のうちハードウェアに依存しない部分は特に、アプリケーション層11に存在する。これは通常、アプリケーションエンジニアによって作成され、オペレーティングソフトウェアの重要な機能を果たすものである。アプリケーション層11は場合によっては、適切なランタイム環境(図示されていない)を介して、オペレーティングソフトウェア10の、ハードウェアに近い下位のコンポーネントおよび層とインタラクションすることがある。AUTOSAR規格では、たとえばAUTOSARランタイム環境が、アプリケーション層11とそれより下位の規格準拠層12,13,14との間を仲介する。

0025

オペレーティングシステムコンポーネント12およびドライバコンポーネント13はマイクロコントローラ100に直接アクセスすることができるのに対し、抽象化層14からはインタフェース層15を介して、ハードウェアに依存するアクセスが実行される。抽象化層14は制御ユニット固有の機能を提供し、この機能は、標準化されたインタフェース16を介して、マイクロコントローラ100への本来的なハードウェアアクセス18を行うハードウェア依存性の機能17を呼び出すことにより、制御ユニットのマイクロコントローラ100にアクセスするものである。オペレーティングソフトウェア10の抽象化層14のハードウェア非依存性の部分と、当該オペレーティングソフトウェア10のインタフェース層15のハードウェア依存性の部分との間のインタフェース16は、バイナリインタフェース(「application binary interfaces」、ABI)であり、これは、仕様を用いて導出できるものである。このハードウェアおよび/またはソフトウェアを記述する仕様は、標準規格に準拠するものとなり得る。

0026

図1に、制御ユニットのマイクロコントローラ100上に実装される図2aのオペレーティングソフトウェア10を、シミュレーション環境200上にて実行可能である変更後のオペレーティングソフトウェア20によって変更する本発明の方法を示す。この変更後のオペレーティングソフトウェア20は、制御ユニットおよびマイクロコントローラ100のハードウェアに依存しない。同図では最初に、オペレーティングソフトウェア10のハードウェア依存性のソフトウェア部分ないしは機能17を特定し(ステップS1)、次に、最終的にオペレーティングソフトウェア10の機能的挙動の態様が、シミュレーション環境200上において変更後のオペレーティングソフトウェア20のシミュレーションによって再現できるように(ステップS3)、機能等価の等価関数23に置換する(ステップS2)。図1のステップS1およびS2が、図2aのオペレーティングソフトウェア10から図2bの変更されたオペレーティングソフトウェア20への移行を引き起こす。

0027

図2bに、シミュレーション環境200における変更されたオペレーティングソフトウェア20を示す。シミュレーション環境200は特に、ハードウェア依存性のソフトウェア部分の必要な機能を変換する本来的なシミュレータ201と、命令セットシミュレータ202とから構成される。ステップS1およびS2に従ってオペレーティングソフトウェア10を変更するとき、ハードウェア依存性の機能17を有するインタフェース層15は、実ハードウェアに依存しないインタフェース層21に変換され、そのハードウェア非依存性の等価関数23が、ハードウェア依存性の機能17の機能を提供することとなる。よって、このハードウェアに依存しない新規のインタフェース層21が、元のハードウェア依存性のインタフェース層15に代わるものとなるので、前者はここでは「等価インタフェース層」または単に「等価層」とも称される。等価インタフェース層21の全ての機能、およびその技術的効果は、マイクロコントローラ100と、その周辺装置とに大きく依存しなくなる。というのも、マイクロコントローラ100や周辺装置は、代わりにシミュレーション環境200とインタラクションするからである。特定のプロセッサアーキテクチャまたは具体的なプロセッサの命令セットに対する依存性は、シミュレーション時に、適切な命令セットシミュレータ202の選択によって考慮される。

0028

このようにして等価関数23によりシミュレートされた、ハードウェア依存性の機能17の機能および効果は、変更されたオペレーティングソフトウェア20の他のハードウェア非依存性の部分に対して、たとえば抽象化層14に対してトランスペアレントである。というのも、等価関数23のインタフェース、引数および戻し値は、各対応するハードウェア依存性の機能17と同一であるか、または少なくとも互換性であるからである。とりわけ、図2bの変更されたオペレーティングソフトウェア20のバイナリインタフェース16は、図2aの未変更のオペレーティングソフトウェア10のバイナリインタフェースと同様の態様で使用することができる。

0029

変更されたオペレーティングソフトウェア20ではバイナリインタフェース16を介して、等価関数23を参照する関数呼び出し22が実行され、その後、等価関数23はシミュレーション環境200へのアクセス24を行う。これにより等価インタフェース層21は、ハードウェア依存性のソフトウェア部分の所要の機能的挙動を該当の等価関数23によってシミュレートすべく、マイクロコントローラ100の周辺装置を含めたマイクロコントローラ100へのオペレーティングソフトウェア10のハードウェアアクセス18が、シミュレータ201へのシミュレータアクセス24に置換されるように、ハードウェア依存性のインタフェース層15の機能的挙動をシミュレートする。

0030

こうするためには、ステップS1でインタフェース層15において、まずハードウェア依存性のソフトウェア部分ないしは機能17を自動的に、すなわちオペレータによる手動介入無しで特定し、その後、ステップS2においてこのハードウェア依存性のソフトウェア部分ないしは機能17を、機能等価のハードウェア非依存性の等価関数23に置換する。ハードウェアに依存しない機能、たとえば抽象化層14の機能が、バイナリインタフェース16を介してこの等価関数23の機能を変更無しで要求することができるように、等価関数23は等価インタフェース層21において関数呼び出し22およびシミュレータアクセス24を用いて組み込まれる。

0031

ハードウェア依存性の機能17は図2の実施例では、バイナリコードパターンに基づいて同定される。このバイナリコードパターンは、オペレーティングソフトウェア10のバイナリコードにおいてバイナリインタフェース16を示唆するもの、ないしはバイナリインタフェース16の実装の構成要素である。ターゲットのバイナリコードパターンは、AUTOSAR規格または他の関連規格のインタフェース仕様から得られる。このインタフェース仕様は、ハードウェア依存性の機能17のプログラミングのためのプログラミングインタフェース(API)をソースコードレベルで指定するものであり、このプログラミングインタフェース(API)を用いて、対応するバイナリインタフェース16を導出することができる。図3の実施例を参照して、これについて詳細に説明する。

0032

オペレーティングソフトウェア10のバイナリコード内のバイナリコードパターンは、より高水準プログラミング言語では関数シグネチャと同等のものである。このバイナリコードパターンは、インタフェース仕様に基づいて求められる。すなわち、インタフェース層15内のバイナリインタフェース16の、たとえばUMLモデル(「統一モデリング言語(Unified Modeling Language)」)等の形態の形式記述に基づいて求められる。よってバイナリコードパターンは、ハードウェア依存性のソフトウェア部分を同定する際に(ステップS1)、オペレーティングソフトウェア10のバイナリコードにおけるパターンマッチングプロセスのターゲットパターンとして機能する。このインタフェース仕様により、該当のバイナリインタフェース16を介してバイナリコードでのハードウェア依存性のソフトウェア部分17の呼び出しについての示唆が得られる。規格に基づいてはインタフェース仕様を知ることができない場合には、手動で作成された再利用可能なコンフィギュレーションファイルの形態でインタフェース仕様を調達することもできる。

0033

ステップS2において、置換対象のハードウェア依存性の機能17の機能記述を使用することにより、ハードウェア依存性の機能17を等価関数23に置換する。この機能記述を用いて、機能等価の等価関数23が自動的に算出または生成される。機能記述はここでは、ハードウェア依存性の機能17を等価関数23にマッピングするマッピング規則の一部である。その後、等価関数23は等価インタフェース層21においてハードウェア依存性の機能17と置き換わり、または等価インタフェース層21に組み込まれる。後者の場合、ハードウェア依存性の機能17は、変更されたオペレーティングソフトウェアに依然として存在することができるが、呼び出されなくなる。というのも、変更後のオペレーティングソフトウェア20では、バイナリインタフェース16を介しての関数呼び出し22による呼び出し先が、等価関数23に変更されるからである。

0034

図3の実施形態は、本発明を改めて、オペレーティングソフトウェア10のソースコード30およびバイナリコードと、同様に実行可能なコードの形態となっている変更後のオペレーティングソフトウェア20との関係に基づいて示している。図3では最初に、ステップS1およびS2より前のステップS0において、ソースコード30をバイナリコード10に翻訳(コンパイル)する。この翻訳では、ソースコード30となっているハードウェア非依存性の機能31であって、実行時には、提供されたプログラミングインタフェース32を介してマイクロコントローラ100とのインタラクションを要求するハードウェア非依存性の機能31が、ハードウェア非依存性のバイナリ関数19に翻訳される。さらにバイナリコード10では、バイナリインタフェース16とハードウェア非依存性のバイナリ関数17とを有するインタフェース層15が形成される。

0035

ここではバイナリインタフェース16の実装は、プログラミングインタフェース32とAUTOSARインタフェース仕様40とに基づいて生成され、このAUTOSARインタフェース仕様40からはとりわけ、バイナリインタフェース16の構成と、これに含まれるバイナリコードパターンとを導出することができ、これはステップS1において、バイナリコード10でハードウェア依存性の機能17を同定するために使用される。インタフェース仕様40はプログラミングインタフェース32の機能記述を表現するものであり、翻訳ステップS0によってこの機能記述から、バイナリインタフェース16および該当のバイナリコードパターンの形態のバイナリインタフェースバイナリ記述が生成される。その他、インタフェース仕様40は、ソースコード30で呼び出し可能な機能も指定し、この機能がハードウェア依存性であるか、たとえばハードウェア依存性の機能17であるか、またはハードウェア非依存性であるかを宣言する。

0036

変更されたオペレーティングソフトウェア20を生成する際には、ステップS1に従ってオペレーティングソフトウェア10のバイナリコードにおいてハードウェア依存性の機能17を同定するため、インタフェース仕様40を使用する。その他、図3の実施例では、たとえばマッピングファイル(「map file」)の形態等であるマッピング規則41も使用する。マッピング規則41はステップS2との関係で、同定されたハードウェア依存性の機能17に対し、マイクロコントローラ100のハードウェアとのインタラクションにおいて当該ハードウェア依存性の機能17となる機能と等価である機能を、シミュレーション環境200における実行時に果たす等価関数23を対応付けるために使用される。

0037

マッピング規則41はこの対応付けのために、置換対象のハードウェア依存性の機能17の機能記述を含み、この機能記述に基づいて、適切な等価関数23が算出または生成される。後者の場合、置換対象のハードウェア依存性の機能17の機能はシミュレーション環境200においてこの機能記述に基づいて、場合によっては命令セットシミュレータ202を用いてシミュレートされる。マッピング規則41はさらに、バイナリコード10においてハードウェア依存性の機能を同定する際にも用いることができる。というのも、マッピング規則41は上述の機能記述を用いて、ソースコード30において使用される関数と、バイナリコードに存在するハードウェア依存性の機能17との対応関係も形成するからである。

0038

図2bの実施形態とは異なり、等価関数23は図3の実施形態では等価インタフェース層21に組み込まれず、バイナリインタフェース16の該当の実装に関数アクセス22のみが組み込まれる。この関数アクセス22は、存在するハードウェア依存性の機能17を回避して、その代わりに等価関数23をポインティングするものである。ハードウェア依存性のバイナリ関数17は、バイナリインタフェース16を介して呼び出すことができなくなるので、機能不能となる。等価関数23は等価インタフェース層21外の関数ライブラリ26内に存在し、最終的には、シミュレータアクセス24を介してシミュレーション環境200とインタラクションすることとなる。

0039

バイナリインタフェース16の実装はハードウェア依存性の機能17の置換の過程で、等価関数23を呼び出すように、すなわち対応する関数呼び出し22が装備されるように変更される。その際にはバイナリインタフェース16は、特により上位の層に対しては変化しないままとなる。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ