チェックリスト
Modelify のチェックリストビュー、すべてのチェックリストのアイテムのタイプとコードの原因と推奨するソリューション、既知の変換の制約です。
6 Modelifyのチェックリストビュー
このビューはマッピング中にAtlasが生成したチェックリストのアイテムと変換中にModelifyが作成したチェックリストのアイテムを表示します。このビューに表示される情報は、必要なアクションを実行し、変換の問題に対処する上で有効です。
ビューには4つのカラムがあります:
- 記述/説明: 問題を説明する短いメッセージ
- Project: チェックリストのアイテムが作成されたプロジェクトの名前
- Function: チェックリストのアイテムが作成された関数の名前
- リソース: チェックリストのアイテムが作成されたファイルの名前と拡張子
任意のチェックリストアイテムに対してコンテキストメニューから次のアクションを実行することができます:
- 詳細を表示する: 問題を説明する短いメッセージです。 詳細はチェックリストのアイテムの詳細を参照してください。
- 変換ページで関数を表示する: 変換ページ内で関数を探し、選択します。
- ソースコード内で関数を表示する: Eclipseエディターでソースファイルを開き、選択したチェックリストのアイテムに対する関数を選びます。
- この関数に対するチェックリストのアイテムを表示する: ビューを絞り込み、選択したチェックリストのアイテムの関数に関連するチェックリストのアイテムのみを表示させます。
チェックリストのアイテムの詳細
ダイアログでチェックリストのアイテムの詳細を確認することができます。
イアログには以下の情報が表示されます:
- コード: チェックリストのアイテムに対する固有の識別可能なコードです。チェックリストのアイテムのコードに対応するヘルプページへのリンクが表示されます。リンクをクリックするか、左下のヘルプボタンをクリックして、対応するヘルプページを開くことができます。詳細はチェックリスト Item ヘルプページを参照してください。
- タイプ: チェックリストのアイテムのタイプです。リンクをクリックしてヘルプページを開くことができます。チェックリストのアイテムは次のように分類されています。
- ソースコード: Atlasがソースコード内で問題を特定しました(定義が欠けている等)。
- Atlasの問題: Atlasはコードベースのマッピング中に問題を発見しました。
- Atlasの制約: Atlasは特定のC言語の構成をマッピングすることができません。
- Modelifyの問題: Modelifyが変換中に問題を発見しました。
- Modelifyの制約: Modelifyは特定のC言語の構成を変換することができません。
- MATLAB/Simulinkの制約: MATLABまたはSimulinkのツールボックスの制約により変換を実行することができません(例 - 再帰はSimulinkではモデリングすることができません)。
- 検証: 生成されたモデルがシミュレーションを行うかどうかをチェック中に発生した警告またはエラー。
- 変換のタイプの制約: Modelifyは特定の変換のタイプへのC言語の構成の変換に対応していません(structの配列にインデックス付けを行う関数はStateflowに変換することはできません。これはStateflowがバス配列のインデックス付けを許可しないためです)。
- メッセージ:チェックリストのアイテムに関する詳細なメッセージです。MATLAB/Simulinkによって作成された警告/エラーのメッセージが含まれます。
- 深刻度:チェックリストのアイテムの深刻度です。エラー、警告、情報の値が表示される可能性があります。
- 関数:チェックリストのアイテムに関連する関数の名前です。
- ファイル:チェックリストのアイテムに関連するファイルに対するプロジェクトのルートと相対的なフルパスです。
チェックリスト Item ヘルプページ
各チェックリストのアイテムに対して、チェックリストのアイテムの詳細ダイアログから直接アクセス可能なヘルプページを用意しています。ヘルプページはチェックリストのアイテムの原因に関する詳細、および、推奨するソリューションや次善策を提供しています。
Modelify チェックリストビュー内のアイテムはカラムでソートすることも、チェックリストのアイテムの深刻度やタイプで分類することも可能です。
7 チェックリストのアイテムのタイプ
チェックリストのアイテムのタイプ: ソースコード
このチェックリストのアイテムのタイプは、C言語のソースコード内の欠けているコードに言及するチェックリストのアイテムを分類するために使用します。大抵の場合、このタイプのチェックリストのアイテムを修正するには、コードのベース内でコードを追加する、または、修正する必要があります。
補足のリソース
ご不明な点はEnSoftのサポートにEメール(support@ensoftcorp.com)でお問い合わせ下さい
チェックリストのアイテムのタイプ: Atlasの問題
このチェックリストのアイテムのタイプは、コードのマッピング中にAtlasが発見した問題を示すチェックリストのアイテムを分類するために使用します。
補足のリソース
ご不明な点はEnSoftのサポートにEメール(support@ensoftcorp.com)でお問い合わせ下さい
チェックリストのアイテムのタイプ - Atlasの制約
このチェックリストのアイテムのタイプは、C言語向けのAtlasが完全には対応していないC言語のコードに言及するチェックリストのアイテムを分類するために使用します。
補足のリソース
ご不明な点はEnSoftのサポートにEメール(support@ensoftcorp.com)でお問い合わせ下さい
チェックリストのアイテムのタイプ: Modelifyの問題
このチェックリストのアイテムのタイプは、Modelifyの変換中に発生した予期していなかった問題を示すチェックリストのアイテムを分類するために使用します。
補足のリソース
ご不明な点はEnSoftのサポートにEメール(support@ensoftcorp.com)でお問い合わせ下さい
チェックリストのアイテムのタイプ: Modelifyの制約
このチェックリストのアイテムのタイプは、Modelifyが完全には対応していないC言語のコードに言及するチェックリストのアイテムを分類するために使用します。
補足のリソース
ご不明な点はEnSoftのサポートにEメール(support@ensoftcorp.com)でお問い合わせ下さい
チェックリストのアイテムのタイプ: MATLAB/Simulinkの制約
このチェックリストのアイテムのタイプは、MATLAB、または、Simulinkが対応していないC言語のコードに言及するチェックリストのアイテムを分類するために使用します。
補足のリソース
ご不明な点はEnSoftのサポートにEメール(support@ensoftcorp.com)でお問い合わせ下さい
チェックリストのアイテムのタイプ: 検証
このチェックリストのアイテムのタイプは、変換したモデルを検証するために集められた情報を示すチェックリストのアイテムを分類するために使用します。この情報は、通常、MATLAB内でブロック線図の更新の操作を実行する際に集められます。
補足のリソース
ご不明な点はEnSoftのサポートにEメール(support@ensoftcorp.com)でお問い合わせ下さい
チェックリストのアイテムのタイプ: 変換のタイプの制約
このチェックリストのアイテムのタイプは、C言語の関数をSimulink、または、Stateflowに変換することができない理由を説明するチェックリストのアイテムを分類するために使用します。
補足のリソース
ご不明な点はEnSoftのサポートにEメール(support@ensoftcorp.com)でお問い合わせ下さい
チェックリストのアイテムのタイプ: 設定の問題
このチェックリストのアイテムのタイプは、Modelifyのプロジェクト設定の問題を示すチェックリストのアイテムを分類するために使用します。
補足のリソース
ご不明な点はEnSoftのサポートにEメール(support@ensoftcorp.com)でお問い合わせ下さい
8 チェックリストのアイテムのコード
チェックリストのアイテムのコード 501: Simulinkのループです
チェックリストのアイテムのタイプ
このチェックリストのアイテムは変換のタイプの制約ですです
原因
ModelifyのSimulinkの変換は、現時点でC言語のソースコード内のループに対応していません。
推奨するソリューション
関数をStateflowに変換するか、あるいは、Stateflowに変換する別の関数へループを抽出することで対応が可能です。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 502: SimulinkのGotoです
チェックリストのアイテムのタイプ
このチェックリストのアイテムは変換のタイプの制約ですです
原因
ModelifyのSimulinkの変換は、C言語のソースコード内の「goto」ステートメントに対応していません。
推奨するソリューション
ModelifyのStateflow変換は「goto」ステートメントに対応しています。関数をStateflowに変換するか、あるいは、制御フローの論理を変更し、「goto」ステートメントを使用しないようにすることで対応が可能です。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 503: Stateflowのバスのベクトルです
チェックリストのアイテムのタイプ
このチェックリストのアイテムは変換のタイプの制約ですです
原因
Stateflowのアクション言語がバス配列に対応していません。詳細はMATLAB ドキュメンテーションページを参照して下さい。
推奨するソリューション
代わりに関数をSimulinkに変換することが可能です。関数にループが含まれている場合、Simulinkの変換はループに対応していないため、別の関数にループを抽出する必要があります(Simulink ループを参照して下さい)。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 504: ブロック線図の更新の警告です
チェックリストのアイテムのタイプ
このチェックリストのアイテムは検証です
原因
このチェックリストのアイテムは、Modelifyがブロック線図の更新のアクションを実行した際にMATLABがレポートした警告を表します。
推奨するソリューション
このチェックリストのアイテムに対するソリューションは、MATLABによる警告メッセージの内容により異なります。ソリューションがご不明な場合は、EnSoftのサポートにお問い合わせ下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 505: ブロック線図の更新のエラーです
チェックリストのアイテムのタイプ
このチェックリストのアイテムは検証です
原因
このチェックリストのアイテムは、Modelifyがブロック線図の更新のアクションを実行した際にMATLABがレポートしたエラーを表します。
推奨するソリューション
このチェックリストのアイテムに対するソリューションは、MATLABによるエラーメッセージの内容により異なります。ソリューションがご不明な場合は、EnSoftのサポートにお問い合わせ下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 506: 部分的なModelifyのエラーです
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの問題ですです
原因
このチェックリストのアイテムは、Modelifyが関数を変換している際に発生した予期していなかった問題を説明します。モデルは生成され、少なくとも一部の変換は行われます。
推奨するソリューション
このエラーが発生した場合、以下のEメールアドレスをご利用になり、EnSoftのサポートにご連絡下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 507: Atlasのエラーのノードです
チェックリストのアイテムのタイプ
このチェックリストのアイテムはAtlasの問題ですです
原因
このチェックリストのアイテムは、Atlasがマッピング中に問題を発見した際に生成されます。Atlasのコードのマッピングプロセス中に発生したエラー、もしくは、ソースコードのエラーが原因で発生する可能性があります。
推奨するソリューション
ソースコードで該当する関数のコンパイルエラーを確認して下さい。コンパイルエラーが存在する場合は、修正し、プロジェクトのマッピングと変換を再び実行します。コンパイルエラーが存在しない場合は、以下のEメールアドレスをご利用になり、EnSoftのサポートにご連絡下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 508: 定義されていない関数の戻り値の型です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはソースコードです
原因
このチェックリストのアイテムは、C言語のコードが未定義の関数を呼び出し、Modelifyがこの関数の戻り値の型を特定できない際に生成されます。
推奨するソリューション
関数の定義または宣言をC言語のソースコードに加えて下さい。すると関数の戻り値の型が明確に宣言され、Modelifyは正確な変換を作成することができるようになります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 509: ブロックポートが欠けています
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの問題ですです
原因
このチェックリストのアイテムは、Modelifyがブロックのポートに線を作成しようと試みるものの、ポートが存在しない場合に生成されます。このアイテムは、C言語の関数呼び出しをモデル参照ブロックに変換し、参照されたモデルが期待される数のInportとOutportを持っていない際に発生することがほとんどです。
推奨するソリューション
参照されるモデルに対して関数を再び変換すると、ModelifyとMATLABが期待される同数のポートを持つ上で有効に働きます。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 510: 欠けている関数の定義に対して作成されたスタブです
チェックリストのアイテムのタイプ
このチェックリストのアイテムはソースコードです
原因
このチェックリストのアイテムは、Modelifyがスタブのモデルを作成してC言語のソースコード内の未定義の関数を代える際に生成されます。スタブには、関数インターフェースを表すために必要なブロックのみが含まれます。こうすることで、具体的な関数の定義を必要とせずにモデル生成を継続することが可能になります。
推奨するソリューション
このチェックリストのアイテムは、モデルのシミュレーションを実行する必要がある段階まで、あるいは、モデルに対するC言語のコードが生成される段階までは解決する必要がありません。Simulink内でスタブのモデルを正しいインプリメンテーションと置き換えることが可能です。代わりに、関数の定義を正しいインプリメンテーションを持つC言語のソースコードに追加し、変換を再び実行することもできます。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 511: 予期していないMATLABのエラーです
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの問題ですです
原因
このチェックリストのアイテムは、変換中にMATLABが報告したエラーを表します。
推奨するソリューション
このエラーが発生した場合は、以下のEメールアドレスをご利用になり、EnSoftのサポートにご連絡下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 512: 予期していないエラーです
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの問題ですです
原因
このチェックリストのアイテムは、変換中に発生した予期していなかった問題を表します。
推奨するソリューション
このエラーが発生した場合は、以下のEメールアドレスをご利用になり、EnSoftのサポートにご連絡下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 513: 予期されたAtlasの要素が欠けています
チェックリストのアイテムのタイプ
このチェックリストのアイテムはAtlasの問題ですです
原因
この問題はAtlasのコードマッピングに期待されたノードやエッジが欠けている場合に発生します。
推奨するソリューション
ソースコードで該当する関数のコンパイルエラーを確認して下さい。コンパイルエラーが存在する場合は、修正し、プロジェクトのマッピングと変換を再び実行します。コンパイルエラーが存在しない場合は、以下のEメールアドレスをご利用になり、EnSoftのサポートにご連絡下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 514: Voidデータ型です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
Modelifyはvoidやvoidポインタのデータ型に対応していません。voidのデータ型はパラメータと関数の戻り値においてのみ対応しています。
推奨するソリューション
この関数をS-Functionに変換するか、あるいは、C言語のコードを更新して、このコードの構造を回避することで対応が可能です。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 515: 関数のポインタ型です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
Modelifyは関数のポインタのデータ型に対応していません。
推奨するソリューション
Modelifyは指し示された関数を変換することは可能ですが、ユーザーは関数がどのように/いつ呼び出されるかを決定する必要があります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 516: 対応していないプリミティブ型です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
この問題は、C言語のソースコードにMATLABが対応していないプリミティブ型が使用されている際に発生します。
推奨するソリューション
この問題が発生した場合は、以下のEメールアドレスをご利用になり、EnSoftのサポートにご連絡下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 517: 再帰データ型です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはMATLAB/Simulinkの制約ですです
原因
Simulinkは連結リスト等の再帰データ型に対応していません。
推奨するソリューション
再帰型をリファクタリングし、有限の大きさの配列を利用します。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 518: 再帰関数です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはMATLAB/Simulinkの制約ですです
原因
Simulinkが対応していない、モデルの参照ループが生成されるため、再帰関数をSimulinkまたはStateflowに変換することができません。
推奨するソリューション
関数をS-Functionに変換するか、または、変換を実行しないことも可能です。その場合、別の関数に呼び出されると、スタブモデルが生成されます。もしくは、関数をリファクタリングし、ループベースの制御フローを利用するソリューションもあります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 519: 関数の定義が欠けています
チェックリストのアイテムのタイプ
このチェックリストのアイテムはソースコードです
原因
これは、Modelifyの変換中にC言語のソースコード内の未定義の関数に対する呼び出しが行われ、オプション「未定義の関数にスタブブロック図を作成」が無効になっている場合に発生します。
推奨するソリューション
欠けている関数に対するスタブのモデルをModelifyに自動的に生成させたい場合は、オプション「未定義の関数にスタブブロック図を作成」を有効にします。スタブには関数インターフェースを表すために必要なブロックのみが含まれます。こうすることで、具体的な関数の定義を必要とせずにモデル生成を継続することが可能になります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 520: グローバルポインタのアドレスを変更しています
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
変数をインクリメントすることで、グローバルポインタ変数を反復処理しようと試みる際に発生します。グローバルポインタ変数の位置を動かすと思われるため、この処理には対応していません。
推奨するソリューション
コードをリファクタリングし、グローバル変数の代わりに一時変数を用いて当該のグローバル変数を反復することで、このアイテムを解決することができます。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 521: 静的ポインタのアドレスを変更しています
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このアイテムは、変数をインクリメントすることで、関数が静的ローカルポインタ変数を反復しようと試みる際に発生します。ローカルポインタ変数の位置を動かすと思われるため、この処理には対応していません。
推奨するソリューション
このアイテムは、コードをリファクタリングし、静的ローカル変数の代わりに一時変数を用いて、静的ローカル変数を反復することで解決することが可能です。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 522: グラフが大きすぎます
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、生成されたモデル内のシステム(トップシステム、サブシステム、または、チャート)に同レベルで2000を超える要素(ブロックやジャンクション)が存在する場合に生成されます。大抵の場合、このシチュエーションによりレイアウトのアルゴリズムがメモリ不足を引き起こします。
推奨するソリューション
システムのサイズを一番容易に減少させるには、できるだけ多くのリダクションを有効にします。また、関数をより小さな関数にリファクタリングするソリューションもあります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 523: 正しくないデータ型です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの問題ですです
原因
このチェックリストのアイテムは、特定のデータ型を必要とする処理に誤ったデータ型が用いられているとModelifyが判断する際に生成されます。配列ではない変数で配列のアクセス処理が実行されるケースが代表例です。
推奨するソリューション
このチェックリストのアイテムへのソリューションは、求められるデータ型によって異なります。このデータ型はチェックリストのアイテムのメッセージ内に提示されます。この問題を解決するには、ソースコードが正確である点、および、処理と変数の型がマッチする点を確認する必要があります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 524: 対応していないオフセット変数です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、ModelifyのStateflowの変換がグローバル変数、または、静的ローカルポインタ変数に対してオフセット変数を作ろうと試みる際に発生します。オフセット変数は、ポインタのベースアドレスからポインタの反復を開始する際に用いられます。オフセット変数は、配列アクセスの指標変数によく似ています。変数のアドレスを変更すると思われるため、グローバル変数または静的ローカル変数においてはオフセット変数に対応していません。詳細はグローバルポインタのアドレスを変更していますと静的ポインタのアドレスを変更していますを参照して下さい。
推奨するソリューション
コードをリファクタリングし、グローバル変数や静的ローカル変数を直接利用する代わりに、ローカル変数を使ってポインタを反復処理して下さい。こうすることで、Stateflowの変換がオフセット変数としてローカル変数を利用することができるようになります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 525: 初期化ファイルのポインタのオフセットです
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、ポインタを用いて配列を反復処理するコードに対してModelifyが初期化ファイル(M-script、または、データディレクトリ)内でMATLABの表現を作成しようと試みる際に発生します。現在、Modelifyではこのタイプの構造には対応していません。
推奨するソリューション
このアイテムは、コードをリファクタリングし、初期化中にポインタを使って配列を反復処理しないようにすることで解決が可能です。当該の初期化のコードを新しい関数に含める方法も一つの次善策として考えられます。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 526: 対応していないリテラルのアドレスです
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、Modelifyがリテラルのメモリアドレスを利用するポインタ変数に対して初期化ファイル(M-script、または、データディレクトリ)でMATLABの表現を作成しようと試みる際に発生します。MATLABではメモリにアクセスするための関数が存在しないため、初期化ファイルはリテラルのメモリアドレスに対応していません。
推奨するソリューション
このアイテムは、大抵の場合、コードをリファクタリングし、リテラルのメモリアドレスではなく、グローバル変数を指し示すことで解決することが可能です。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 527: ポインタの三項の条件
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、ポインタアドレスの割り当て中に三項演算子が用いられている時に生成されます。このケースにおいてModelifyは三項演算子の使用に対応していません。
推奨するソリューション
このチェックリストのアイテムは、三項演算子を同じ割り当てを実行するif-elseステートメントに置き換えることで解決することが可能です。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 528: デリファレンスしたエッジを解決しています
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、ModelifyによるStateflowの変換において、ポインタ変数のアドレスを判断することができない場合に発生します。このアイテムは、制御フロー内でポインタのアドレスが変更され(if-elseステートメント)、そのためポインタが後に使用される際に、有効な値を複数持つ可能性があるために発生するケースがほとんどです。Modelifyでは現時点でこのパターンには対応していません。
推奨するソリューション
このアイテムは、アクセスされる際にポインタに対して有効な値が一つになるようにコードをリファクタリングすることで解決が可能です。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 529: 対応していないポインタ表現です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、ModelifyがStateflow内で再現不可能な表現のアドレスに対してポインタが作られる際に発生します。
推奨するソリューション
AtlasとModelifyが実行中の処理をより正しく理解することができるようにポインタ表現、または、表現のアドレスを書き直す試みを推奨します。さらにご支援が必要な場合は、以下のEメールアドレスをご利用になり、EnSoftのサポートにご連絡下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 530: 対応していないポインタのWriteです
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、Modelifyが割り当てられているポインタ変数を特定することができない場合、もしくは、使用中の変数がポインタ変数ではない場合に発生します。
推奨するソリューション
このアイテムには、ポインタの割り当てを簡素化、または、書き直すことで対応が可能です。割り当てられている変数がポインタ変数ではない場合は、ポインタに変更する必要があります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 531: 対応していないSwitchの形式です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、caseステートメントの前のswitchステートメント内でローカル変数が宣言されている際に生成されます。
推奨するソリューション
このチェックリストのアイテムは、ローカル変数をswitchステートメント内ではなく、switchステートメントの前に動かすことで解決することができます。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 532: 対応していないCastの型です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはMATLAB/Simulinkの制約ですです
原因
このチェックリストのアイテムは、C言語のソースコードにStateflowのアクション言語が対応していないタイプのキャスト処理が含まれている場合に生成されます。Stateflowのアクション言語はMATLABのプリミティブ型のキャストのみに対応しています。
推奨するソリューション
大抵の場合、キャストに対する必要性を排除することができるはずです。当然ですが、これは関数に左右されます。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 533: 対応していない静的ローカルポインタの初期化です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、静的ローカルポインタの初期化と同等のMATLABの表現をModelifyが初期化ファイル(M-script、または、データディレクトリ)で作成することができない際に発生します。Stateflowの変数を初期化するため、MATLABの表現として初期化を構成する必要があります。
推奨するソリューション
このアイテムには、静的ローカルポインタの初期化を簡素化することで、あるいは、静的ローカル変数がポインタではないように、または、関数が静的ローカル変数を使用しないようにコードをリファクタリングすることで対応が可能です。ご不明な点は、以下のEメールアドレスをご利用になり、EnSoftのサポートにご連絡下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 534: Unionの複数のフィールドです
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、C言語のコードでUnionの複数のフィールドがアクセスされる際に生成されます。Unionに対してSimulinkバスが生成されたため、モデルの論理が正しくない可能性があります。
推奨するソリューション
単一のUnionのフィールドが用いられるようにコードをリファクタリングします。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 535: S-Functionは3次元以上の配列に対応していません
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
ModelifyのS-Functionの変換は3次元以上の信号に対応していません。
推奨するソリューション
引数が3次元以上の信号を持つことがないように関数をリファクタリングするか、可能な場合は異なる変換のタイプを選択します。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 536: 対応していない三項演算子です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、Modelifyが三項演算子に対して初期化ファイル(M-script、または、データディレクトリ)でMATLABの表現を作成しようと試みる際に発生します。このケースは定数、または、静的ローカル変数の初期化中に三項演算子が用いられる際に発生します。
推奨するソリューション
このタイプの初期化において三項演算子が現れないようにコードをリファクタリングします。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 537: 非定数のグローバルを初期化します
チェックリストのアイテムのタイプ
このチェックリストのアイテムはMATLAB/Simulinkの制約ですです
原因
このチェックリストのアイテムは、Modelifyが定数ではないグローバル変数の値を持つMATLABの表現を初期化ファイル(M-script、または、データディレクトリ)で作成しようと試みる際に発生します。グローバル変数の値はMATLABの表現としてではなく、信号としてモデルを通してルートが設定されるため、この試みは不可能です。
推奨するソリューション
このアイテムは、グローバル変数をこの位置で利用しないように、あるいは、グローバル変数を定数にすることで解決が可能です。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 538: 大きな関数に対して作成されたスタブです
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
Modelifyが一部の内部の変換の問題により変換を実行することができない際にスタブのモデルが生成されます。
推奨するソリューション
以下のEメールアドレスをご利用になり、EnSoftのサポートにご連絡下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 539: Libraryブロックの作成に失敗しました
チェックリストのアイテムのタイプ
このチェックリストのアイテムは設定の問題ですです
原因
このチェックリストのアイテムは、ModelifyがLibraryブロック へのリンクを作ろうと試みるものの、Libraryモデルのファイルを見つけることができない場合、もしくは、ファイルにターゲットの名前を持つサブシステムが存在しない場合に発生します。このケースは、ライブラリマッピングがカスタムユーザーライブラリに対して作成されるものの、Libraryのファイルが移された、または、編集された際に発生することがほとんどです。
推奨するソリューション
このチェックリストのアイテムのメッセージに、Modelifyが利用しようと試みるLibraryモデルのパスおよび/または名前が提供されているはずです。このLibraryモデルが存在すること、および、Library内のサブシステムの名前が正しいことを確認して下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 540: 無視された関数呼び出しです
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、Simulinkが対応していない通常のC言語の関数を呼び出す関数をModelifyが変換する際に発生します。その代表例がC言語の関数「printf」、「sprintf」、「fprintf」への呼び出しです。Simulinkが文字列の信号に対応していないため、これらの関数には対応していません。
推奨するソリューション
変換されなかった関数呼び出しをデバッグ目的のみで利用している場合、特に何もする必要はありません。ただし、関数呼び出しがコードの正確性において重要な場合は、同じ名前を用いてSimulinkモデルに変換可能なC言語のカスタム関数を作成する必要があります。すると、このモデルは関数呼び出しに対して参照されるようになります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 541: 宣言を持つSimulinkのSwitchです
チェックリストのアイテムのタイプ
このチェックリストのアイテムは変換のタイプの制約ですです
原因
Modelifyの変換は現時点でC言語のソースコード内のswitchステートメントと第一級ラベルの間の宣言に対応していません。
推奨するソリューション
宣言をswitchステートメントの前に移動し、当該の宣言の初期化が冪等であったと確実に指摘することが可能です。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 542: 複数のEnumを持つSwitchです
チェックリストのアイテムのタイプ
このチェックリストのアイテムはMATLAB/Simulinkの制約ですです
原因
MATLABは異なる列挙の値を使ったMultiportSwitchブロックの作成に対応していません。このケースはC言語のコードが別のenumの列挙体を持つswitchステートメントを含む場合に発生します。これは有効なC言語のコードですが、MATLABでは無効です。
推奨するソリューション
この問題は、switchステートメントを変更して単一のenumから列挙体を利用する、もしくは、switchステートメントをif-elseステートメントに置き換えることで解決可能です。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 543: 不明の複数の次元を持つInportです
チェックリストのアイテムのタイプ
このチェックリストのアイテムはソースコードです
原因
このチェックリストのアイテムは、複数の次元を持ち、少なくともそのうちの1つの長さが測定することができないC言語のパラメータやグローバル変数をModelifyが変換しようと試みる際に発生します。Simulinkは、継承した次元のポートを持つこと自体には対応していますが、これらのポートが複数の次元で構成されることは認めていません。
推奨するソリューション
この問題は、Modelifyがパラメータやグローバル変数の次元のサイズを判断しやすくなるように、C言語のコード内の情報を増やすことで解決が可能です。配列の場合、通常は配列の長さを追加します。この問題を解決するには、ポインタを配列にリファクタリングする必要があるかもしれません。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 544: MATLABの関数またはキーワードと競合する名前です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはMATLAB/Simulinkの制約ですです
原因
ModelifyはMATLABの関数やキーワードと競合するC言語の関数に対して生成されたモデルの名前を自動的に変更します。代表的なMATLABの関数は「strcmp」と「sprintf」です。予約済みキーワードの多くを集めた一覧を次のURLで確認することができます。https://www.mathworks.com/help/matlab/ref/iskeyword.html.
推奨するソリューション
競合しないようにModelifyが自動的にモデルの名前を変更するため、何も変更する必要はありません。Modelifyが生成した名前以外の名前を望む場合は、C言語の関数の名前を変更することができます。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 545: 対応していないケースのインクリメント/デクリメントの演算子です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、グローバル上にインクリメント/デクリメント演算子が存在する場合、structフィールド、または、配列が存在する場合、そして、同じ表現内に別のread/writeが存在する場合に発生します。この類の表現はC言語のコード内に未定義の動作を生み出す可能性があり、またStateflowに適切に変換されない可能性があります。
推奨するソリューション
この問題は、インクリメント/デクリメント演算子が存在する場合に、同じ表現内に余分なread/writeが存在しないようにソースコードをアップデートすることで解決が可能です。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 546: ライブラリマッピングを解決することができません
チェックリストのアイテムのタイプ
このチェックリストのアイテムは設定の問題ですです
原因
このチェックリストのアイテムは、Modelifyがライブラリマッピングルールを使ってC言語の関数呼び出しをSimulinkのブロックに置き換えようと試みるものの、ポートのマッピングの1つを適用することができない場合に発生します。
推奨するソリューション
この問題はライブラリマッピングの設定ページでC言語の関数に対するルールをチェックすることで解決が可能です。ポートのマッピングで用いられるポートの名前がC言語の関数に対して有効であることを確認して下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 547: デッドコードの可能性があります
チェックリストのアイテムのタイプ
このチェックリストのアイテムはソースコードです
原因
このチェックリストのアイテムは、ModelifyがC言語のステートメントがデッドコードだと判断する際に生成されます。
推奨するソリューション
この問題に対応することは必須ではありません。しかし、ご希望の場合はC言語のファイル内でデッドコードを取り除くことで解決が可能です。C言語のソースファイルの変更後、必ずマッピングを再び実行して下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 548: 対応していないMATLABのビルトインの型です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはMATLAB/Simulinkの制約ですです
原因
この問題は、C言語のソースコードがMATLABは対応しているものの、Simulinkは対応していないプリミティブ型を使用している際に発生します。
推奨するソリューション
Simulinkが対応しているデータ型を使用するようにソースコードをアップデートすることで解決が可能です。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 549: 対応していないS-Functionのポートの行列信号です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
ModelifyのS-Functionの変換は現時点ではS-Functionのポートに対する行列信号を完全にはサポートしていません。
推奨するソリューション
この制約は、Reshapeブロックを挿入し、出力次元のパラメータを適切に設定することで解決が可能です。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 550: Atlasのノードが見つかりません
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの問題ですです
原因
Modelifyは変換要素(関数等)に対するAtlasの対応するノードを見つけることができませんでした。Modelifyではサポートしていない一部の特性を含む、複雑な関数のシグネチャーが原因の可能性があります。
推奨するソリューション
以下のEメールアドレス宛てにこの問題をEnSoftのサポートに報告して下さい
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 551: C言語のライブラリの関数に対してスタブを作成しました
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、Simulink/Stateflow でモデルを作成する方法を把握していないC言語のライブラリ関数に対してModelifyがスタブモデルを作成する際に生成されます。スタブは関数インターフェースを表す上で必要なブロックのみを持ちます。そのためC言語の特徴を適切に処理することなく、モデルの生成を継続することができます。多くの場合、これらの関数はSimulink/Stateflow でモデル化できないC言語の機能と一致します。例えば、Simulinkで容易にモデルを作成することができないC言語の機能として、マルチスレッド、スケジューリング、タイミング、プロセス間通信、および、標準入出力、または、ファイル入出力が挙げられます。
推奨するソリューション
ソリューションは対象のC言語の機能によって異なります。例えば、スケジューリングやタイミングにおいては、タイミングを処理するトップレベルのモデルを作成する次善策が考えられます。入出力に関しては、S-Functionを選択するか、もしくは、関数から入出力のコードを抽出し、読み込み/書き出しのデータをモデルへの入力/出力の引数にする選択肢があります。特定のC言語の変換に関してご不明な点がございましたら、EnSoftサポートに以下のEメールアドレス宛てにご連絡下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 552: サポートしていないC言語のライブラリ関数への呼び出しです
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
Simulink/Stateflow に変換することができないC言語のライブラリ関数への呼び出しをModelifyが見つける際に発生します。多くの場合、関数はSimulink/Stateflowでモデル化できないC言語の機能と一致しています。例えば、Simulinkで変換することができないC言語の機能には、マルチスレッド、スケジューリング、および、タイミング、プロセス間通信、および、標準入出力、または、ファイル入出力が挙げられます。
推奨するソリューション
ソリューションは対象のC言語の機能によって異なります。例えば、スケジューリングやタイミングにおいては、タイミングを処理するトップレベルのモデルを作成する次善策が考えられます。入出力に関しては、S-Functionを選択するか、もしくは、関数から入出力のコードを抽出し、そのデータをモデルへの入力/出力の引数になるように変換する選択肢があります。当該の機能に具体的に対処することなくモデルの生成を続けるには、「定義されていない関数にはスタブブロック図を作成」オプションを有効にして下さい。するとModelifyは自動的に当該のC言語のライブラリ関数に対してスタブモデルを作成するようになります。スタブは関数インターフェースを表す上で必要なブロックのみを持ちます。特定のC言語の変換に関してご不明な点がございましたら、EnSoftサポートに以下のEメールアドレス宛てにご連絡下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 553: 無限ループが見つかりました
チェックリストのアイテムのタイプ
このチェックリストのアイテムはソースコードです
原因
Modelifyが無限ループを検知すると発生します。このモデルのシミュレーションを実行するとSimulinkは停止します。
推奨するソリューション
関連する関数の変換を回避し、手動で無限ループの論理を直接Simulinkに実装しなければならない可能性があります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 554: 無限ループと思われるコードが見つかりました
チェックリストのアイテムのタイプ
このチェックリストのアイテムはソースコードです
原因
Modelifyが、無限ループが存在する可能性があると判断すると発生します。ただし、追加の分析が必要になります。無限ループを含む関数を変換すると、モデルのシミュレーションを行う際にSimulinkは停止します。
推奨するソリューション
関数を確認し、無限ループが存在しない場合はこのメッセージを無視して下さい。無限ループが存在する場合は、関連する関数の変換を回避し、手動で無限ループの論理を直接Simulinkに実装しなければならない可能性があります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 555: 関数の呼び出しとショートサーキット
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
これはStateflowの変換において、Modelifyが副作用(他の変数への記述)を持つ関数の呼び出しを検知し、ショートサーキットによりC言語で評価されない可能性がある場合に発生します。関数が常に生成されたStateflowチャートで呼び出されるため、Stateflowの変換では現時点で適切に処理されません。
推奨するソリューション
この副作用が具体的なケースにおいてシミュレーションの結果に影響を与えないと考えられる場合、このメッセージを無視しても構いません。反対にシミュレーションの結果に影響を与える場合は、別の変換のタイプを選択するか、ソースコードを修正し、条件を複数のifステートメントに分けるソリューションが考えられます。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 556: Voidポインタデータ型です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
Modelifyはvoidデータ型へのポインタを含む構成の処理に対応していません。
推奨するソリューション
この制限に対するソリューションとして、ソースコードを修正して、ポインタをvoidの変数に変更するか、ポインタへの戻り値の型をvoidの代わりに特定のC言語の型に変更する方法が考えられます。また、呼び出し側の関数をS-Functionに変換して、voidへのポインタの構成がS-FunctionのCファイルのみに存在する状態を作る次善策も考えられます。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 557: ヘッダーファイル内にS-Function型の定義が必要です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはMATLAB/Simulinkの制約ですです
原因
S-Functionの変換には構造体、または、列挙型の引数、戻り値、または、アクセスされるグローバル変数をヘッダーファイル内に含める必要があります。
推奨するソリューション
この制限に対するソリューションとして、必要とされる型の定義をヘッダーファイルに移してソースコードをリファクタリングする方法が考えられます。これはS-Functionの変換においてのみ必要とされるため、可能な場合、変換のタイプの変更が次善策になり得る可能性があります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 558: 飽和が誤っている可能性があります
チェックリストのアイテムのタイプ
このチェックリストのアイテムはソースコードです
原因
このチェックリストのアイテムは、Modelifyの低減分析により、飽和低減の適用中にソースコード内に問題が存在する可能性があることが判明した際に作成されます。変数の値を飽和させる試みが行われているものの、定数が正しい順番ではないとコードが示唆する際に報告されます。
推奨するソリューション
ソースコードで正しいかどうかをチェックし、誤っている場合は修正して下さい。正しい場合はこのメッセージを無視して下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 559: 関数名が反復して使用されています
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
このチェックリストのアイテムは、Modelifyがプロジェクト内で同じ関数名を持つ複数の定義を見つけると作成されます。
推奨するソリューション
Modelifyは関数を変換することができる可能性があります。ただし、モデル参照が生成された同名のモデルのうち、どのモデルも参照する可能性がある点に留意して下さい。この潜在的な問題を回避するには、プロジェクト内で同じ関数名を作らないように、ソースコードを更新する必要があります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 560: Simulinkのモデルが許容された幅/高さの最大値を超えています。
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの制約ですです
原因
ModelifyがMATLABの現在のバージョンが対応する最大のサイズよりも大きいSimulinkのモデルを生成すると、このワークリストのアイテムが生成されます。この現象が最も多く発生するのは、関数が大量のコードまたは多くの演算を含む場合です。Modelifyはモデルのレイアウトを計算する際、最適のレイアウトを見つける試みを行いますが、モデル内に多くのブロックが存在する場合、レイアウトが非常に大きくなる可能性があります。
推奨するソリューション
最善のソリューションは、Simulinkのモデルで生成されるブロックの数を削減する方法です。可能な場合、まずは実行するリダクションの数を増やします。するとModelifyが生成するモデルの簡素化に役立ちます。続いて複数の関数に分かれるようにC言語のコードのリファクタリングを試してください。コードを複数の関数に分割するとModelifyは複数のより小さなモデルを作成することが可能になります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 561: 静的関数に対するS-Function
チェックリストのアイテムのタイプ
このチェックリストのアイテムはMATLAB/Simulinkの制約ですです
原因
この問題はModelifyが静的関数をS-Functionに変換しようと試みる際に発生します。静的関数へのアクセスは、宣言が行われたファイルのみに限定されます。S-Function変換では、オリジナルの関数がS-Functionブロックに対して生成されたS-FunctionのCファイルから呼び出されます。従って、S-FunctionのCファイルのコンパイルはコンパイルエラーを引き起こします。
推奨するソリューション
関数の「static」修飾子を削除することでこの問題を解決することができます。ModelifyはオリジナルのCファイルの編集を実行しないことに注意して下さい。これは望まない変更の発生を防ぐためです。またModelifyは不要なメンテナンスを引き起こすことがないように、オリジナルのCファイルのコピーを実行しません。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 562: S-Functionのコンパイルエラー
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの問題ですです
原因
ModelifyがS-Functionのコンパイルに失敗するとき、すなわちMEXのコマンドがエラーを返す際にこのワークリストのアイテムが生成されます。
推奨するソリューション
この問題において複数の原因が考えられます。もともとのCコード内の問題が原因なのか、あるいは、生成されたC MEX S-Functionファイル内の問題が原因となっている可能性があります。エラーの詳細を確認し(ワークリストのアイテムのダイアログ内の「詳細 >>」ボタンをクリック)、具体的なMEXのエラーを特定して下さい。もともとのCコード内の問題が原因の場合、修正し、再び変換を実施することができます。依存関係が欠けている可能性もあります。C MEX S-Functionファイル内の問題が原因であった場合、以下のEメールアドレス宛てにEnSoft サポートまでお問い合わせ下さい。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 563: 参照モデルが存在しない、もしくは、無効です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの問題ですです
原因
このワークリストのアイテムは、ModelifyがModel Referenceブロックを作成する前に予測していた参照モデルを見つけることができなかった場合に生成されます。モデルが存在しない、またはInport/Outportの数がModelifyの予測とは異なっている可能性があります。
推奨するソリューション
この問題は、参照モデルのインターフェース(InportまたはOutportの数)がModelifyによって変換された後に手動で修正されたか、あるいはモデルが削除された場合に発生する可能性があります。この場合、参照モデルが存在し、予測していたインターフェース(ワークリストのアイテムのメッセージでInportまたはOutportの数を確認してください)を持ち、MATLABの検索のパス上にあることを確認してください。参照モデルを再変換することで、この問題は解決されます。解決されない場合は以下のEメールアドレスよりEnSoftのサポートにお問い合わせください。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 564: S-Functionがメモリに直接アクセスしています
チェックリストのアイテムのタイプ
このチェックリストのアイテムはMATLAB/Simulinkの制約ですです
原因
S-Functionの変換はメモリアドレスからの読み込み、メモリアドレスへの書き込みを行う関数の変換には対応していません。メモリマップドI/Oを実装するコードによく見られます。
推奨するソリューション
この低層のコードの構造の変換は推奨しません。なぜなら、生成されたコードが適切に対応する上で、Simulinkのモデル内で表現する優れた手段が存在しないためです。 この低層のコードを変換せず、代わりにSimulinkのモデルから生成されたコードを使って調節する方法が考えられます。この類のコードには、メモリの場所がInport/Outportとして描写されるSimulink/Statefulowの変換が一部対応しています。したがって、このオプションを利用することが可能な場合はSimulink/Stateflowの変換を選択することも可能です。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 565: 潜在的なアセンブリコード
チェックリストのアイテムのタイプ
このチェックリストのアイテムはソースコードです
原因
このワークリストのアイテムは、アセンブリコードがソースコードに含まれている可能性がある場合に生成されます。アセンブリコードを持つ関数はSimulinkのモデルに変換することはできません。
推奨するソリューション
コメントアウト、もしくはソースファイルからアセンブリコードを削除することを推奨します。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 566: 対応していないint64とuint64のデータ型です
チェックリストのアイテムのタイプ
このチェックリストのアイテムはMATLAB/Simulinkの制約ですです
原因
このワークリストのアイテムは、「int64」や「uint64」のデータ型を利用する必要があるものの、既定の変換のタイプに対して使用中のMATLABのバージョンが対応していない場合に生成されます。 現在、これらのデータ型に対応しているのはMATLAB R2019a以降のSimulinkのみです。
推奨するソリューション
関数をR2019aを利用するSimulinkに変換、または、使用中のMATLABのリリースに対してSimulink/Stateflowで対応しているデータ型を利用するようにソースコードを修正する方法を推奨します。63_cause=このワークリストのアイテムは、ModelifyがModelify Referenceブロックを作成する前に予測していた参照モデルを見つけることができなかった場合に生成されます。モデルが存在しない、または、Inport/Outportの数がModelifyの予測とは異なる可能性があります。
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
チェックリストのアイテムのコード 567: リダクション中にエラーが発生
チェックリストのアイテムのタイプ
このチェックリストのアイテムはModelifyの問題ですです
原因
This worklist item is created when an error occurs while applying reductions.
推奨するソリューション
Please, disable the problematic reduction in the Reductions page and re-convert the function. For further support, please report this problem to EnSoft Support at the email address below.
その他のリソース
ご不明な点はEメールにてEnSoftのサポートにお問い合わせ下さい(support@ensoftcorp.com)。
9 変換の制約
一般的な制約
Simulinkのモデルでは表現することができない、または、対応方法が明確ではないC言語の特性が幾つかあります。その一部を以下に挙げていきます:
- I/O 関数:このコードは摘出する、もしくは、関数をS-Functionに変換することが可能です
- 文字列の処理: SimulinkとStateflowはR2018aがリリースされるまで信号に対する文字列のデータタイプに対応していませんでした。Modelifyはuint8のベクトルとして文字列を処理する初期対応を追加しました。
- マルチスレッディング
- イベント処理、または、関数の割り込み
- 関数へのポインタ
- メモリマップドI/O
- スケジューリング、または、タイミング
- インラインアセンブリコード
具体的な既知の制約
具体的な既知の制約の一覧を以下に掲載します。
変換のタイプの制約
- Code 501: Simulinkのループです
- Code 502: SimulinkのGotoです
- Code 503: Stateflowのバスのベクトルです
- Code 541: 宣言を持つSimulinkのSwitchです
MATLAB/Simulinkの制約
- Code 517: 再帰データ型です
- Code 518: 再帰関数です
- Code 532: 対応していないCastの型です
- Code 537: 非定数のグローバルを初期化します
- Code 542: 複数のEnumを持つSwitchです
- Code 544: MATLABの関数またはキーワードと競合する名前です
- Code 548: 対応していないMATLABのビルトインの型です
- Code 557: ヘッダーファイル内にS-Function型の定義が必要です
- Code 561: 静的関数に対するS-Function
- Code 564: S-Functionがメモリに直接アクセスしています
- Code 566: 対応していないint64とuint64のデータ型です
Modelifyの制約
- Code 514: Voidデータ型です
- Code 515: 関数のポインタ型です
- Code 516: 対応していないプリミティブ型です
- Code 520: グローバルポインタのアドレスを変更しています
- Code 521: 静的ポインタのアドレスを変更しています
- Code 522: グラフが大きすぎます
- Code 524: 対応していないオフセット変数です
- Code 525: 初期化ファイルのポインタのオフセットです
- Code 526: 対応していないリテラルのアドレスです
- Code 527: ポインタの三項の条件
- Code 528: デリファレンスしたエッジを解決しています
- Code 529: 対応していないポインタ表現です
- Code 530: 対応していないポインタのWriteです
- Code 531: 対応していないSwitchの形式です
- Code 533: 対応していない静的ローカルポインタの初期化です
- Code 534: Unionの複数のフィールドです
- Code 535: S-Functionは3次元以上の配列に対応していません
- Code 536: 対応していない三項演算子です
- Code 538: 大きな関数に対して作成されたスタブです
- Code 540: 無視された関数呼び出しです
- Code 545: 対応していないケースのインクリメント/デクリメントの演算子です
- Code 549: 対応していないS-Functionのポートの行列信号です
- Code 551: C言語のライブラリの関数に対してスタブを作成しました
- Code 552: サポートしていないC言語のライブラリ関数への呼び出しです
- Code 555: 関数の呼び出しとショートサーキット
- Code 556: Voidポインタデータ型です
- Code 559: 関数名が反復して使用されています
- Code 560: Simulinkのモデルが許容された幅/高さの最大値を超えています。
トラブルシューティング
一般的な制約への対処は、原因となっている非対応のC言語の特性に左右される可能性があります。大半の場合、コードのリファクタリングを行い、非対応の構造を持つコードの部分を抽出する方法が解決策となります。また、変換のタイプを「変換しないで下さい」に設定することで、囲む関数に対する変換を一時的に除外することも可能です。関数が別の場所から呼び出されると、Modelifyはスタブモデルを生成し、呼び出し元の関数を問題なく変換することができるようになります。
すべての具体的な既知の制約に対して該当するヘルプページを用意しており、有力なソリューション、または、次善策を紹介しています。チェックリスト Item ヘルプページをご参照下さい。
ご質問、または修正のご希望はありますか?
ありがとうございます。
このページについての内容を受け取りました。
