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# 18568

6.1i EDK GNU - XIo_Out32 マクロが余分なかっこで囲まれていると MB-GCC で読み出し命令が生成される

説明

キーワード : mb-gcc, EDK, read, instruction, Xlo_Out32, 読み出し, 命令

重要度 : 標準

概要 :
XIo_Out32 マクロが複数のかっこで囲まれていると、*(ptr) = value コンストラクトが *(ptr) ロケーションから 1 回余分に読み出すようにコンパイルされます。 これにより、レジスタへの代入の際に発見が困難なバグが作成され、このレジスタからの読み出しで別の問題が発生します (FIFO ペリフェラルなど)。

次の 2 つのコードを比較してください。

/* 正しいコード */
main()
{
XIo_Out32(0x12, 0x34);
return 0;
}

addik r3,r0,18 // 0x12
addik r4,r0,52 // 0x34
sw r4,r0,r3
rtsd r15,8
add r3,r0,r0

/* 問題が発生するコード */
main()
{
(XIo_Out32(0x12, 0x34));
return 0;
}

addik r3,r0,18 // 0x12
addik r4,r0,52 // 0x34
sw r4,r0,r3
lw r5,r0,r3 // unexpected read!
rtsd r15,8
add r3,r0,r0

ソリューション

このエラーを回避するには、余分なかっこを使用しないでください。

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