UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 22275

7.1i サービス パック 2 EDK/GNU - 「code/system.c:10:1: pasting "(" and "fslIn" does not give a valid preprocessing token」というエラー メッセージが表示される

説明

キーワード : EDK, Compiler, MicroBlaze, Macro, mb_interface, コンパイラ, マクロ

重要度 : 標準

概要 :
次のような C ファイルを作成し、EDK 7.1i でコンパイルしました。

#define microblaze_nbread_datafsl(val, id) asm volatile ("nget %0, rfsl" #id : "=d" (##val##))

main() {

unsigned int fslIn;

do
{
microblaze_nbread_datafsl( fslIn, 1 );
}while (1 );

}

すると、コンパイル中に次のようなエラー メッセージが表示されます。

code/system.c:10:1: pasting "(" and "fslIn" does not give a valid preprocessing token
code/system.c:10:1: pasting "fslIn" and ")" does not give a valid preprocessing token
make: *** [robotB/executable.elf] Error 1
Done.

ソリューション

マクロ定義は EDK 7.1i では必要ありません。 コードで、マクロを定義せずに関数を使用してください。ただし、メイン ファイルに mb_interface.h を含める必要があります。

AR# 22275
日付 04/17/2007
ステータス アーカイブ
種類 一般
このページをブックマークに追加