您好~我的一个多核程序,跑着跑着就会出现如图所示的情况,但我在程序中并没有进行Reset的操作,觉得可能是我使用的地址越界,给相应的Reset寄存器进行了赋值,但是我并没有查到相应的寄存器的地址。希望各位能指点下,帮忙分析是什么原因?如果跟我想的一样的话,希望能将相应的地址告诉我一下。谢谢~
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
可能是代码跑飞了所导致的,可以在代码中加入打点信息,先判断在代码跑飞的范围,然后一点点定位。
控制CPU local reset的寄存器是MDCTL23-28,具体地址对于不同芯片是不同的,
6670底下是从0x02350a5c到0x02350a70
其他芯片可以从芯片手册中找到
MDCTL寄存器的偏移地址在sprugv4a PSC手册中Table3.1有定义,
要计算出寄存器的绝对地址,还需要参考6678 data manul中table2-2 memory map summary中PSC的起始地址(现在是0x02350000)
你上面提到的Doorbell中断一直进的问题,是不是因为在中断中没有清楚SRIO的一些中断指示状态位,
或者是发送端发的时候有问题,从现象看你的情况很像是代码跑飞。
你好,
代码跑飞的原因一般有:
(1) 代码访问了空指针
(2)代码段被改写
(3)堆栈溢出
你现在使用的doorbell中断的频率是多大啊,会不会有可能因为doorbell频率太快,CPU中断响应不过来?