embedded coder 6 - mathworks - makers of … coder 6.0 組込みシステム用に最適化された...

9
Embedded Coder 6.0 組込みシステム用に最適化された C コードと C++ コードの生成 Embedded Coder™ は、読み取り可能でコンパクトかつ高速な C コードと C++ コードを生成し、組込み プロセッサー、ターゲット上のラピッド プロトタイピング ボード、量産で使用するマイクロプロセッ サーなどで使用されます。Embedded Coder では MATLAB CoderSimulink Coderに対して追加の設 定オプションと高度な最適化が提供され、生成するコードの関数、ファイル、データを細かく調整で きます。これらの最適化により、コードの効率性が向上すると同時に、量産で使用されている古いコ ード、データ タイプ、およびキャリブレーション パラメーターとの統合が容易になります。また、サ ードパーティの開発環境をビルド プロセスに取り入れて、組込みシステムのターンキー開発のための 実行ファイルを作成することができます。 Embedded Coder には AUTOSAR ASAP2 のソフトウェア標準のサポートが組み込まれています。ま た、DO-178IEC 61508、および ISO 26262 のソフトウェア開発をサポートするために、トレーサビリ ティ レポート、コード インターフェイスのドキュメンテーション、およびソフトウェアの自動検証も 提供されています。 詳しくは、自動車航空、および産業オートメーションのアプリケーションにおける MathWorks によ る認定のサポートについてご覧ください。 主な機能 MATLAB Coder Simulink Coder を拡張する最適化とコードの設定オプション Simulink ® データ ディクショナリ機能を使用したストレージのクラス、タイプ、エイリアスの定義 プロセッサーに合わせたコードの最適化 RTOS の有無に関わらない、マルチレート、マルチタスク、マルチコアのコード実行 SIL および PIL テスト、カスタム コメント、モデルとコード/要求仕様間の追跡機能を備えたコード レポートといった、コードの検証 Texas Instruments 社製 Code Composer Studio™Analog Devices™ 社製 VisualDSP++ ® 、およびその他の サードパーティ製の組込み開発環境と統合 Simulink ASAP2AUTOSARDO-178IEC 61508ISO 26262、および MISRA C ® などの標準をサ ポート 1

Upload: dangdien

Post on 29-Apr-2019

239 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Embedded Coder 6 - MathWorks - Makers of … Coder 6.0 組込みシステム用に最適化された C コードと C++ コードの生成 Embedded Coder は、読み取り可能でコンパクトかつ高速な

Embedded Coder 6.0組込みシステム用に最適化された C コードと C++ コードの生成

Embedded Coder™ は、読み取り可能でコンパクトかつ高速な C コードと C++ コードを生成し、組込みプロセッサー、ターゲット上のラピッド プロトタイピング ボード、量産で使用するマイクロプロセッ

サーなどで使用されます。Embedded Coder では MATLAB Coder™ と Simulink Coder™ に対して追加の設

定オプションと高度な最適化が提供され、生成するコードの関数、ファイル、データを細かく調整で

きます。これらの最適化により、コードの効率性が向上すると同時に、量産で使用されている古いコード、データ タイプ、およびキャリブレーション パラメーターとの統合が容易になります。また、サードパーティの開発環境をビルド プロセスに取り入れて、組込みシステムのターンキー開発のための

実行ファイルを作成することができます。

Embedded Coder には AUTOSAR と ASAP2 のソフトウェア標準のサポートが組み込まれています。また、DO-178、IEC 61508、および ISO 26262 のソフトウェア開発をサポートするために、トレーサビリティ レポート、コード インターフェイスのドキュメンテーション、およびソフトウェアの自動検証も

提供されています。

詳しくは、自動車、航空、および産業オートメーションのアプリケーションにおける MathWorks によ

る認定のサポートについてご覧ください。

主な機能▪ MATLAB Coder と Simulink Coder を拡張する最適化とコードの設定オプション

▪ Simulink® データ ディクショナリ機能を使用したストレージのクラス、タイプ、エイリアスの定義

▪ プロセッサーに合わせたコードの最適化

▪ RTOS の有無に関わらない、マルチレート、マルチタスク、マルチコアのコード実行

▪ SIL および PIL テスト、カスタム コメント、モデルとコード/要求仕様間の追跡機能を備えたコード

レポートといった、コードの検証

▪ Texas Instruments 社製 Code Composer Studio™、Analog Devices™ 社製 VisualDSP++®、およびその他の

サードパーティ製の組込み開発環境と統合

▪ Simulink で ASAP2、AUTOSAR、DO-178、IEC 61508、ISO 26262、および MISRA C® などの標準をサ

ポート

1

Page 2: Embedded Coder 6 - MathWorks - Makers of … Coder 6.0 組込みシステム用に最適化された C コードと C++ コードの生成 Embedded Coder は、読み取り可能でコンパクトかつ高速な

SIL 実行用にシミュレーション モードを設定した、固定小数点モデルと生成されたコード。Embedded Coder では、量産組込みシステム用にコードをすばやく生成、記録、テストすることが可能です。

ターゲットの設定と操作

Embedded Coder でコードの生成を設定するには、MATLAB Coder プロジェクト ユーザー インターフェ

イス、または Simulink モデル エクスプローラーを使用します。また、MATLAB のコマンドとスクリプ

トで各設定を直接指定することも可能です。

MATLAB Coder プロジェクト ユーザー インターフェイスでは、次の操作を実行できます。

▪ MATLAB ファイルと関数のコードの生成

▪ Embedded Coder 機能の使用の選択

▪ コード生成のためのプロジェクト設定の指定

▪ 複数のプロジェクトの作成、読み込み、再利用

Simulink モデル エクスプローラーでは、次の操作を実行できます。

▪ Simulink モデルとサブシステムのコード生成

▪ Embedded Coder ターゲットの選択

▪ コード生成のターゲットの設定

▪ 複数の設定セットの作成、読み込み、再利用

ターゲットの選択

Embedded Coder では構成オブジェクトとシステム ターゲット ファイルを使用して、MATLAB コード

と Simulink モデルを量産に適したソース コードと実行ファイルに変換します。

2

Page 3: Embedded Coder 6 - MathWorks - Makers of … Coder 6.0 組込みシステム用に最適化された C コードと C++ コードの生成 Embedded Coder は、読み取り可能でコンパクトかつ高速な

MATLAB 構成オブジェクトでは、次のうちいずれかの出力ターゲットを指定します。

▪ MEX ファイル

▪ C/C++ 静的ライブラリ

▪ C/C++ 実行ファイル

Simulink システム ターゲット ファイルでは、生成したコードを実行するリアルタイム環境を指定します。Embedded Coder には、即座に実行可能な構成のターゲット ファイルが付属しており、サードパー

ティやカスタムのターゲットもサポートされています。組込みのターゲットには次のものがありま

す。

組込みリアルタイム組込みリアルタイム ターゲットターゲット— 基本的にあらゆる量産プロセッサーで効率的なリアルタイム実行を行うために、浮動小数点または固定小数点のデータをもつ ANSI/ISO C コード、C++ コード、およびカプセル化された C++ コードを生成します。

AUTOSAR ターゲットターゲット— AUTOSAR ソフトウェア コンポーネントの開発をサポートする、C コードと

実行時インターフェイスを生成します。

共有ライブラリ共有ライブラリ ターゲットターゲット— ホスト プラットフォームでの実行のために、Windows® ダイナミック リ

ンク ライブラリ (.dll)ファイル、または UNIX® 共有オブジェクト (.so)ファイルのいずれかとし

て、共有ライブラリ用のコードを生成します。

IDE リンクリンク ターゲットターゲット— Texas Instruments 社製の Code Composer Studio などの、サポートされているサードパーティの統合開発環境 (IDE) を使用して、コンパイルと実装のためのコードを生成します。

組込みハードウェアの特性の定義

MATLAB や Simulink のコード生成では、あらかじめ定義されているリストから実装先のプロセッサー

を選択するか、汎用のターゲット設定を使用します。また、カスタム環境のために、あらかじめ定義

されているリストを拡張することもできます。

3

Page 4: Embedded Coder 6 - MathWorks - Makers of … Coder 6.0 組込みシステム用に最適化された C コードと C++ コードの生成 Embedded Coder は、読み取り可能でコンパクトかつ高速な

コードの実装先マイクロプロセッサーの指定に使用する、あらかじめ定義されたリストや汎用設定へのアクセスを提供する Simulink モデル エクスプローラー。Embedded Coder は、8 ビット、16 ビット、および 32 ビットなどの、あらゆるマイクロプロセッサーや DSP のためのコードを生成します。

カスタム データの定義と制御

Embedded Coder では、生成されるコードにどのようにモデル データが取り入れられるかを定義および

制御することができます。ソフトウェアの統合を簡単にするために、MATLAB Coder プロジェクト ユ

ーザー インターフェイスを使用して、エントリ ポイント関数とグローバル データの MATLAB データ

のクラス、サイズ、複雑さを指定できます。

