完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
UCOSIII +原子哥WAV播放的代码,可以正常播放,但是偶尔会死机。后来查发现一直死在while(wavtransferend==0) 这里,这时候一直在delay_ms(5),因为这里的delay_ms没有任务调度,我改成了系统延时发现还是一样,经常跑到while(wavtransferend==0)这里死机了。其它任务也不执行也就是没有切换任务 ,那这个等待WAV传输的时候到底要不要允许任务切换呢?还有为什么delay_ms这里在改成系统延时后任务也没有切换而是一直跑死在这里,求解大神解答下疑惑~
其它的,这里我创建了3个任务,一个GUI任务,一个刷触屏任务,再一个就是音乐播放任务,优先级顺序为触屏任务>音乐播放任务>GUI任务。 [C] 纯文本查看 复制代码 if(res==0) { f_lseek(audiodev.file, wavctrl.datastart); //跳过文件头 fillnum=wav_buffill(audiodev.i2***uf1,WAV_I2S_TX_DMA_BUFSIZE,wavctrl.bps); fillnum=wav_buffill(audiodev.i2***uf2,WAV_I2S_TX_DMA_BUFSIZE,wavctrl.bps); audio_start(); while(res==0) { while(wavtransferend==0) //等待wav传输完成; { delay_ms(5); } wavtransferend=0; |
|
相关推荐
10个回答
|
|
|
拿综合实验测试,现象是一样的,就是当在播放器界面播放音乐时把SD卡拔出,这时就可能会卡死,触屏无作用,LED也不闪了。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
目前的问题是:虽然对卡死的地方作超时跳出,但现在任务无法挂起自身一直在执行,且任务不切换了。。。
|
|
|
|
|
|
没人吗?自己顶顶
|
|
|
|
|
|
改用信号量啊,传输完成直接发送信号量不成吗
|
|
|
|
|
|
试过啊,没用,改成信号量后,等待信号量时也不等待了,直接往下执行。就像是改成挂起时,挂起了也没用一样,还在往下执行。
|
|
|
|
|
|
楼主问题解决了吗?我今天也碰到了,跟你描述一样的问题
|
|
|
|
|
|
没动静了。。。帮顶
|
|
|
|
|
|
请问 楼主解决了吗?我也是碰到这个问题了,请问咋解决的啊?
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1018 浏览 1 评论
1849 浏览 0 评论
1830 浏览 1 评论
3254 浏览 5 评论
3581 浏览 9 评论
1021浏览 1评论
1850浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1360浏览 1评论
1852浏览 0评论
1178浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 02:48 , Processed in 0.910759 second(s), Total 62, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4868