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.

请问程序加载GEL运行和不加载GEL运行,用platform_init初始化有什么区别

Other Parts Discussed in Thread: SYSBIOS

现在有个6678下的程序,加载GEL时能运行正确,但是不加载GEL,使用platform_init初始化的话,运行一段时间后,程序会跑飞,出现如下两条语句

[C66xx_7] ti.sysbios.gates.GateMutex: line 97: assertion failure: A_badContext: bad calling context. See GateMutex API doc for details.

 [C66xx_7] xdc.runtime.Error.raise: terminating execution

请问这是什么原因造成的错误?

  • 建议查一下platform_init()的源码和Gel中初始化单板源码的区别。

  • 我现在把问题进一步定位,发现如果不加载GEL的话,网口向外发送一定数量包之后,Qmss_queuePop就一直不成功,请问这是什么原因

  • 您好,

               Qmss_queuePop()不成功,有没有检查描述符的情况? 网口的寄存器有没有发现异常的情况?

                从您提供的信息上,很难马上定位问题,建议还是能从检查GEL做了哪些配置,再分析为何这些配置会影响问题来入手。

  • 我查看了一下0-8000队列里的描述符个数。发现队列711(RX)里面是正常的16个,但队列736(TX)里面的确为空,所以POP不出来。但是在队列648(PA专用的最后一个队列)中发现了15个描述符。感觉发了一定数目后,发送不成功,导致TX队列中描述符减少,PA队列中描述符增加。如果说回收处理不正常的话,不应该出现发送160多次才POP不成功的情况,而且TX描述符回收是自动的吧,有点想不明白为什么突然就不行了。