2014-10-26 55 views
0

的MSR寄存器使用OVPSim我希望在(模擬)的內容偷看MSR註冊如想看看是在Microblaze的

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工具,例如 讓-C的HelloWorld/CROSS = MicroBlaze的

回答

1

代碼編譯如果寄存器的名字作爲RMSR,即,:

asm("mfs r19, rmsr")