功能测试使用trace比对时,77号软中断,开trace比对过不了,不开的话能pass

我们在功能测试的时候使用trace比对出现了一个问题,在77号软中断测例,开trace比对过不了,不开的话能pass,但是我们发现我们的执行过程和龙芯的CPU一样,就是有两条指令在trace的文件里面开头是零,应该是代表着不会比对,但是那条指令是     “li  S2,1” ,应该是要回写寄存器的,应当是要参与比对的,但由于文件开头是零,所以trace比对会跳过这一条指令和我们比对,这样就导致我们这条指令和下一条回写的进行比对出错,使得trace比对出错,无法通过,请问这个问题是什么原因? 
2018-07-30_11-11-30屏幕截图.png

zhiling.png


 
已邀请:

邢金璋

赞同来自:

1.confreg模块有一个寄存器较open_trace,该寄存器为1表示进行Trace比对,为0表示不比对。
2.看0xbfc005e4那条指令,该指令的作用是写open_trace为0,也就是要跳过后续指令的比对。
3.看起来像是你的CPU的store buffer做的很深?所以open_trace还未变成0,就先执行li s2, 1完成了。
4.如果不是第3点的原因,可能是0xbfc005e4那条指令执行出错了,store未真正写回。
5.如果是确认是第3点的原因,可以先不改CPU。
5.后续,我看能不能规避这一风险,更新一下Trace比对机制。

要回复问题请先登录注册