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实现多任务间通信



你好:

     我现在使用6670实现WCDMA物理层编解码部分以及协议层,物理层编解码部分分别在两个task中实现,协议层上下行分别在另外两个task中实现,现在遇到一个问题: 协议层task处理完的数据需要以中断方式通知物理层task去编码,同样物理层task解码完的数据需要告知协议层task完成协议部分的再处理,请问下在C6670中以何种方式实现这两个线程之间的数据交互比较合适?我看了些资料,提到使用基于QMSS的IPC,但看了例程发现代码集成度太高,无法看到具体的实现过程,也不太看得懂,我想能否直接采用qmss去实现?如果可以,能否给个例子参考一下?谢谢了!

  • 你需要看看Navigator的使用手册,QM管理了一些硬件队列,你可以把这些队列作为消息通道来用,比如,一个task把任务包推送到某一个队列,就可以触发一个中断,中断里调度另一个任务进行处理

  • 你好,我现在按照这种方式去实现了下,遇到这样一个问题:我在XX.C文件下定义了一个QMSS_QUEUE handle类型的全局变量作为global descriptor queue,并在task1中使用cppi_initdescriptor这个函数的返回值给该全局变量赋值,然后在该task1结束前新建了另外一个线程task2,现在情况是,程序在task1中执行时,查看global queue相应寄存器中descriptor的数目为cppi_initdescriptor分配的数目,而当程序在task2线程执行时,global queue相应寄存器中descriptor的数目突然就变为0,实在不知道是什么原因。。还请指导一下,谢谢了!

  • 请问你的问题解决了么?我也出现descriptor的数目突然就变为0的情况,能不能交流一下