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任务暂停切换的情况,希望多给点建议。




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
正点原子
1楼-- · 2019-07-20 16:20
这种问题不好找哦,加入printf,打印关键数据试试吧
lzq12
2楼-- · 2019-07-20 20:05
 精彩回答 2  元偷偷看……
lzq12
3楼-- · 2019-07-20 20:57
 精彩回答 2  元偷偷看……
正点原子
4楼-- · 2019-07-21 02:54
lzq12 发表于 2017-8-12 10:51
在很多关键节点都加入了,在ucos暂停切换任务时把ucos的那些任务队列什么的都打出来了,结果就看到,所有 ...

慢慢查了,这种问题是不好找
mygod
5楼-- · 2019-07-21 04:08
很久之前遇到过这样问题
lzq12
6楼-- · 2019-07-21 06:36
 精彩回答 2  元偷偷看……

一周热门 更多>