メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

ハードウェア固有の C/C++ コードの記述

ほとんどの場合、デバイス ドライバー コードを Simulink® ブロックに統合するには、ハードウェア ベンダーで提供されている API のラッパー関数を記述する必要があります。

すべての ARM® Cortex®-A プロセッサ派生のサポート パッケージは、GPIO の読み取りおよび書き込み操作に一連の共通した C/C++ ファイルを使用します。

デジタルの読み取りおよび書き込み機能の実装に必要な C/C++ コードにアクセスするには、次の手順に従います。

  1. ARM Cortex-A プロセッサ用の C ヘッダー ファイル MW_gpio.h を開きます。

    edit(fullfile(codertarget.arm_cortex_a.internal.getSpPkgRootDir,'include','MW_gpio.h'))
  2. ヘッダーは、System object で呼び出される C 関数プロトタイプを提供します。

    // Copyright 2012-2015 The MathWorks, Inc.
    #ifndef _MW_GPIO_H_
    #define _MW_GPIO_H_
    #include "rtwtypes.h"
    #ifdef  __cplusplus
    extern "C"
    {
    #endif
        
    // Common definitions
    #define GPIO_MAX_BUF               (128)
    #define GPIO_DIRECTION_INPUT       (1)  // MATLAB numbering
    #define GPIO_DIRECTION_OUTPUT      (2)
    
    extern void MW_gpioInit(int32_T gpio, boolean_T direction);
    extern void MW_gpioTerminate(int32_T gpio);
    extern boolean_T MW_gpioRead(int32_T gpio);
    extern void MW_gpioWrite(int32_T gpio, boolean_T value);
    
    #ifdef __cplusplus
    }
    #endif
    #endif
    
  3. ファイル MW_gpio.h のコピーをデバイス ドライバーのプロジェクト フォルダーのインクルード フォルダー include に保存します (プロジェクト フォルダーの作成を参照)。

  4. ARM Cortex-A プロセッサ用の C ソース ファイル MW_gpio.c を開きます。

    edit(fullfile(codertarget.arm_cortex_a.internal.getSpPkgRootDir,'src','MW_gpio.c'))
  5. ファイル MW_gpio.c のコピーをデバイス ドライバーのプロジェクト フォルダーのソース フォルダー src に保存します (プロジェクト フォルダーの作成を参照)。

警告

ARM Cortex-A ディレクトリ内の MW_gpio.h および MW_gpio.c ファイルは変更しないでください。

多くのハードウェア デバイスでは、C++ コンパイラの使用はサポートされていないか、推奨されていません。C++ 関数を C コンパイラでコンパイルおよびリンクするには、各関数宣言に extern "C" 識別子を追加して、C リンカーで使用できるように関数名をマングルしないようにコンパイラに指示する必要があります。

Simulink データ型を参照する場合は常に、rtwtypes.h ファイルをインクルードする必要があります。

次のセクションでは、System object のSystem object テンプレートの選択を行います。

参考

| |