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

8.1i EDK - C コードで推論した遅延が最適化で削除される

説明

キーワード : EDK, GNU, Delay, Optimization, Software, C, Code, 遅延, 最適化, ソフトウェア, コード

既存のデザインを EDK 6.3 から EDK 8.1i に移行して C コードを再コンパイルすると、C コードで推論した遅延が最適化で削除され、システムが正しく動作しません。

ソリューション

遅延を単純な for() ループで推論すると、C コードのコンパイル中、コンパイラにより Loop Collapsing アルゴリズムが適用された後に、while ループが最適化されます。

for() ループのインクリメントされる整数に C キーワード Volatile を使用すると、この問題が修正されます。

修正前 :
"
int i;
for (i=0; i<100000; i++);
"
修正後 :
"
volatile int i;
for (i=0; i<100000; i++);
"
AR# 22810
日付 12/15/2012
ステータス アクティブ
種類 一般
このページをブックマークに追加