主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

StateflowブロックからのCまたはc++コードの生成

Stateflow®チャートを含む仿金宝app真软件®モデルからCまたはc++のコードを生成するには,金宝app仿真软件编码器™を使用しなければなりません。金宝app仿真软件编码器に加え,嵌入式编码器®を使用して生成コードをさらに強化することができます。嵌入式编码器の強化機能によって、さらに読みやすくコンパクトで高速に実行できるコードにすることができます。

ターゲットに対するコードを生成する場合,Stateflowパーサーは各Stateflowマシンにあるグラフィカルオブジェクトと非グラフィカルオブジェクト,およびデータを,サポートされるチャート表記法とアクション言語の構文に照らして評価します。詳細については,チャートシミュレーション時の一般的なモデリングエラーの検出を参照してください。

金宝app编码器を使用したコードの生成

金宝app仿真软件编码器を使用すると,Stateflowチャートを含むモデルからCおよびc++のコードを生成することができます。その後,生成されたコードを次のようなリアルタイムや非リアルタイムのアプリケーションに使用できます。

  • シミュレーションの高速化

  • ラピッドプロトタイピング

  • ハードウェアインザループ(边境)テスト

金宝app仿真软件编码器を使用すると,クラシックアクセラレータモードとラピッドアクセラレータモードにもアクセスできます。アクセラレータモードは,後で実行に使用されるターゲットコードを生成することによって機能します。これらのモードの詳細については,アクセラレータモードの動作(金宝app模型)を参照してください。

边境テストでは,コントローラー設計をテストして物理システム(プラント)のモデルが有効かどうかを判定することができます。边境テストの詳細については,ハードウェアインザループシミュレーションの基礎(Simscape)を参照してください。

金宝app仿真软件编码器でのコード生成用にモデルを設定するには,モデルの構成とコードの生成(金宝app仿真软件编码器)を参照してください。

嵌入式编码器を使用したコードの生成

嵌入式编码器を追加すると,さらにコンパクトで読み取りやすく,高速に実行できるCやc++のコードを生成できます。また、嵌入式程序员は生成された関数,ファイル,データの制御を可能にすることにより,金宝app仿真软件编码器の機能を拡張します。さらに、嵌入式编码器を使用すると,レガシコードやデータ型,キャリブレーションパラメーターとの統合が簡単になります。嵌入式编码器は以下のソフトウェア標準に対応しています。

  • AUTOSAR

  • MISRA - C

  • ASAP2

嵌入式编码器は,特定のハードウェア向けの高度な最適化とデバイスドライバーを備えたサポートパッケージも提供します。

嵌入式编码器でのコード生成用にモデルを設定するには,クイックスタートツールを使用したコードの生成(嵌入式编码)を参照してください。

Stateflowオブジェクトに対して生成されたコードを最適化するための設計のヒント

マシンを親とするデータにはアクセスしない

この制限を設けると,グラフィカル関数に対して生成されたコードには,パラメーターの長いリストが表示されません。グラフィカル関数と同じチャートに存在するローカルデータにはアクセスできます。詳細については,グラフィカル関数の定義によるロジックパターンの再利用を参照してください。

さらに、嵌入式编码器はマシンを親とするデータでのコード置換ライブラリの使用をサポートしません。詳細については,可以从Simulink模型中替换的代码金宝app(嵌入式编码)を参照してください。

グラフィカル関数のインラインオプションを明示する

Stateflowチャートでグラフィカル関数を使用する場合は,[関数インラインオプション]プロパティとして[インライン]または[関数]を選択します。そうしないと,グラフィカル関数に対して生成されたコードが希望どおりに表示されない場合があります。詳細については,グラフィカル関数のプロパティの指定を参照してください。

Stateflowチャートで複数のエッジトリガーイベントを使用しない

複数のトリガーを使用する場合は,立ち上がりエッジまたは立ち下がりエッジの検出を処理する複数のコードステートメントを生成します。複数のトリガーが必要な場合は,代わりに関数呼び出しイベントを使用します。詳細については,入力イベントの送信によるStateflowチャートのアクティブ化を参照してください。

チャートの入力信号を単一のバスオブジェクトに統合する

バスオブジェクトを使用する場合は,生成される関数のパラメーターリストに含まれるパラメーターを減らします。このガイドラインは,チャートの出力信号にも適用されます。詳細については,Stateflow構造体の定義を参照してください。

離散サンプル時間を使用する

触发子系统または启用子系统内にない離散チャート用に生成されたコードでは,仿真软件が提供する時間ではなく,整数カウンターを使用して時金宝app間を追跡します。生成されたコードではメモリの使用量が少なくなり,ソフトウェアインザループ(SIL)およびプロセッサインザループ(公益诉讼)シミュレーションモードでコードを使用できるようになります。

ラピッドプロトタイピングおよび量産配布用のコードの生成

次の表は,コード生成に関する情報を目的に基づいて提示しています。

目的

金宝app仿真软件编码器ドキュメンテーション

嵌入式编码器ドキュメンテーション

C / c++ソースコードの生成

コード生成の基礎(金宝app仿真软件编码器)

コード生成の基礎(嵌入式编码)

C / c++ソースコードの生成と実行可能ファイルのビルド

ビルドプロセス(金宝app仿真软件编码器)

ビルドプロセス(嵌入式编码)

外部コードの統合

外部コードの統合(金宝app仿真软件编码器)

カスタム統合(嵌入式编码)

複数モデルでの使用を目的とした,移植可能な内蔵型ライブラリ内のライブラリチャートのみを対象とする外部コードのインクルード

ライブラリチャート用の外部コードの統合(金宝app仿真软件编码器)

ライブラリチャート用の外部コードの統合(嵌入式编码)

生成コードの最適化

布尔変数およびステートコンフィギュレーション変数に関するメモリ使用量の削減(金宝app仿真软件编码器)

布尔変数およびステートコンフィギュレーション変数に関するメモリ使用量の削減(嵌入式编码)

生成コード内のStateflowオブジェクトのトレーサビリティ

トレーサビリティコメントにより次が得られます。

  • 生成されたコードの検証。コードの行に対応するStateflowオブジェクトの識別に加え,レビューの実施/未実施を問わず,さまざまなオブジェクトのコードの追跡が可能です。

  • 大規模モデル用に生成されたコード内へのコメントのインクルード。生成コード内のオブジェクトの識別に加え、コメントや説明の手動入力の回避が可能です。

トレーサビリティコメントを有効にするには,嵌入式编码器またはHDL编码器™ソフトウェアがなければなりません。C / c++のコード生成では,組み込みリアルタイム()ベースのターゲットの生成コードにのみコメントが記述されます。詳細については,跟踪生成代码中的状态流元素(嵌入式编码)トレーサビリティを使用した仿金宝app真软件モデルとHDLコード間の移動(高密度脂蛋白编码器)を参照してください。

関連するトピック