コード生成で自作の typedef を許していないのでしょうか。

こんにちは SAM です。

これは、スマートコンフィグレータのコード生成でポートを使ったときの話です。
以下のような自作の型定義をして使おうとするとコンパイルエラーが出ます。

typedef enum
{
LIGHT_ON = 0,
LIGHT_OFF
} light_level_t;


自作のヘッダーファイルに定義しましたが Config_PORT.hでは、インクルードするヘッダーファイルを追加できず
r_cg_userdefine.h で定義するところにたどり着きました。
開発環境は問題ないのです。
light_level_t は r_cg_userdefine.h にあることを認識できます。

Config_PORT.cの内部では以下のようになっていてヘッダーファイルのインクルード順でエラーになります。

/***********************************************************************************************************************
Includes
***********************************************************************************************************************/
#include "r_cg_macrodriver.h"
#include "Config_PORT.h"
/* Start user code for include. Do not edit comment generated here */
/* End user code. Do not edit comment generated here */
#include "r_cg_userdefine.h"

せめて r_cg_userdefine.h が Config_PORT.h の上に記述できればコンパイルは通ると思うのです。
伺いたいのですが、コンパイラーの設定がどこかにあるのでしょうか。
そもそも、コード生成で自作の typedef を許していないのでしょうか。

私が未熟なのかもしれません。分かる方いらっしゃったらよろしくお願いします。

Parents
  • /* Start user code for include. Do not edit comment generated here */

    typedef enum
    {
    LIGHT_ON = 0,
    LIGHT_OFF
    } light_level_t;
    /* End user code. Do not edit comment generated here */

    こうしてみては

Reply
  • /* Start user code for include. Do not edit comment generated here */

    typedef enum
    {
    LIGHT_ON = 0,
    LIGHT_OFF
    } light_level_t;
    /* End user code. Do not edit comment generated here */

    こうしてみては

Children
No Data