よくある質問(FAQ)

「詳細解析モード」に必要なCオプションパラメータの使い方が分かりません。使用方法を教えてください。

Cオプションパラメータについて

質問

「詳細解析モード」に必要なCオプションパラメータの使い方を教えてください。

回答

CasePlayer2の「言語設定」で選択した言語仕様(ANSI-C or C99 or GNU-C)に対して 言語拡張された記述(キーワード)を使用している場合、以下のエラーが表示されます。
■解析エラー
CasePlayer2-E-SYN : 宣言が正しくありません.

まずは、使用コンパイラの言語仕様とCasePlayer2の「言語設定」が合っていることをご確認ください。「言語設定」を変更してもエラーが解消されない場合は「Cオプションパラメータ」を使用しエラーを回避します。


★注意事項
解析エラーがシステムヘッダー(stdio.h 等)内で発生している場合は、「暗黙のキーワード」が影響している可能性があります。「暗黙のキーワード」については、キーワードを「プレインクルードファイル」へ設定することで回避します。 詳細はこちら

■Cオプションパラメータの使い方

「Cオプションパラメータ」を設定することでエラー回避可能な記述「キーワード」は、下記(5 種類)です。

・割り付け先を示すキーワード
・型に対する属性を示すキーワード
・非標準の型を示すキーワード
・アセンブラの記述を示すキーワード
・その他のキーワード

① 割り付け先を示すキーワード
割り付け先(メモリ空間等)を指定するキーワードで、変数(又は関数)宣言の前に記述します。

■使用例
初期化しないメモリへの配置宣言 (事例:IAR)

__no_init char buffer[10240];

■Cオプションパラメータへの設定キーワード
キーワード:_no_init
種類   :STRAGE
後置記述 :なし

② 型に対する属性を示すキーワード
型の属性を指定するキーワードで、「型」宣言の前に記述します。

■使用例
構造体メンバを1バイト(ベタ付け)アライメントで割り付けるための宣言  (事例:IAR,ARMCC)

__packed struct tag {
   char ch;
   int val;
};
struct tag pkdt;

■Cオプションパラメータへの設定キーワード
キーワード:__packed
種類   :TYPEATT
後置記述 :なし

③ 非標準の型を示すキーワード
非標準の型を 記述するキーワードです。
非標準の型とは、標準C言語には存在しないコンパイラ固有の型名を指します。

■使用例
NEONベクトル型(unsigned short×8)の変数を宣言 (事例:ARMCLANG,GCC)

uint16x8_t vector;

■Cオプションパラメータへの設定キーワード
キーワード:uint16x8_t
種類   :TYPE
後置記述 :なし

④ アセンブラの記述を示すキーワード (例1)
Cソース内に一部アセンブラ命令を挿入するための記述です。
記述形式は「キーワード (後置記述)」の形式になります。

■使用例
記述形式:__ASM("アセンブラ命令")

__ASM ("msr cpsr, 1");

■Cオプションパラメータへの設定キーワード
キーワード:__ASM
種類   :ASM
後置記述 :(EXPRESSION)

⑤ アセンブラの記述を示すキーワード (例2)
関数全体がアセンブラ命令で記述されている関数です。
記述形式は「キーワード 後置記述{後置記述}」の形式になります。

■使用例
記述形式:"asm void XXXXXXXX(){アセンブラ命令}"

asm void function()
{

  /* アセブラ命令 */
   :
 NOP
}

■Cオプションパラメータへの設定キーワード
キーワード:asm
種類   :ASM
後置記述 :EXPRESSION{EXPRESSION}

⑥ その他のキーワード (例1)
その他(①~⑤以外)の用途で使用されるキーワードです。
CasePlayer2では、本キーワードの記述が無いものとして解析されます。

■使用例
先頭タスク(RTOS)となる関数の宣言 (事例:IAR)

__task void func(void)
{
  /* task制御 */
}

■Cオプションパラメータへの設定キーワード
キーワード:__task
種類   :IGNORE
後置記述 :なし

⑦ その他のキーワード (例2)
その他(①~⑤以外)の用途で使用される「後置記述」の有るキーワードです。
CasePlayer2では、本キーワード(後置記述を含む)の記述が無いものとして解析されます。

■使用例
関数属性の宣言「__attribute__(後置記述)」 (事例:GCC)

void func() __attribute__((noreturn));

■Cオプションパラメータへの設定キーワード
キーワード:__attribute__
種類   :IGNORE
後置記述 :(EXPRESSION)