我按照SDK里web audio和mqtt_client的例子, 打算实现一个远程通过MQTT服务控制音频播放的产品。例子单独运行没有任何问题,但是把2个例子结合到一起碰到了很奇怪的问题,当连接mosquitto服务器时几个数据包下来DMA发送就停止了。出问题后所有任务都正常,mqtt后续消息收发也正常。就是音频DMA中断没有了!
做过几个实验:
注释掉mqtt任务一切正常;
把mqtt任务换成while(1); 死循环也没有问题;说明不是CPU时间不够造成问题。
在mqtt库里增加一些osi_Sleep()有时能跑下去,但是稍微改点代码就会出同样问题,说明没有找到真正的原因;
看了IRQ寄存器,对应的IRQ clean被置1了,原因不明。(address 0xE000E180开始对应的中断bit);JTAG里手工改不回去
用HTTP cli库下载文件播放,音频没有任何问题;
现在没有任何头绪了,麻烦大牛提供一些线索,非常感谢!