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.

关于qmss使用中遇到的问题



各位专家好:

      最近在调试使用qmss时遇到了以下问题:

      1.核0在中断中给1-6六个核push运算开始的消息(发送时间在一个周期内是随机的),从核pop出消息后进行运算,运算完成后push给核0,核0 pop出所有从核的消息后进行下一步操作,反复测试时发现,第三个核的消息 核0总是pop的比其他核少很多,继续跑程序一段时间后少的消息又pop了出来。

       2.做了测试程序,初始化完成后,核1-6向核0push消息,核0等待pop出所有6个核的消息后进行下一步操作,此时发现,其他核都push成功,但核0只能pop出一个消息来。我修改程序,将srio初始化屏蔽或将中断向量中的qmss中断屏蔽(实际并未使用此中断)后,核0可以pop出所有1-6的消息,进入下一步流程。

      请问专家,我的qmss设置有什么错误才会导致以上两个异常的现象产生?如何定位在哪个环节出了问题?尤其是我做的测试2,屏蔽了一些看似无关的语句,pop就恢复正常了。

                                                                                                                                              感谢您的指导

  • 1 那第三个核接收核0 的消息,pop出的数目正常吗?核3 push的数目正常吗?如果正常的话,就要检查push的descriptor配置是不是正常的

    2  核0的FDQ中的资源是不是正常的?此时去读核0的接收Q中descriptor数目有多少呢?另外根据你的线索,屏蔽掉一些代码后,问题就消失了,建议可以细分下,到底是哪部分代码影响了

  • 不好意思,现在才回复,第三个核少消息,是因为3核有数组越界的地方。第二个问题是我的测试代码时序有问题。谢谢专家!!!