TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320C6678: MessageQ_get报错:ti.sysbios.knl.Semaphore: line 207: assertion failure: A_badContext: bad calling context. Must be called from a Task.

Part Number:TMS320C6678

我在使用双核通信,主核在任务中不断循环调用MessageQ_put,从核在任务中通过MessageQ_get接收,但是第一次put可以正确接收下来,主核第二次put的时候就会触发从核报错,报错内容为ti.sysbios.knl.Semaphore: line 207: assertion failure: A_badContext: bad calling context. Must be called from a Task.,可是我并没有用semaphore,想知道这是怎么回事,为什么消息队列只能接收一次消息

Nancy Wang:

as a 说:ti.sysbios.knl.Semaphore: line 207: assertion failure: A_badContext: bad calling context. Must be called from a Task

请问使用的软件版本是多少?参考以下帖子看一下。

e2e.ti.com/…/912921

另外关于messageQ请参考SDK中的例程:

ti-processor-sdk-rtos-c667x-evm-06.03.00.106-Windows\ipc_3_50_04_08\examples\C6678_bios_elf\ex11_ping

software-dl.ti.com/…/index_Foundational_Components.html

,

as a:

你好,我使用的是bios_6_35_04_50,我今天又测试了一下,发现哪怕从核不调用MessageQ_get, 主核在任务中只执行一次MessageQ_put, 也会出现错误ti.sysbios.knl.Semaphore: line 207: assertion failure: A_badContext: bad calling context. Must be called from a Task,还是不清楚是什么原因

,

as a:

找到问题了,我的代码里有一个IPC的中断测试程序,里面进入中断后有一个Mailbox_post,其中有一个参数是BIOS_WAIT_FOREVER,应该是这个参数导致报错

,

Nancy Wang:

好的,感谢分享!

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6678: MessageQ_get报错:ti.sysbios.knl.Semaphore: line 207: assertion failure: A_badContext: bad calling context. Must be called from a Task.
分享到: 更多 (0)