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

11.1 EDK - C ソース ファイル内へインライン アセンブリを含める方法

説明

C ソース ファイル内にインライン アセンブリ コマンドを配置しようと思います。

MicroBlaze GNU コンパイラーではこれは認識されますか。

このソースを挿入するためのフォーマットを教えてください。

ソリューション

GNU コンパイラー (mb-gcc) は、MicroBlaze 用に構築されており、多くの GNU 機能をサポートしています。 

アプリケーション ソースのサポート機能については、GNU ソース マニュアルを参照してください。 

次は、単純なインライン アセンブル コマンドとメイン ソース コードを配置する例です。

 

int main()  

while(1) 

for (i=128;i>0;i--){ 

microblaze_nbwrite_datafsl(i, 0); 

j++; //below is the equivalent inline assembly commands 

 

asm("lwi r3, r0, 292"); // load word immediate 

asm("addik r3, r3, 1"); // immediate add w/ keep carry 

asm("swi r3, r0, 292"); // store word immediate 

}  

 

その他の例 :

 

int a,b,c = 0; 

asm ("add %0,%1,%2": "=r" (a): "r" (b), "r" (c)) ; 

 

この例では値 b および c を add 命令に渡して、結果を a に戻しています。

AR# 18561
日付 03/05/2015
ステータス アクティブ
種類 一般
ツール
  • EDK - 10.1 sp2
  • EDK - 10.1
  • EDK - 10.1 sp1
  • More
  • EDK - 10.1 sp3
  • EDK - 11.1
  • EDK - 11.2
  • EDK - 11.3
  • EDK - 11.4
  • EDK - 11.5
  • EDK - 12.1
  • EDK - 12.2
  • EDK - 12.3
  • EDK - 12.4
  • EDK - 13.1
  • EDK - 8.1i
  • EDK - 8.1i sp1
  • EDK - 8.1i sp2
  • EDK - 8.1i sp3
  • EDK - 8.2i
  • EDK - 8.2i sp1
  • EDK - 8.2i sp2
  • EDK - 8.2i sp3
  • EDK - 9.1i
  • EDK - 9.1i sp1
  • EDK - 9.1i sp2
  • EDK - 9.1i sp3
  • EDK - 9.2i
  • EDK - 9.2i sp1
  • EDK - 9.2i sp2
  • EDK - 9.2i sp3
  • EDK - 9.2i sp4
  • Less
このページをブックマークに追加