JP2007511817A - 駆動シーケンスを制御するための機能を適合させる方法および装置 - Google Patents

駆動シーケンスを制御するための機能を適合させる方法および装置 Download PDF

Info

Publication number
JP2007511817A
JP2007511817A JP2006537060A JP2006537060A JP2007511817A JP 2007511817 A JP2007511817 A JP 2007511817A JP 2006537060 A JP2006537060 A JP 2006537060A JP 2006537060 A JP2006537060 A JP 2006537060A JP 2007511817 A JP2007511817 A JP 2007511817A
Authority
JP
Japan
Prior art keywords
function
instruction
program
address information
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006537060A
Other languages
English (en)
Other versions
JP4520466B2 (ja
Inventor
ヴァツル、マルティン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of JP2007511817A publication Critical patent/JP2007511817A/ja
Application granted granted Critical
Publication of JP4520466B2 publication Critical patent/JP4520466B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Programmable Controllers (AREA)

Abstract

駆動シーケンスを制御するための機能を適合させる方法と装置であって,その場合に機能は制御するための少なくとも1つのプログラムの少なくとも1つのグローバル変数を使用し,かつこのグローバル変数に,少なくとも1つのメモリ手段内に存在するアドレス情報が対応づけられており,その場合にグローバル変数のこのアドレス情報が,少なくとも1つのロード命令によってメモリ手段からロードされる,前記方法と装置は,ロード命令のグローバル変数のアドレス情報が置き換えられることを特徴としている。
【選択図】図4

Description

本発明は,独立請求項の上位概念に記載された,特に車両における,駆動シーケンスを制御するための機能を適合させる方法および装置に基づいている。同様に,本発明は,上位概念に記載の特徴を有する,それに応じた制御装置並びにそれに応じたコンピュータプログラム製品としての,機能開発のためのそれに応じたコンピュータおよびそれと関連するコンピュータプログラムに基づいている。
特に,エンジン,ブレーキ,トランスミッションなどの制御のための車両制御装置における,制御装置ソフトウェアの機能開発において,新しい制御装置機能を開発してテストするための,バイパスアプリケーションが,ラピッドプロトタイピング方法である。しかし,このような機能開発は,たとえば自動化領域と工作機械領域などにおけるような,他のすべての制御装置アプリケーションにおいても,可能である。
そのための開発方法として,たとえばDE10106504A1に示されているような,外部の制御装置バイパスと,たとえばDE10228610A1に開示されているような,内部の制御装置バイパスの2つのアプリケーションが使用される。
DE10106504A1は,特に自動車の,開ループ制御または閉ループ制御装置の開ループ制御および/または閉ループ制御機能をエミュレートするための方法とエミュレーション装置に関する。エミュレートするために,機能が外部の機能計算機へ移され,その場合にエミュレーションの開始前にエミュレーション計算機のソフトウェアインターフェイスおよび開ループ制御/閉ループ制御装置のソフトウェアインターフェイスを介して,データ接続が形成される。開ループ制御/閉ループ制御装置の新しい開ループ制御/閉ループ制御機能の開発とプログラミングを著しく促進するために,エミュレーションの開始前に様々な開ループ制御/閉ループ制御機能をエミュレートするためのソフトウェアインターフェイスが,ソフトウェアの変更なしで構成されることが提案される。
DE10228610A1は,少なくとも1つのバイパス機能を用いて制御プログラムを検査するための方法と装置を示しており,同方法において,制御プログラムは少なくとも1つのバイパス機能と共に電気的な計算ユニット上で実施される。その場合にバイパス機能の結合は,予め定められたインターフェイスへの動的なリンクによって行われる。
これら2つの挙げられた方法および装置とは関係なく,適用可能性のためには,制御装置ソフトウェア内の介入が必要である。この介入は,バイパスフリーカットまたはソフトウェアフリーカット(SoftwareFreischnitt)という概念で示される。バイパスフリーカットまたはソフトウェアフリーカットは,ソフトウェア機能内で,制御装置変数がソフトウェアプログラムによってではなく,迂回路を介して,たとえばバイパスソフトウェア機能を介して記述される箇所を,正確に記述する。ソフトウェアフリーカットは,極めて個別的であって,ノーマルな場合においては制御装置ソフトウェアプログラムの構成部分とはならない。というのはそのためにメモリリソースが消費されるからである。
機能開発者がソフトウェアフリーカットを有する制御装置プログラムを必要とする場合には,これは開発部門の委任に基づいて初めてプログラムスタンドへ組み込まれる。そのためにソフトウェア開発は手動で該当する機能のソースコードを変更して,コンパイルおよびリンクを介して,明確にプロトタイプアプリのために使用される,新しい制御装置プログラムを形成する。
従来技術に記載されているような方法または装置の欠点は,ラピッドプロトタイピングプログラムスタンドを提供できるまでの長いランスルー時間にある。その場合に主要なファクターは,それと結びついた,ソフトウェア介入を明細化して変換するための,高い技術的および管理的な手間である。
現在の技術状態によれば,比較し得る方法は,ストア命令(制御装置変数への書込みアクセス)のみをサブ機能へのジャンプ命令によって置き換える,という考えに基づいている。しかし,ミックスされた命令セット(16−/32ビットCPU命令)を有するマイクロコントローラにおいては,ストア命令は16ビット幅である可能性がある。アドレッシングはアドレスレジスタを介して間接的に行われるからである。この16ビット幅の命令は,サブ機能の呼出しのためには利用できない。サブ機能の直接的なアドレス指定された呼出しは,32ビット幅のジャンプ命令を必要とするからである。従ってその場合には,従来技術における方法は,制限付きでしか使用できず,純粋な32ビット命令セットを有するマイクロプロセッサにおいてのみ適用できる。すなわち,ストア命令のビット幅が固定されている場合には,機能開発に関するフレキシビリティは,ここでは著しく制限される。これは,所定のストア命令が他の理由からそもそも操作してはならない場合にも当てはまるので,その場合にはサブ機能へのジャンプ命令によるこの種の占有は,不可能である。
従って本発明の課題は,ソフトウェアフリーカットをソースコード変更なしで既存のソフトウェアプログラム内へ挿入し,従来技術における上述した問題を克服することである。
発明の利点
本発明は,好ましくは車両における,駆動シーケンスを制御するための機能を適合させる方法と装置を示しており,その場合に機能は,制御するための少なくとも1つのプログラムの少なくとも1つのグローバル変数を使用し,かつこのグローバル変数に,メモリ手段内に存在するアドレス情報が対応づけられており,その場合にグローバル変数のこのアドレス情報が,少なくとも1つのロード命令によってメモリ手段からロードされ,好ましくはロード命令のグローバル変数のこのアドレス情報が置き換えられる。
その場合に好ましくは,アドレス情報から機能の開始アドレスが求められ,その場合に機能が付加機能によって拡張可能または置き換え可能であるので,駆動シーケンスを制御するための機能が,アドレス情報の置換えにより付加情報に置き換えられ,かつ/または拡張される。
従って本発明は,好ましくは,ソースコード変更なしのソフトウェアフリーカットの「動的懸下」("Dynamic Hooks")である。ここで説明する方法および対応する装置は,ロード命令のアドレス情報を変更し,機能呼出しを変更し,新しいプログラムコードを付加する。これらの変更は,たとえば所望のHEXコード修正に基づいて,既存のソフトウェアプログラムスタンドで実施される。
好ましくはさらに,グローバル変数のアドレス情報が,ポインタ変数のアドレス情報によって置き換えられ,その場合にポインタ変数のアドレス情報は,特に制御装置内のメモリ手段の,予約されたメモリ領域内に存在している。
ロード命令に関する修正に加えて,好ましくは,ストア命令がジャンプ命令によって置き換えられることにより,グローバル変数へのストア命令が操作される。その場合に好ましくは,駆動シーケンスを制御するための機能は,ジャンプ命令によるストア命令の置換えによって,付加機能により置き換えられ,かつ/または拡張される。
上述した装置および方法に従って,本発明によって,この種の装置を含む制御装置およびこの種の方法を実施するのに適したコンピュータプログラムが開示され,かつ本発明の対象となる。このコンピュータプログラムは,そのために,コンピュータ,特に本発明に基づくアプリケーション制御装置配置またはアプリケーションPC上で実施される。その場合に本発明に基づくコンピュータプログラムは,機械読み取り可能な任意の担体上に格納することができる。この種のコンピュータ読み取り可能なデータ担体または機械読み取り可能な担体は,特にディスケット,CD−ROM,DVD,メモリスティックあるいはまたそれぞれ他のモバイルのメモリ媒体とすることができる。同様に,記憶させるために,ROM,PROM,EPROM,EEPROMまたはフラッシュメモリおよび揮発RAMメモリなどのようなメモリ媒体も,可能である。従ってメモリ媒体ないし機械読み取り可能な担体の選択は,本発明の対象としてのコンピュータプログラム製品に関して制限的ではないと,見るべきである。
本発明によって,種々のラピッドプロトタイピング方法,ソフトウェアテスト方法およびデータ校正方法をより迅速に使用でき,かつより柔軟に取扱い可能にすることができる。
従ってソフトウェア開発容量の締付けなしで,ソフトウェアフリーカットの実施が行われる。従って全体として,技術的な手間や管理的な手間が低減し,それに伴ってコストが削減できる。
同時に,たとえば16/32ビット幅のCPU命令のミックスされた命令セットを有するマイクロプロセッサタイプを支援することができる。
他の利点と好ましい形態が,明細書と請求項の特徴から明らかにされる。
以下,図面に示す対象を用いて,本発明を詳細に説明する。
実施例の説明
図1は,接続102を介してインターフェイス103および104と結合されている,制御装置100およびアプリシステム101を有するアプリ配置を概略的に示している。接続102は,有線(配線)でも,無線(ワイヤレス)でも形成することができる。符号105は,特にミックスされた命令セットを有する,マイクロプロセッサを示している。符号106はメモリ手段を示しており,そのメモリ手段はアドレスレジスタ108,データレジスタ107および機能に関して適合させるべき少なくとも1つのプログラムのためのメモリ領域を有している。その場合に本発明を実現するためのコントロール手段は,アプリケーションシステム内に含めることができ,またはこのアプリケーションシステムによって表すことができ,あるいはまたマイクロプロセッサ自体を利用して形成することができる。同様に,本発明を実現するためのメモリ手段を,制御装置の外部において,特にアプリケーションシステム内に収容することもできる。図示の装置によって,本発明に基づく対象が実現可能である。
機能の適合は,外部のバイパスによっても行うことはできるが,好ましい形態においては,適合は内部で,適合がプログラムランに組み込まれて,それにによってソースコード変更なしでソフトウェア介入の動的な懸下(ダイナミックフック)が行われるようにして,行われる。
ここで説明する対象は,ロード命令のアドレス情報を変更し,ストア命令の内容を変更し,機能呼出しのアドレス情報を変更して,新しいプログラムコードを付け加える。これらの変更は,ここでは実施例において,所望の16進コード修正に基づいて既存のソフトウェアプログラムスタンドで実施される。
本発明に基づく対象,後述する「動的ソフトウェアフリーカット」に関する種々の構成部分は,以下のごとくである。
・プログラム箇所を求める
・プログラム箇所の修正であって,ロード/ストア命令の修正と機能呼出しの修正を有する
・付加的なプログラムコードの形成
・ソフトウェアフリーカットコードの挿入
・メモリ領域のセグメント化
・プログラムコードを形成するための開発プロセス
以下に示す方法は,その命令セットがミックスされており,特に16−/32ビット幅CPU命令を有する,マイクロコントローラの使用に基づいている。模範的な例として,ここではInfineonのマイクロコントローラTriCoreTC17xx(RISC/DPS/CPU)が用いられ,そのマイクロコントローラは,特に車両における,駆動シーケンスを制御するため,たとえばエンジン制御またはステアリング,トランスミッション,ブレーキなどを制御するための制御装置の構成部分である。
しかし,本方法は,ミックスされていない命令セットを有するマイクロプロセッサにおいても,特に純粋な32ビットマイクロプロセッサ(RISC-プロセッサ,たとえばパワーPC/MPC5xx)においても,適用することができる。
原則的に,本方法においては,コンパイラのコードジェネレータは機械命令をシーケンシャルに配置するものと仮定される。ということは,アドレス情報,たとえば間接的にアドレスされた制御装置変数を該当するアドレスレジスタへロードするための連続する命令配置である。それとは異なり,変数が直接アドレスされる場合には,アドレス情報は命令自体の中にある。この実情は,ほとんどのコンパイラにおいて与えられている。
プログラム箇所を求める(図2)
そのための出発点は,たとえば16進コードデータファイルの形式で提供される,制御装置ソフトウェアプログラムである。他のデータファイルとして,データ記述データファイル(たとえばASAP)と,制御装置変数および制御装置機能に関する情報を提供する,リンカーデータファイル(たとえばELFバイナリ)が用いられる。
逆アッセンブラ(たとえばウィンドウズソフトウェアプログラム)によって,16進コードデータファイルが逆アッセンブルされる。フリーカットすべき制御装置変数の該当するアドレスは,データ記述データファイルから,あるいは本方法のために形成された基準データバンクから得られる。
本発明に基づいて形成された逆アッセンブラプログラム,たとえばウィンドウズ(登録商標)ソフトウェアプログラムは,逆アッセンブルされたプログラムコード内で,探し求める制御装置変数のアドレス情報の助けをかりて,これらの変数への該当するアクセス命令を探し求め(ロード/ストア命令),それが変数内容に作用する。
ウィンドウズ(登録商標)ソフトウェアプログラムとしての,この逆アッセンブラプログラムは,各アッセンブラ命令に従ってレジスタ内容を調べる,シミュレーションプログラムである。ストア命令が位置特定されて,ロードされたアドレスレジスタの内容が探し求める制御装置変数のアドレス値に相当し,あるいはストア命令のメモリ目標が変数アドレスに相当する場合に,検出位置が存在し,その検出位置において制御装置変数の内容が変更される。
検出位置においてプログラムコードがどのように変更されるか,という方法は,制御装置変数のそれぞれのアドレッシング種類に依存する。
これが,図2に示されている。その中で,符号201は,制御装置プログラムコードを示している。202は,ソフトウェア機能を示している。矢印203は,上述した,ストア命令を求めるための方法を象徴している。符号204は,変数アクセスのストア命令を,特に直接アドレスする場合に,ストア命令のメモリ目標がRAMアドレスであって,間接的にアドレスする場合にはアドレスレジスタの内容がRAMアドレスに相当するように,示しており,それによってロード命令を求めることができる。符号205で示す矢印は,ロード命令を求めるための,上述した方法を象徴している。特にグローバルな変数の,変数アドレスをロードするためのロード命令は,符号206で示されている。
プログラム箇所の修正(図3から8)
その場合に,一方では,様々なアドレッシング種類に従って,ロード命令検出位置および/またはストア命令検出位置が位置特定されて,その後この検出位置のために,その中に検出位置がある,制御装置機能が求められ,それによってプログラムコード全体の中ですべての機能呼出しを新たに形成されたフック機能の機能呼出しによって行うことができるので,制御装置機能の元の機能呼出しは,それに応じたフック機能の内部で行うことができる。
ロード/ストア命令の修正
上述したマイクロコントローラにおいて,多数の異なるアドレッシング種類が様々な仕様で与えられている。この多様性を最小限に減少させることができる。
以下,4つの方法が示され,それらの方法はグローバル変数への書込みアクセスのほとんどの可能な組合わせをカバーしている。コード分析するための,たとえば前もって占有されたアドレスレジスタを介しての相対アドレッシングのような,他の方法も考えられる。
それについて,図3には,ロードおよび/またはストア命令を修正する様々な方法の一覧が与えられている。その中で,ストア命令st.xは,次のことを意味している:st.b=store byte,st.h=store halfword,そしてst.w=store word。図3に記載されている4つの方法を,以下で詳細に説明する。
方法1に基づくプログラム箇所の修正は,図4に詳細に示されている。方法1は,たとえば16ビット命令と間接的なアドレッシングである。発見されたストア命令の位置に基づいて,逆アッセンブルされたプログラムコード内で,付属のロード命令が求められるまで,箇所が遡ってたどられる。この方法にとって,発見されたロード命令が重要である。この方法は,ミックスされた命令セットにおける問題において使用されるだけでなく,他の理由からジャンプ命令によるストア命令の置換えが不可能である場合にも,使用される。
方法1においては,求められたロード命令は,ポインタ変数のアドレス情報に置き換えられることによって後続のストア命令に関連付けられる。命令命令このポインタ変数は,開発環境,特にDフック開発環境を介して発生する。ポインタ変数のアドレスは,メモリ手段の,変数のために予約された自由領域内にある。修正されたロード命令は,オリジナル命令と同じアドレスレジスタをアドレスする。変更されたロード命令の違いは,アドレスレジスタのアドレッシング種類とアドレス情報内にある。
すなわち,図4では方法1が原理表示で説明されている。その場合に符号401は元のプログラムコードを示し,符号411は修正されたプログラムコードを示している。402と406および417と407は,制御装置機能,ここではfunction_a()を形成する。その場合に402内,ないし417内には,命令ないし命令シーケンスが示されており,406ないし407内には本来の機能性が示されている。符号%axxは,アドレスレジスタへのアクセス(たとえば16ビット幅においてはa0からa15まで)を示し,%dxxはデータレジスタへのアクセス(たとえば16ビット幅においてd0からd15)を示している。さらに命令movh.aとld.a(ロード命令)およびst.x(ストア命令)が408,409,410,413,414および415内に見られる。movh.aとld.aは,この例においては32ビット命令(412と403を参照)として示されている。ストア命令st.xは,16ビット命令(405を参照)として示されており,従ってこの例においては32ビットジャンプ命令によって置き換えられない。すでに説明したように,これは,この種の置換えが不可能であり,あるいは望ましくない,他のすべての場合についても当てはまる。新しい本発明に基づく命令コードないしプログラムコード403は,412へインポートされ,ロード命令はポインタ変数iB_PtrMsg_xxx(Ptr=Pointer)に変更される。制御装置変数のアドレスは,404に示すポインタ変数のアドレスによって置き換えられる。付加的なプログラムコードないし付加機能を形成する方法は,後に4つの方法に従って詳細に説明する。
方法2に基づくプログラム箇所の修正は,図5に詳細に示されている。その場合に残りすべての方法例についてと同様に,方法1についてと同じ名称および略語が当てはまる。その場合に符号501は元のプログラムコードを示し,符号511は修正されたプログラムコードを示している。502と506および517と507は,制御装置機能,ここではfunction_a()を形成する。その場合に502ないし517内に命令ないし命令シーケンスが示されており,506ないし507内には本来の機能性が示されている。%axxは,アドレスレジスタへのアクセス(たとえば16ビット幅においてはa0からa15)を表し,%dxxはデータレジスタへのアクセス(16ビット幅においてはd0からd15)を表す。さらに,ここでも命令movh.aとld.a(ロード命令)とst.x(ストア命令)が見られる。ストア命令st.xは,32ビット命令(505を参照)として示されており,従ってこの例においては32ビットジャンプ命令jlaによって置き換えることができる。新しい本発明に基づく命令コードないしプログラムコード503(jla:ジャンプ命令)が,505にインポートされる。
方法2は,間接的なアドレッシングと組み合わされた,32ビットストア命令である。32ビットストア命令は,ソフトウェアバルコニー機能(balcony_M2)への絶対的なジャンプ命令jla512によって置き換えられる(520ソフトウェアバルコニー機能の呼出しを参照)。jlaジャンプ命令において,アドレスレジスタa11内にリターンジャンプアドレスが格納される(521内を参照)。
上述したソフトウェアバルコニー機能521内で,アドレスレジスタ%axx(これを介して制御装置変数がアドレスされる)の内容が,ポインタ変数のアドレス値(iB_PtrMsg_xxx)によって置き換えられる。アドレスレジスタ%axxとその前にロードされたデータレジスタ%dxxの内容は,ソフトウェアバルコニー機能521内では同一である。
ソフトウェアフリーカットのために32ビット幅のストア命令が利用される場合には,そのために付加的なプログラムコードが必要とされる。このプログラムコードは,Dフック開発環境内で形成されて,バルコニー機能と称される。バルコニー機能は,付加的な初期化,コピーおよびフリーカットの機構を内容とし,フリーカット機能性を拡張するためのソフトウェア機能として用いられる。バルコニー機能は,フリーカット方法2,3および4のために使用される。
ジャンプ命令jlaによって,使用されるデータレジスタ%dxxの内容は不変である。ソフトウェアバルコニー機能内で,ポインタを介してのアドレッシングとそれに伴ってポインタ変数へのストア命令の方向変換が行われる。ストア命令st.xは,オリジナルコードにおけるようなデータを記述する。
次に,アドレスレジスタa11内に記憶されている,間接的なジャンプに関するリターンジャンプアドレスを介して,522に示す制御装置機能へリターンジャンプされる。
方法3に基づくプログラム箇所の修正が,図6に詳細に示されている。その場合にすべての残りの方法例の場合と,ここでは特に,方法2の場合と同じ名称および略称が有効である。その場合に601は,元のプログラムコード,611は修正されたプログラムコードを示している。602と606および617と607が,制御装置機能,ここではfunction_a()を形成する。その場合に602内,ないし617内に命令ないし命令シーケンスが示されており,606ないし607内に,本来の機能性が示されている。その場合に特殊なst.x(ストア命令),すなわちst.tが見られる。ストア命令st.tは,32ビット命令(605を参照)として示されており,従ってこの例においては32ビット機能呼出しcall(call balcony_M3)によって置換え可能である。新しい本発明に基づく命令コードないしプログラムコード603(call:機能呼出し)が,605へインポートされる。
方法3は,直接的なアドレッシング618(アドレス610を有するストア命令)と組み合わされた,32ビットストア命令st.tである。32ビットストア命令は,ソフトウェアバルコニー機能(balcony_M3,621)の32ビット機能呼出し(call balcony_M3,603)によって置き換えられる(604を参照)。ソフトウェアバルコニー機能621は,フリーカットの照会とオリジナル状態におけるストア命令を内容としている。フリーカットがアクティブである場合には,ストア命令は実施されない。従って変数は,制御装置機能から切り離される。そのために612からバルコニー機能621の呼出し620が行われる。その後制御装置変数のアドレス(adr.of ecu Variable)を介して制御装置機能へのリターンジャンプ622が行われる。
方法4に基づくプログラム箇所の修正が,図7に詳細に示されている。その場合に残りのすべての方法例の場合,ここでは特に方法2の場合と,同一の名称および略称が有効である。その場合に符号701は,元のプログラムコードを示し,符号711は修正されたプログラムコードを示している。702と706および717と707が,制御装置機能,ここではfunction_a()を形成する。その場合に702内,ないし717名に命令ないし命令シーケンスが示され,706ないし707内には,本来の機能性が示されている。%axxは,アドレスレジスタへのアクセスを示し,%dxxはデータレジスタへのアクセスを示している。さらに,前の方法に記載されていたような,命令mov,st.x(ストア命令)callとjlaが,見られる。ストア命令st.xは,32ビット命令(705を参照)として示されており,従ってこの例において32ビットジャンプ命令jlaによって置き換えることができる。新しい本発明に基づく命令コードないしプログラムコード703(jla:ジャンプ命令)が,705へインポートされる。
方法4は,直接的なアドレッシング(718)と結びついた32ビット命令st.x(710)である。32ビットストア命令は,32ビットジャンプ命令jla(Jla balcony_M4_a)によって置き換えられる。ジャンプ命令は,ソフトウェアバルコニー機能1(balcony_M4_a(),721)を指しており,それが720によって呼び出される。ソフトウェアバルコニー機能721において,その前にロードされたデータレジスタ%dxxの内容が,テンポラリーDフック変数(iB_TempMsg_xxx)へ一時記憶される。721から,機能呼出しcallによって,723で他のバルコニー機能(balcony_M4_b(),724)が呼び出される。この第2のソフトウェアバルコニー機能2は,方法3におけるのと同様に,本来のフリーカットを内容としている。ソフトウェアバルコニー機能724は,フリーカットの照会を内容としている。フリーカットが非アクティブにされている場合には,テンポラリー変数iB_TempMsg_xxxが,制御装置変数へ書き戻される(725を参照)。フリーカットがアクティブである場合には,書き戻しは行われない。従って制御装置変数は,制御装置機能から分離される。その場合に722を介して制御装置機能へのリターンジャンプが行われる。
機能呼出しの修正(図8)
位置特定されたロード/ストア検出位置のために,その中に検出位置のある,制御装置機能が求められる。これは,本方法によって開発されたウィンドウズソフトウェアプログラムによって行われ,それはロード/ストア命令の位置に基づいて,かつ基準情報の助けを借りて,制御装置機能の該当する開始アドレスと終了アドレスを求める。
次に,全プログラムコード内で,制御装置機能のすべての機能呼出しが,新しく形成されたフック機能の機能呼出しによって置き換えられる。
制御装置機能の元の機能呼出しは,該当するフック機能の内部で行われる。
図8においては,見やすくする理由から,この修正表示が比較できるようにするために,これまでの図2,4,5,6,7におけるのと同じ表示が選択されている。符号801は,元の制御装置プログラムコードを示し,符号811はそれぞれ修正されたプログラムコードを示してる。その場合に課題リストtask_listと,それに応じた付加機能またはサブ機能subfunction_x()が使用される。簡単にするために,もはや命令シーケンスと本来の機能性との間ははっきりと区別されていない(それについて図3から7を参照)。符号804は,機能アドレスと機能呼出しを求めるための,図2と同様のプロセスを示している。805に示すように,function_aのアドレスが,hook_function_aのアドレスによって置き換えられる。同様に,806において,function_aの機能呼出しが,hook_function_aの呼出しによって置き換えられる。そして807において,function_aの間接的な機能呼出しが,hook_function_aの呼出しによって置き換えられる(ここでは32ビット命令として)。その場合にnPは,それぞれ置換えによって新しく形成されたプログラムコードを示している。
付加的なプログラムコードを形成する方法(図9)
従って,その中にフリーカットがある,各制御装置機能のために,フック機能をあてがうことができ,あるいはこの種のフック機能があてがわれる。そのために,図9には,この種のフック機能hook_function_a()とhook_function_x()の概略的な表示が開示されている。その場合に符号901は,制御装置プログラムコードを示している。902は付加的なプログラムコードのためのメモリ領域を示している。903は,本来のフック機能を示し,その中に符号904で,場合によっては必要とされるポインタ変数の可能な初期化が示されている。905は,特にラピッドプロトタイピング方法のソフトウェアフリーカット,コンフィグレーションおよび結合のためのプログラムコードを開示している。そして符号906は元の制御装置機能function_a()の呼出しを示している。これは,第2のフック機能hook_function_x()についても同様であるが,見やすくする理由から,再度示されてはいない。
従ってフック機能は,アプリケーションデータを介してラピッドプロトタイピング方法へのアクセスを制御する,フリーカット機構を内容としている。さらに,フック機能内で,場合によってはポインタ変数の初期化と本来の制御装置機能の機能呼出しが実施される。
以下,フック機能の特徴を,フリーカット方法に従って示す:
フリーカット方法1と2について:
ストア命令を,ポインタによってアドレスされた制御装置変数へ有意に書き込むことができるようになる前に,ポインタ変数が変数アドレスによってアドレスされなければならない。ポインタの初期化は,フック機能内で行われる。フリーカットアクセスがアクティブでない場合には,ポインタは制御装置変数のアドレスによって初期化される。フリーカットアクセスがアクティブである場合には,ポインタはテンポラリーDフック変数のアドレスによって初期化される。ここでは,たとえば制御装置変数が間接的にアドレスされる場合には,テンポラリー変数への書込みアクセスの方向変換が行われる。
フリーカット方法3と4について:
2つの方法は,制御装置変数の直接的なアドレッシングである。その場合に初期化されなければならない,ポインタは使用されない。フック機能内には,ソフトウェアフリーカットを制御するための機構と元の制御装置機能の機能呼出しがある。
ここで,すでに説明したような,ジャンプ命令により置き換える場合のバルコニー機能を再度簡単に説明する。使用は,前もって詳細に示されている。ソフトウェアフリーカットのために32ビット幅のストア命令が利用される場合には,そのために付加的なプログラムコードが必要である。このプログラムコードは,Dフック開発環境内で形成されて,バルコニー機能と称される。バルコニー機能は,付加的な初期化,コピーおよびフリーカットの機構を内容とし,フリーカット機能性を拡張するためのソフトウェア機能として用いられる。バルコニー機能は,フリーカット方法2,3および4のために使用される。
ソフトウェアフリーカットを挿入する方法
ソフトウェアフリーカットの挿入は,たとえば16進コードマージランによって実施される。このアクションにおいて,ダイナミックフリーカット方法のための開発環境の結果(16進コード)が,元のソフトウェアプログラム(16進コード)のフリー領域へコピーされる。この方法は,16進コード情報が2つの別々のソフトウェア開発ランから互いに結合される,内的な制御装置バイパスと同様に構成されている。
メモリ領域のセグメンテーション(図10)
フリーカット方法のために,制御装置ソフトウェアプログラムのメモリレイアウトS1内にメモリ手段の専用のメモリ領域が必要である。図10に示すように,本方法は,コード(Dフックコード)S4,データ(Dフックデータ)S3およびRAM(Dフックラム)S2のためのフリー領域を要求する。
コード領域内には,フリーカット機能(付加プログラムコード)が,データ領域内にはアプリケーションの大きさが格納され,そのアプリケーション大きさを介してフリーカット機構が制御される。本方法のために必要なポインタ変数と管理RAM変数が,RAM変数のためのフリー領域内に格納されている。
プログラムコードを形成するための開発プロセス(図11)
ソフトウェアフリーカットコードの形成は,本方法のために形成された開発環境を介して自動的に行われ,図11に再度示されている。その場合に点8内の変数選択は,予め定めることのできる判断基準に従って自動的に行うこと,ないしは実施することもできる。
1.16進コードデータファイル(たとえばインテル−HexまたはモトローラS19フォーマットにおける,マシンコードを内容とする)
2.アプリケーションデータ記述データファイル(たとえば変数と特性量のアドレスと換算式)
3.ELFバイナリデータファイル(機能および変数のアドレスを有するリンカーアウトプットデータファイル)
4.マシンコードを読むことのできるアッセンブラ命令へコンバートするためのプログラム
5.逆アッセンブルされたプログラムコード(シミュレータ用のインプットとして用いられる)
6.プログラム情報を準備するためのコンバータ
7.基準データバンク(オープンリファレンスを解くために用いられる)
8.ユーザーが,フリーカットのための変数の選択を作成する
9.フリーカットすべき制御装置変数に関する情報
10.プログラムコードシミュレータ(すべてのオペレーションコードをシーケンシャルに読んで,レジスタ内容を検査する)
11.自動的に生成されたソースコード(ソフトウェアフリーカットのためのプログラムコード,付加情報および修正すべきプログラムコード箇所に関する情報)
12.ソフトウェア開発環境(16進コードおよびアプリケーションデータを形成するためのすべてのプロセスを制御)
13.フリーカットを制御するためのアプリケーションデータ
14.プログラムコード+フリーカットコード+パッチコード
15.Hex/A21マージプロセス(ダイナミックフック成分が,オリジナルのプログラムコードと結合される)
16.アプリケーションデータ記述データファイル(プロジェクトおよびフリーカットのアプリケーションデータを内容とする)
17.ソフトウェアフリーカットを有するプログラムスタンド
機能を適合させるための,本発明に基づく配置または装置を示している。 プログラム内のフリーカット箇所またはソフトウェアフリーカットを求めるためのシーケンスを開示している。 ロードおよび/またはストア命令を修正するための種々の方法の概観と選択を示している。 ロード命令の第1の好ましい修正方法をプログラム表示で示している。 ストア命令の第2の修正方法をプログラム表示で開示している。 ストア命令の第3の修正方法をプログラム表示で開示している。 ストア命令の第4の修正方法をプログラム表示で開示している。 駆動シーケンスを制御するための機能の呼出しを適合させるための原理を示している。 付加機能を挿入するためのフック機能を示している。 フック機能に関するメモリ手段内のメモリセグメントを概略的に示している。 本発明に基づく完全な開発プロセスを詳細に示している。

Claims (12)

  1. 駆動シーケンスを制御するための機能を適合させる方法であって,前記機能は制御するための少なくとも1つのプログラムの少なくとも1つのグローバル変数を使用し,前記グローバル変数に,少なくとも1つのメモリ手段内に存在するアドレス情報が対応づけられており,前記グローバル変数の前記アドレス情報が少なくとも1つのロード命令によってメモリ手段からロードされる,前記方法において,
    前記ロード命令の前記グローバル変数の前記アドレス情報が置き換えられることを特徴とする,駆動シーケンスを制御するための機能を適合させる方法。
  2. 前記グローバル変数の前記アドレス情報が,ポインタ変数のアドレス情報によって置き換えられることを特徴とする請求項1に記載の方法。
  3. 前記ポインタ変数のアドレス情報が,予約されたメモリ領域内に存在していることを特徴とする請求項2に記載の方法。
  4. ストア命令がジャンプ命令によって置き換えられることによって,前記グローバル変数に対するストア命令が操作されることを特徴とする請求項1に記載の方法。
  5. 前記アドレス情報から,機能の開始アドレスが求められることを特徴とする請求項1に記載の方法。
  6. 前記駆動シーケンスを制御するための機能が,前記アドレス情報の置換えにより,付加機能に置き換えられることを特徴とする請求項1または5に記載の方法。
  7. 前記駆動シーケンスを制御するための機能が,ジャンプ命令によるストア命令の置換えにより,付加機能に置き換えられることを特徴とする請求項4に記載の方法。
  8. 駆動シーケンスを制御するための機能を適合させる方法を実施するための装置であって,前記機能は制御するための少なくとも1つのプログラムの少なくとも1つのグローバル変数を使用し,前記グローバル変数にアドレス情報が対応づけられており,メモリ手段が設けられており,その中に前記アドレス情報が存在し,その場合にさらにコントロール手段が設けられており,前記コントロール手段によって前記グローバル変数の前記アドレス情報が,少なくとも1つのロード命令によって前記メモリ手段からロードされる,前記装置において,
    前記コントロール手段は,前記ロード命令の前記グローバル変数の前記アドレス情報が置き換えられるように,形成されていることを特徴とする,装置。
  9. 前記コントロール手段は,付加的に請求項2から7のいずれか1項に記載の方法が実施されるように,形成されていることを特徴とする請求項8に記載の,駆動シーケンスを制御するための機能を適合させる方法を実施するための装置。
  10. 請求項8に記載の方法を実施するための装置を有する,駆動シーケンスを制御するための制御装置。
  11. プログラムがコンピュータ上で実施された場合に,請求項1から7のいずれか1項に記載の方法を実施するための,機械読み取り可能な担体上に記憶されている,プログラムコードを有するコンピュータプログラム製品。
  12. プログラムがコンピュータ内で実施された場合に,請求項1から7のいずれか1項に記載のすべてのステップを実施するための,プログラムコードを有するコンピュータプログラム。
JP2006537060A 2003-11-05 2004-11-04 駆動シーケンスを制御するための関数を適合させる方法および装置 Expired - Fee Related JP4520466B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10352172A DE10352172A1 (de) 2003-11-05 2003-11-05 Verfahren und Vorrichtung zur Anpassung von Funktionen zur Steuerung von Betriebsabläufen
PCT/DE2004/002447 WO2005045537A1 (de) 2003-11-05 2004-11-04 Verfahren und vorrichtung zur anpassung von funktionen zur steuerung von betriebsabläufen

Publications (2)

Publication Number Publication Date
JP2007511817A true JP2007511817A (ja) 2007-05-10
JP4520466B2 JP4520466B2 (ja) 2010-08-04

Family

ID=34559486

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006537060A Expired - Fee Related JP4520466B2 (ja) 2003-11-05 2004-11-04 駆動シーケンスを制御するための関数を適合させる方法および装置
JP2006537062A Pending JP2007510205A (ja) 2003-11-05 2004-11-04 駆動シーケンスを制御するための機能を刺激する方法および装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2006537062A Pending JP2007510205A (ja) 2003-11-05 2004-11-04 駆動シーケンスを制御するための機能を刺激する方法および装置

Country Status (7)

Country Link
US (2) US20070214451A1 (ja)
EP (2) EP1682951A1 (ja)
JP (2) JP4520466B2 (ja)
CN (2) CN100458606C (ja)
DE (3) DE10352172A1 (ja)
RU (1) RU2352972C2 (ja)
WO (2) WO2005045538A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EA013260B1 (ru) * 2006-07-06 2010-04-30 Флуор Текнолоджиз Корпорейшн Способ и технологическая схема извлечения пропана
JP4941040B2 (ja) * 2007-03-26 2012-05-30 富士通株式会社 テスト仕様書生成プログラム、およびテスト仕様書生成装置
KR101019209B1 (ko) * 2007-04-25 2011-03-04 이화여자대학교 산학협력단 임베디드 소프트웨어의 인터페이스 자동 추출 장치 및 그방법
US8074118B2 (en) 2009-01-28 2011-12-06 Dspace Digital Signal Processing And Control Engineering Gmbh Method for influencing a control unit and manipulation unit
US8166344B2 (en) 2009-01-28 2012-04-24 Dspace Digital Signal Processing And Control Engineering Gmbh Method for controlling an operating mechanism and a manipulation unit
US8171341B2 (en) 2009-01-28 2012-05-01 Dspace Digital Signal Processing And Control Engineering Gmbh Method for controlling an operating mechanism and a manipulation unit
CN101807157B (zh) * 2010-03-30 2012-08-29 南京恩瑞特实业有限公司 基于函数访问全局变量的防御性编程方法
CN102402480A (zh) * 2011-10-12 2012-04-04 吴华中 电路板固件命令行调试(测试)工具
EP2759939B1 (de) * 2013-01-29 2016-06-08 dSPACE digital signal processing and control engineering GmbH Verfahren zum Manipulieren einer Speicheroperation eines Steuergeräteprogramms auf einen virtuellen oder realen Speicher
EP2881858B1 (de) * 2013-12-09 2016-04-06 dSPACE digital signal processing and control engineering GmbH Verfahren zur Änderung der Software im Speicher eines elektronischen Steuergerätes
US10684600B2 (en) * 2015-11-19 2020-06-16 Dspace Digital Signal Processing And Control Engineering Gmbh Method for operating a control device and for external bypassing of a configured control device
CN107688467B (zh) * 2016-12-23 2019-11-15 北京国睿中数科技股份有限公司 处理器随机指令复用的验证方法
DE102019203251B3 (de) 2019-03-11 2020-06-18 Volkswagen Aktiengesellschaft Verfahren und System zur sicheren Signalmanipulation für den Test integrierter Sicherheitsfunktionalitäten
DE102020112331A1 (de) 2020-05-07 2021-11-11 Audi Aktiengesellschaft Lernsystem zum Lernen individueller Programmiereingaben

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09311792A (ja) * 1996-05-22 1997-12-02 Hitachi Ltd レジスタ割り付け方法
JP2000132424A (ja) * 1998-06-19 2000-05-12 Lucent Technol Inc ソフトウェアインスツルメンテ―ション方法
WO2001090887A1 (fr) * 2000-05-25 2001-11-29 Fujitsu Limited Procede de traitement de programme permettant un traitement haute vitesse au moyen d'un materiel a reconfiguration dynamique et programme permettant d'executer ce procede de traitement
JP2002099425A (ja) * 2000-09-25 2002-04-05 Hitachi Ltd グローバル変数のローカル変数変換方法
JP2002268707A (ja) * 2001-03-12 2002-09-20 Omron Corp コントローラ及びツール並びにそれらにより構成されるシステム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4530052A (en) * 1982-10-14 1985-07-16 Honeywell Information Systems Inc. Apparatus and method for a data processing unit sharing a plurality of operating systems
GB2197506A (en) * 1986-10-27 1988-05-18 Burr Brown Ltd Providing and handling break points in a software monitor
US5195183A (en) * 1989-01-31 1993-03-16 Norand Corporation Data communication system with communicating and recharging docking apparatus for hand-held data terminal
US5109504A (en) * 1989-12-29 1992-04-28 Texas Instruments Incorporated Graphics program adaptor
JP2922723B2 (ja) * 1992-06-29 1999-07-26 キヤノン株式会社 情報処理装置
JPH06250837A (ja) * 1993-02-25 1994-09-09 Ricoh Co Ltd スケジューリング処理方式
FI102220B1 (fi) 1995-10-30 1998-10-30 Nokia Telecommunications Oy Vikaantumistietojen keräys tietokoneyksikön uudelleenkäynnistyksen osana
US6543049B1 (en) * 1999-09-03 2003-04-01 International Business Machines Corporation Ranked break points and method for debugging a computer program
JP2001147837A (ja) * 1999-11-18 2001-05-29 Fujitsu Ltd プログラムトレース装置及び記憶媒体
DE10036278A1 (de) * 2000-07-26 2002-02-07 Bosch Gmbh Robert Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik
DE10106504A1 (de) 2001-02-13 2002-08-29 Bosch Gmbh Robert Verfahren und Vorrichtung zum Emulieren von Steuer- und/oder Regelfunktionen eines Steuer- oder Regelgeräts
US6859892B2 (en) * 2001-04-25 2005-02-22 Hewlett-Packard Development Company, L.P. Synchronous breakpoint system and method
US6580974B2 (en) * 2001-06-08 2003-06-17 Robert Bosch Gmbh Method and apparatus for monitoring the control of operational sequences in a vehicle
DE10228610A1 (de) 2001-06-27 2003-01-16 Bosch Gmbh Robert Verfahren zum Überprüfen eines auf einer elektronischen Recheneinheit ablaufenden Steuerprogramms
DE10220610B4 (de) * 2002-02-15 2005-02-24 Brueninghaus Hydromatik Gmbh Kolbenmaschine oder Drehgleitlagerung
JP4403794B2 (ja) * 2003-02-28 2010-01-27 株式会社デンソー 制御プログラムの検査方法及び検査装置及び検査プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09311792A (ja) * 1996-05-22 1997-12-02 Hitachi Ltd レジスタ割り付け方法
JP2000132424A (ja) * 1998-06-19 2000-05-12 Lucent Technol Inc ソフトウェアインスツルメンテ―ション方法
WO2001090887A1 (fr) * 2000-05-25 2001-11-29 Fujitsu Limited Procede de traitement de programme permettant un traitement haute vitesse au moyen d'un materiel a reconfiguration dynamique et programme permettant d'executer ce procede de traitement
JP2002099425A (ja) * 2000-09-25 2002-04-05 Hitachi Ltd グローバル変数のローカル変数変換方法
JP2002268707A (ja) * 2001-03-12 2002-09-20 Omron Corp コントローラ及びツール並びにそれらにより構成されるシステム

Also Published As

Publication number Publication date
CN100458606C (zh) 2009-02-04
CN100524109C (zh) 2009-08-05
US20070214451A1 (en) 2007-09-13
US20070033583A1 (en) 2007-02-08
DE112004002647D2 (de) 2006-09-21
CN1879066A (zh) 2006-12-13
US7593791B2 (en) 2009-09-22
JP4520466B2 (ja) 2010-08-04
RU2005124163A (ru) 2007-03-27
DE112004002631D2 (de) 2006-09-21
JP2007510205A (ja) 2007-04-19
WO2005045537A1 (de) 2005-05-19
EP1682950A1 (de) 2006-07-26
DE10352172A1 (de) 2005-06-09
WO2005045538A1 (de) 2005-05-19
CN1879067A (zh) 2006-12-13
EP1682951A1 (de) 2006-07-26
RU2352972C2 (ru) 2009-04-20

Similar Documents

Publication Publication Date Title
JP4520466B2 (ja) 駆動シーケンスを制御するための関数を適合させる方法および装置
US5729748A (en) Call template builder and method
US5247678A (en) Load time linker for software used with a multiprocessor system
US8028268B2 (en) System and method for building software package for embedded system
WO2018198439A1 (ja) 産業用コントローラ及び産業用コントローラにおけるデータ共有方法
EP1238334A1 (en) Preparation of a software configuration using an xml type programming language
US20040083342A1 (en) Method and apparatus for enabling access to global data by a plurality of codes in an integrated executable for a heterogeneous architecture
JPH1185519A (ja) オブジェクトを遠隔的に実行する方法、システム
JP3606561B2 (ja) 第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャの命令に変換する方法、システム、プログラムおよびデータ構造
US7197743B2 (en) Method for generating computer software for embedded systems
CN110569040A (zh) 一种在嵌入式系统内安装、运行应用程序的方法
JP2000010790A (ja) グロ―バル衝突判定用のユニタリデ―タ構造体のシステム、方法及びコンピュ―タプログラム製品
US20080133823A1 (en) Method For Describing Memory Contents And For Describing The Transfer Of Memory Contents
US20180364991A1 (en) Method and system for preparing code to be executed by programmable control devices
CN112306539A (zh) 一种单片机应用层开发方法、系统、终端及介质
JP2000010791A (ja) グロ―バルレジスタを初期化するための方法、コンピュ―タプログラム製品及び装置
KR100478463B1 (ko) 응용 프로그램의 동적링크 방법
EP1889158B1 (en) Method and apparatus for combined execution of native code and target code during program code conversion
Kachman et al. Configurable reprogramming methodology for embedded low-power devices
JP7499966B2 (ja) 制御装置、及び、アドレス管理方法
JP2000170593A (ja) グローバルram変数のアドレス割り付け方法及び装置
WO2015083234A1 (ja) 関数呼び出しテーブル生成装置、プログラム実行装置および実行プログラム
Zeeb Plug and play solution for Autosar software components
KR20050039235A (ko) 고정 베이스 레지스터를 이용한 컴파일러의 어셈블리 코드생성 방법
JP2003076547A (ja) 制御ソフトウェア自動生成システムおよび方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090310

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090610

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090618

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090710

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090724

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090810

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100319

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100420

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100520

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees