Embedded Coder

主な機能

  • 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® などの標準をサポート
A fixed-point model with generated code and its simulation mode set for SIL execution.
SIL 実行用にシミュレーション モードを設定した、固定小数点モデルと生成されたコード。Embedded Coder では、量産組込みシステム用にコードをすばやく生成、記録、テストすることが可能です。

ターゲットの設定と操作

Embedded Coder でコードの生成を設定するには、MATLAB Coder プロジェクト ユーザー インターフェイス、または Simulink モデル エクスプローラーを使用します。また、MATLAB のコマンドとスクリプトで各設定を直接指定することも可能です。

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

  • MATLAB ファイルと関数のコードの生成
  • Embedded Coder 機能の使用の選択
  • コード生成のためのプロジェクト設定の指定
  • 複数のプロジェクトの作成、読み込み、再利用

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

  • Simulink モデルとサブシステムのコード生成
  • Embedded Coder ターゲットの選択
  • コード生成のターゲットの設定
  • 複数の設定セットの作成、読み込み、再利用

ターゲットの選択

Embedded Coder では構成オブジェクトとシステム ターゲット ファイルを使用して、MATLAB コードと Simulink モデルを量産に適したソース コードと実行ファイルに変換します。

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 のコード生成では、あらかじめ定義されているリストから実装先のプロセッサーを選択するか、汎用のターゲット設定を使用します。また、カスタム環境のために、あらかじめ定義されているリストを拡張することもできます。

Simulink Model Explorer, which provides access to a predefined list or generic settings for specifying the microprocessor for code deployment.
コードの実装先マイクロプロセッサーの指定に使用する、あらかじめ定義されたリストや汎用設定へのアクセスを提供する Simulink モデル エクスプローラー。Embedded Coder は、8 ビット、16 ビット、および 32 ビットなどの、あらゆるマイクロプロセッサーや DSP のためのコードを生成します。

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

Embedded Coder では、生成されるコードにどのようにモデル データが取り入れられるかを定義および制御することができます。ソフトウェアの統合を簡単にするために、MATLAB Coder プロジェクト ユーザー インターフェイスを使用して、エントリ ポイント関数とグローバル データの MATLAB データのクラス、サイズ、複雑さを指定できます。

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

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

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

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

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

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

カスタム ストレージ クラス デザイナー — 生成されたコードへのデータ構造のインポート、データのエクスポート、メモリ節約のためのカスタム定義と宣言をグラフィカルに作成し、ASAM や ASAP2 などのデータ交換標準に準拠しているデータを自動生成することができます。

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

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

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

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

Embedded Coder を使用すると、関数の境界の制御や式の維持が可能で、複数ブロックにまたがる最適化を設定して、コードサイズをさらに削減することができます。生成されたコードとのデータの交換は、グローバル変数や関数の引数を通じて行われます。生成されたコードから、モデル中のブロックと信号をたどることが可能です。

Embedded Coder に用意されている、MATLAB コードおよび Simulink モデルからのコード生成に関するオプションでは、以下の作業を行うことができます。

  • 数学関数および数学演算についてプロセッサ固有のコードを生成
  • 既存または外部環境にエクスポートするためのコードの再利用
  • コードの初期設定、ターミネーション、ログ記録、エラー処理などの不要なコードを削除
  • 整数のみのアプリケーションから浮動小数点コードを削除

Simulink モデルには、Embedded Coder で追加の最適化や設定オプションが用意されており、以下の作業を行うことができます。

  • モデルからのプリプロセッサー コンパイルのために、マクロを使用してコード バリアントを生成
  • ブール型データと Stateflow の状態をビットセットに保管
  • 各生成ファイルのフォーマットの制御
  • グローバル データの定義方法と参照方法を指定
  • コメントの内容と配置を指定
MATLAB example of target-specific math extensions and reusable function optimizations.
Simulink example of target-specific math extensions and reusable function optimizations.
ターゲットに合わせた計算の拡張および再利用可能な最適化の MATLAB の例 (左) と Simulink の例 (右)。Embedded Coder は、ターゲットに合わせた移植可能なコードの最適化によって、コードの効率性を向上します。

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

Embedded Coder では、MATLAB ファイルや関数、または Simulink モデルやサブシステムのために生成されたコードを調べるために、いくつかの機能が用意されています。これらの機能を使用して、以下の作業を行うことができます。

  • モジュールとモデルの構成設定を記述するコード レポートを生成する
  • 生成されるグローバル データ、データ タイプ、および関数の識別子のフォーマットを制御する
  • 生成されるコードに、関数のヘルプ テキストを含む MATLAB コードをコメントとして含める。

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

Simulink code generation report highlighting bidirectional traceability between algorithm and implementation.
アルゴリズムと実装間での双方向のトレーサビリティを示す、Simulink コード生成レポート。

コードの実行と検証

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 によって、テストの実行と、テスト結果と元のモデルからのシミュレーション結果の比較を自動的に行うことができます。サードパーティのツールと統合して、テストの完全性を測定するために構造コードのカバレッジを解析することが可能です。

製品評価版の入手
または製品の購入

PID制御をSimulinkでより簡単に

Web セミナーを表示する