コースの詳細
この3日間コースでは、ターゲット ハードウェアの制約や、データ型・メモリー使用量・アルゴリズムの実行効率性などの要求を 満たすコードを Simulink® モデルから自動的に生成させる方法を学びます。生成コードを検証するためのバックトゥバックテスト(SILS/PILS)、また、生成コードに影響のあるSimulink モデルの詳細設定やブロック パラメーター、データ オブジェクトを駆使したカスタマイズについても学ぶことができます。本コースは、 Embedded Coder® による組み込みコードの生成、検証、および実装を検討されている方にお勧めです。
内容:
- 生成コードの構成と実行
- コード生成のオプションと最適化
- 生成コードと外部コードの統合
- マルチレートシステムおよび、非周期的なシステムのコード生成
- 生成コードのカスタム化
- データのカスタム化
- ターゲット ハードウェアでの生成コードのテスト
- コードの配布
1日目
組み込みコードの生成
学習目標: 組み込みコード生成用の Simulink モデルの設定方法と、生成されたコードの内容について学習します。
- 組み込みアプリケーションのアーキテクチャ
- システム仕様
- コードの生成
- コード モジュール
- 中間信号のログ作成
- 生成されたコードのデータ構造
- 生成されたコードの検証
- Embedded Coder のビルド プロセス
生成コードの最適化
学習目標: 開発しているアプリケーションの必要要件を把握し、その実現に最適なモデル設定について学習します。
- 最適化の考慮事項
- 不要なコードの削除
- 不要なデータ サポートの削除
- データ ストレージの最適化
- 生成コードのプロファイリング
- コード生成の目的
生成コードと外部コードの統合
学習目標: モデルとファイルを変更し、生成されたコードと外部コードを統合する方法について学習します。
- 外部コード統合の概要
- モデル エントリ ポイント
- 実行ハーネスの作成
- 外部プロジェクトへの生成コードの統合
- コード生成先の制御
- 生成コードのパッケージ化
関数プロトタイプの制御
学習目標: コード生成されたモデル エントリー ポイントの関数プロトタイプをカスタマイズする方法について学習します。
- 既定のモデル関数プロトタイプ
- 関数プロトタイプの変更
- 変更された関数プロトタイプを使用した生成コード
- モデル関数プロトタイプに関する考慮事項
- 再利用可能な関数インターフェイス
- 関数の既定の設定
2日目
Simulink のデータ特性のカスタマイズ
学習目標: Simulink のデータ型およびストレージ クラスの制御方法について学習します。
- データ特性
- データ型分類
- Simulink のデータ型コンフィギュレーション
- 信号ストレージ クラスの設定
- 状態ストレージ クラスの設定
- シンボルに対するストレージ クラスの影響
データ オブジェクトを使用したデータ特性のカスタマイズ
学習目標: データ オブジェクトを用いたデータ型およびストレージ クラスの制御方法について学習します。
- Simulink データ オブジェクトの概要
- データ オブジェクトによるデータ型の制御
- 再構成可能なデータ型の作成
- データ オブジェクトによるストレージ クラスの制御
- データ型と変数名の制御
- データ ディクショナリ
ストレージ クラスの作成
学習目標: ストレージ クラスの作成と、そのコード生成における利用方法について学習します。
- ユーザー定義ストレージ クラス
- ストレージ クラスの作成
- ユーザー定義ストレージ クラスの使用
- ユーザー コード定義の共有
生成コード アーキテクチャのカスタマイズ
学習目標: アプリケーションの必要要件に応じて、生成コードの構造を制御する方法について学習します。
- Simulink モデルのアーキテクチャ
- コードの分離の制御
- 再利用可能なサブシステム コードの生成
- バリアント コンポーネントの生成
- コード配置オプション
モデル参照とバス オブジェクト
学習目標: バスオブジェクトのデータ型とストレージ クラスを制御し、外部モデルを参照するモデルのコード生成で活用する方法について学習します。
- 再利用可能なモデル参照の作成
- バス信号のデータ型の制御
- バス信号のストレージ クラスの制御
- モデル参照のソフトウェア テスト
3日目
生成コードの実行のスケジューリング
学習目標: シングルタスク、マルチタスク、関数呼び出しで構成されたマルチレートシステムのコード生成について学習します。
- シングルレート システムおよびマルチレート システムの実行スキーム
- シングルレート モデルの生成コード
- マルチレート シングルタスク コード
- マルチレート マルチタスク コード
- エクスポートする関数の生成
ターゲット ハードウェアでの生成コードのテスト
学習目標: プロセッサインザループ(PIL)シミュレーションを使用して、生成されたコードをターゲットハードウェア上で検証、プロファイル、および最適化する方法について学習します。
- ハードウェア サポートの概要
- Arduino の設定
- ターゲットでの生成コードの検証
- ターゲット最適化の概要
- ターゲットでの生成コードのプロファイリング
- コード置換ライブラリの使用
- コード置換テーブルの作成
生成コードの組み込み
学習目標: 提供されているハードウェアサポートパッケージを使用して、Arduino ®ボード上で動作するリアルタイムアプリケーションを作成する方法について学習します。
- 組み込みアプリケーションのアーキテクチャ
- 配布用ハーネスの作成
- デバイス ドライバー ブロックの使用
- リアルタイム アプリケーションの実行
- エクスターナル モード
デバイス ドライバーの統合
学習目標: デバイス ドライバー開発のワークフローを学習し、Arduino ボード用のデバイス ドライバーを作成する方法について学習します。
- デバイス ドライバーの概要
- レガシ コード ツールの使用
- デバイス ドライバー コンポーネントのカスタマイズ
- Arduino 用デバイス ドライバー ブロックの開発
コードの効率性および準拠性の改善
学習目標: 生成されたコードの効率性を調査し、標準およびガイドラインへの準拠を検証する方法について学習します。
- モデル アドバイザー
- ハードウェア実装パラメーター
- 標準とガイドラインの準拠