MATLAB コードにおいて、固定小数点オブジェクトを含むすべての MATLAB Coder のデータ定義がEmbedded Coder でサポートされています。

Simulink モデルにおいて、コード生成のために、次のデータ仕様とデータ ディクショナリ機能がEmbedded Coder でサポートされています。

Simulink データ オブジェクトSimulink データ オブジェクト — constant、volatile、exported global、imported global、define命令、構造体、ビット フィールド (ビットパックした構造体を含む)、および get と set のアクセス方法などの定義済みのストレージ クラスを提供。

モジュール パッケージング データ オブジェクトモジュール パッケージング データ オブジェクト — ルックアップ テーブルのチューニングやキャリブレーションのためのメモリ セグメントといった一般的に量産で使用される高度なデータ オブジェクト

のための、設定済みの属性を提供。

ユーザー データ タイプユーザー データ タイプ — 複雑なデータの抽象型を生成。これにより、生成されたコードでのモデルデータの表現、レガシー データとのインタフェース、既成の Simulink タイプの増加や置き換えをユー

ザーが正確に制御することが可能です。

次のツールは、Simulink でプロジェクト データを設計および管理するのに役立ちます。

4

Page 5: Embedded Coder 6 - MathWorks - Makers of … Coder 6.0 組込みシステム用に最適化された C コードと C++ コードの生成 Embedded Coder は、読み取り可能でコンパクトかつ高速な

カスタム ストレージ クラス デザイナーカスタム ストレージ クラス デザイナー — 生成されたコードへのデータ構造のインポート、データのエクスポート、メモリ節約のためのカスタム定義と宣言をグラフィカルに作成し、ASAM や ASAP2 な

どのデータ交換標準に準拠しているデータを自動生成することができます。

Simulink モデル エクスプローラーSimulink モデル エクスプローラー — Simulink モデルと Stateflow® チャートで使用されているすべてのデータを表示し、データ ディクショナリ フォーマットで情報を調整できるように表示をカスタマイズで

きます。

Embedded Coder では、Simulink で ASAP2 データ交換ファイルにアクセスできるため、ASAP2 規格に準拠した任意の複雑なデータ定義でモデル データをエクスポートすることができます。また、既成の機

能を変更して、別のデータ交換メカニズムを作成することもできます。

カスタム ストレージ クラス デザイナーを使用して作成したカスタム ストレージ クラス。カスタム ストレージ クラス デザイナーでは、直観的なグラフィカル インターフェイスを使用して、複雑なデータ タイプを設計、表示、検証できます。

コードの最適化とパッケージング

Embedded Coder を使用すると、関数の境界の制御や式の維持が可能で、複数ブロックにまたがる最適

化を設定して、コードサイズをさらに削減することができます。生成されたコードとのデータの交換

は、グローバル変数や関数の引数を通じて行われます。生成されたコードから、モデル中のブロック

と信号をたどることが可能です。

Embedded Coder に用意されている、MATLAB コードおよび Simulink モデルからのコード生成に関する

オプションでは、以下の作業を行うことができます。

5

Page 6: Embedded Coder 6 - MathWorks - Makers of … Coder 6.0 組込みシステム用に最適化された C コードと C++ コードの生成 Embedded Coder は、読み取り可能でコンパクトかつ高速な

▪ 数学関数および数学演算についてプロセッサ固有のコードを生成

▪ 既存または外部環境にエクスポートするためのコードの再利用

▪ コードの初期設定、ターミネーション、ログ記録、エラー処理などの不要なコードを削除

▪ 整数のみのアプリケーションから浮動小数点コードを削除

Simulink モデルには、Embedded Coder で追加の最適化や設定オプションが用意されており、以下の作

業を行うことができます。

▪ モデルからのプリプロセッサー コンパイルのために、マクロを使用してコード バリアントを生成

▪ ブール型データと Stateflow の状態をビットセットに保管

▪ 各生成ファイルのフォーマットの制御

▪ グローバル データの定義方法と参照方法を指定

▪ コメントの内容と配置を指定

6

Page 7: Embedded Coder 6 - MathWorks - Makers of … Coder 6.0 組込みシステム用に最適化された C コードと C++ コードの生成 Embedded Coder は、読み取り可能でコンパクトかつ高速な

7

Page 8: Embedded Coder 6 - MathWorks - Makers of … Coder 6.0 組込みシステム用に最適化された C コードと C++ コードの生成 Embedded Coder は、読み取り可能でコンパクトかつ高速な

