ucosii跑任务5个多钟后就不切换任务,几秒钟后恢复正常,希望路过的各位高手能给点建议

2019-07-20 12:37发布

本帖最后由 lzq12 于 2017-8-10 11:35 编辑

407探索者的板子,程序是在原子哥综合实验例程上面改的,开了4个ucos任务,1个ucos软件定时器,使用到的资源是音乐播放和UDP,还有就是7寸电容屏显示和触摸功能
程序功能描述:通过UDP获取MP3数据,在音乐播放线程里把数据进行解码播放
任务1:7寸电容屏显示和检测触摸功能
任务2:音乐播放,从UDP获取buf,然后进行MP3解码播放
任务3:闪灯程序
任务4:监视线程,监视某些变量的变化从而判断某些程序是否在正常运行,变量在程序的多个地方放置自加,比如在音乐播放的DMA中断
ucos软件定时器:50ms一次,主要做计时变量的自加(供界面显示播放时间等地方用),并运行LwIP_Periodic_Handle()函数。

问题现象:通过UDP获取MP3数据并进行播放,播放了五个多钟头后,在某个时刻,任务1到任务4全都不切换4-6秒钟,此时音乐播放没声音(音乐播放任务都没运行了),触摸屏触摸失效(检测触摸的任务1没有运行了),UDP正常接收,音乐播放用到的DMA正常,串口收发正常,ucos软件定时器运行正常.任务1到任务4都暂停切换了4-6秒钟后,又自己恢复了,又能够正常切换线程,播放和触摸屏显示那些都正常了。

由于每次都是五个多钟头以后才出现该问题,而且出问题的时间不固定,播放的音乐文件数据都是正常的,排查问题很困难,不知道路过的大侠们有没有碰到过ucos任务暂停切换的情况,希望多给点建议。




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。