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:
好的,感谢分享!