问题描述
如何读取MicroBlaze Core中的寄存器?
解决/修复方法
MSR寄存器示例
1.要读取MSR,请使用MFS(从特殊位置移动)汇编指令。在C代码中插入汇编指令,如下所示:
int k;
asm(“mfs%0,rmsr”:“= d”(k));
上述指令将MSR的内容传送到“k”变量。或者,如果您知道要将MSR读入哪个寄存器,则可以直接指定它。
2.将内容移动到变量时,您应该知道编译器可能会移动指令,因为它不依赖于任何输入。为避免这种情况,您可能希望在ASM指令中提供依赖关系,如下所示:
int k;
a = b * c;
asm(“mfs%0,rmsr”:“= d”(k):“d”(a));
没有回复内容