试图查看Microblaze上的MSR寄存器中的内容

时间:2014-10-26 21:49:11

标签: assembly microblaze

使用OVPSim我希望看一下(模拟)MSR寄存器的内容,例如

  register int x asm("r19");
  asm("mfs r19, msr");
  printf("R19 contains %i\n", x);

这给出了错误:

Compiling application.c
/tmp/ccbSgUEu.s: Assembler messages:
/tmp/ccbSgUEu.s:59: Error: register expected, but saw 'msr'
/tmp/ccbSgUEu.s:59: Fatal error: invalid value for special purpose register
make: *** [application.o] Error 1

使用此代码时:

register int x asm("r19");
asm("mfs r19, 1 ");
printf("R19 contains %i\n", x);

给我:

/tmp/ccWZKjxi.s: Assembler messages:
/tmp/ccWZKjxi.s:59: Error: register expected, but saw '1'
/tmp/ccWZKjxi.s:59: Fatal error: invalid value for special purpose register
make: *** [application.o] Error 1

在Xilinx文档(读取PC)中实际给出的示例:

mfs r2 0

也失败了 - 那么正确的做法是什么?

注意:我正在使用CROSS工具,例如     制作-CHowWorld / CROSS = MICROBLAZE

1 个答案:

答案 0 :(得分:1)

如果寄存器的名称是rmsr,即:

,则代码编译
 asm("mfs r19, rmsr")