我想知道如何使用iabr寄存器设置断点。手册说明了异步指令,但这似乎没有用。有人可以帮忙吗?
我正在使用的代码:
asm ("isync");
asm volatile ("mtspr 1010,%0;" : : "r"(val));
asm ("isync");
asm ("isync");
答案 0 :(得分:0)
MPC604给出了一个提示:
当IABR中的地址(位0到29)与完成单元中的下一条指令匹配时,会发生指令地址断点异常,并且IABR使能位(位30)设置为1.
如果要打破的指令的地址是addr
,则需要执行val = addr | 2
。我不知道31号是什么。