AR# 46408

13.4 EDK - SDK C コードでレジスタにアクセスする方法

説明

レジスタの一部、特に専用レジスタ (スタック ポインターなど) は C コード内で参照すると便利です。これにアクセスするにはどうすればよいでしょうか。

ソリューション

アセンブリを使用するのが 1 つの方法です。MicroBlaze の場合、スタック ポインターにアクセスする方法は次のようになります。

register int *stack_ptr asm("r1");

これで専用レジスタにアクセスでき (MicroBlaze では r1)、register-int データ型に設定することができます。これでスタック アドレスのデータの取得、スタック アドレスの印刷などのファンクション用にポインターを参照することができます。

このアドレスを印刷するには、stack_ptr タイプを次のように設定します。

printf("This is my stack pointer: %p", ( void * )stack_ptr);
AR# 46408
日付 12/15/2012
ステータス アクティブ
種類 一般
ツール