ターゲットに合わせた計算の拡張および再利用可能な最適化の MATLAB の例 (左) と Simulink の例 (右)。EmbeddedCoder は、ターゲットに合わせた移植可能なコードの最適化によって、コードの効率性を向上します。

コードのコメント設定、追跡、および文書化

Embedded Coder では、MATLAB ファイルや関数、または Simulink モデルやサブシステムのために生成

されたコードを調べるために、いくつかの機能が用意されています。これらの機能を使用して、以下

の作業を行うことができます。

▪ モジュールとモデルの構成設定を記述するコード レポートを生成する

▪ 生成されるグローバル データ、データ タイプ、および関数の識別子のフォーマットを制御する

▪ 生成されるコードに、関数のヘルプ テキストを含む MATLAB コードをコメントとして含める。

また Simulink では、Embedded Coder によって、高レベルの要求仕様をコードのコメントとして挿入し、要求仕様のソースへのリンクを設ける機能が提供されています (Simulink Verification andValidation™ が必要です)。Simulink でのコード生成のコード レポートには、コード インターフェイスの説明、トレーサビリティ レポート、およびソース ファイルと生成されたコードの表示も含まれています。モデルと生成されたコードの間には双方向のリンクがあり、コードの各行と対応する Simulink モデル要素 (サブシステム、ブロック、MATLAB 関数とコード、Stateflow チャートと遷移など) の間を簡

単に行き来することができます。クリックするだけで対応するモデル要素やコードの行が強調表示さ

れるので、コードのレビューやデバッグが簡単になります。

アルゴリズムと実装間での双方向のトレーサビリティを示す、Simulink コード生成レポート。

8

Page 9: Embedded Coder 6 - MathWorks - Makers of … Coder 6.0 組込みシステム用に最適化された C コードと C++ コードの生成 Embedded Coder は、読み取り可能でコンパクトかつ高速な

製品詳細、デモ、動作環境www.mathworks.co.jp/products/embedded-coder

評価版ソフトウェアwww.mathworks.co.jp/trialrequest

営業窓口www.mathworks.co.jp/contactsales

テクニカル サポートwww.mathworks.co.jp/support

コードの実行と検証

Embedded Coder では、生成したコードをコードの実行環境に取り込むことができます。

MATLAB では、Embedded Coder から生成したコードは、MATLAB Coder で提供されるのと同じ実行フ

レームワークを使用して実行されます。

Simulink では、Simulink Coder で提供されるリアルタイム実行フレームワークが、Embedded Coder によって大幅に拡張されます。デフォルトでは、コードは リアルタイム オペレーティング システム(RTOS) の有無に関わらず、シングルタスキング、マルチタスキング、または同期モードで実行できます。また、Software-In-the-Loop (SIL) テストや Processor-In-the-Loop (PIL) テストを使用して、コードの

実行結果を検証できます。

メイン プログラムの生成

Embedded Coder では、リアルタイム環境へのコードの実装に関してユーザーが提供した情報に基づいて、拡張性に優れたメイン プログラムが生成されます。この機能では、モデルから完全にカスタマイ

ズされた実行ファイルを生成およびビルドできます。

レートのグループ化

Embedded Coder では、モデルに指定されている定期的なサンプル時間を使用して、シングルレートま

たはマルチレートでコードが生成されます。マルチレート、マルチタスキングのモデルでは、モデル内のベース レートのタスクと各サブレートのタスクについて別々の関数を生成する、レートのグルー

プ化という方法が使用されます。

リンクとターゲットの使用

サードパーティの IDE、マイクロプロセッサー、および RTOS (Wind River Systems® 製 VxWorks® を含む)

がサポートされており、生成されたコードの実装、統合、最適化、および実行を自動化することがで

きます。

SIL テストと PIL テストの実行

Embedded Coder では、Simulink のシミュレーション モードや S-function ブロックを使用して、SIL テストのための Simulink における生成コードの実行や、または、PIL テストのための組込みターゲットでの生成コードの実行を、それぞれ自動化できます。コード生成の検証 API によって、テストの実行と、

テスト結果と元のモデルからのシミュレーション結果の比較を自動的に行うことができます。サード

パーティのツールと統合して、テストの完全性を測定するために構造コードのカバレッジを解析する

ことが可能です。

リソース

オンライン ユーザー コミュニティwww.mathworks.co.jp/matlabcentral

技術トレーニング サービスwww.mathworks.co.jp/training

サードパーティ製品とサービスwww.mathworks.co.jp/connections

世界各地のお問い合わせ先www.mathworks.co.jp/contact

© 2011 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarksfor a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders. 9