メインコンテンツ

フレームワークの作成

各ターゲットにはフレームワークが必要です。フレームワークは、ターゲットの基本構造を実装するフォルダーとファイルのセットです。MathWorks® コード生成ソフトウェアはこのフレームワークを使用して、ターゲットを認識し、コード生成プロセスをカスタマイズします。

フレームワークは、ターゲット SDK によってターゲットのルート フォルダー (<targetrootfolder>) に作成されます。ターゲット SDK の関数とクラスの完全な一覧については、ターゲットの開発を参照してください。クラスの間の関係については、ターゲット SDK のクラス ダイアグラムを参照してください。

次の表では、フレームワークの一部として作成されるサブフォルダーについて説明します。<targetrootfolder> および <targetrootfolder>/registry は、ターゲット SDK によって MATLAB® パスに追加されます。

ターゲットのフォルダーのサブフォルダー使用

src

生成されたコードと統合される C または C++ ソース ファイル。

include

生成されたコードと統合される C または C++ ヘッダー ファイル。

lib

生成されたコードと統合されるライブラリ。

registry

ターゲットを定義する XML ファイル。これらのファイルは、ターゲット SDK によって作成されます。これらのファイルを手動で編集したり削除したりしないでください。

+matlabshared/+target/+<targetfoldername>

ターゲット固有のユーティリティを実装するために作成する MATLAB ファイル。ターゲット SDK により、ターゲットの名前からフォルダー名が決定されます。

  1. ターゲット用に選択した名前 (例: 'My ARM Cortex A Board Target')、参照ターゲットの名前 'ARM Cortex-A'、およびターゲットのルート フォルダー (例: 'c:/mytarget') を指定して createTarget を呼び出すことで、Target オブジェクトを作成します。

    tgt = createTarget('My ARM Cortex A Board Target','ARM Cortex-A','c:/mytarget');
  2. ターゲットを説明する情報をそのフレームワークに保存します。

    saveTarget(tgt);

    saveTarget は、ターゲット フォルダーを作成し、その場所に新しいターゲット フレームワークを保存します。いつでも saveTarget を使用して、作業内容を増分的に更新および保存できます。

    メモ

    saveTarget の呼び出し時にルート フォルダーに存在しているファイルは削除されます。

  3. Target オブジェクト tgt のプロパティを表示します。

    tgt
    tgt = 
    
      Target with properties:
    
                       Name: 'My ARM Cortex A Board Target'
                     Folder: 'c:/mytarget'
           ReferenceTargets: {[1x1 matlabshared.targetsdk.Target]}
                  Deployers: [0x0 matlabshared.targetsdk.Deployer]
        BaremetalSchedulers: {}
           OperatingSystems: {}
                        PIL: {}
               ExternalMode: {}
                  Profilers: {}

    後の手順で、Target オブジェクトのプロパティの値を設定します。

  4. ターゲットのフレームワークが正常に作成されたことをテストします。

    testTarget(tgt,'framework');

    テストが完了すると、結果の概要が表示されます。テストが PASSED の場合、次の機能の追加に進むことができます。それ以外の場合、テストが FAILED または INCOMPLETE であれば、テストの概要の下にテスト診断ログへのリンクが表示されます。

    メモ

    ターゲットでサポートされているすべてのハードウェアのすべての機能をテストするには、2 番目の引数を指定せずに testTarget を呼び出します。ただし、すべての機能をテストするには長い時間がかかる場合があります。ターゲットを実装する際は、個々の機能のテストのみを実行することを検討してください。ターゲットが完全に実装されたら、すべての機能をテストすることをお勧めします。