OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6187|回复: 11

求助原子哥及各位大神,UCOSIII +音乐播放实验死机的问题

[复制链接]

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
发表于 2017-2-6 11:50:16 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 tony129 于 2017-2-6 11:56 编辑

UCOSIII +原子哥WAV播放的代码,可以正常播放,但是偶尔会死机。后来查发现一直死在while(wavtransferend==0) 这里,这时候一直在delay_ms(5),因为这里的delay_ms没有任务调度,我改成了系统延时发现还是一样,经常跑到while(wavtransferend==0)这里死机了。其它任务也不执行也就是没有切换任务 ,那这个等待WAV传输的时候到底要不要允许任务切换呢?还有为什么delay_ms这里在改成系统延时后任务也没有切换而是一直跑死在这里,求解大神解答下疑惑~
其它的,这里我创建了3个任务,一个GUI任务,一个刷触屏任务,再一个就是音乐播放任务,优先级顺序为触屏任务>音乐播放任务>GUI任务。
[mw_shl_code=c,true]                        if(res==0)
                        {
                                f_lseek(audiodev.file, wavctrl.datastart);                //跳过文件头
                                fillnum=wav_buffill(audiodev.i2sbuf1,WAV_I2S_TX_DMA_BUFSIZE,wavctrl.bps);
                                fillnum=wav_buffill(audiodev.i2sbuf2,WAV_I2S_TX_DMA_BUFSIZE,wavctrl.bps);
                                
                                audio_start();  
                                while(res==0)
                                {
                                        while(wavtransferend==0)  //等待wav传输完成;
                                        {
                                                delay_ms(5);
                                        }
                                        wavtransferend=0;
[/mw_shl_code]

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
 楼主| 发表于 2017-2-6 17:13:33 | 显示全部楼层
拿综合实验测试,现象是一样的,就是当在播放器界面播放音乐时把SD卡拔出,这时就可能会卡死,触屏无作用,LED也不闪了。
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164817
金钱
164817
注册时间
2010-12-1
在线时间
2098 小时
发表于 2017-2-6 18:07:27 | 显示全部楼层
tony129 发表于 2017-2-6 17:13
拿综合实验测试,现象是一样的,就是当在播放器界面播放音乐时把SD卡拔出,这时就可能会卡死,触屏无作用, ...

你直接拔掉SD卡肯定死了、
我们综合实验,没做这个处理的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
 楼主| 发表于 2017-2-6 18:13:07 | 显示全部楼层
正点原子 发表于 2017-2-6 18:07
你直接拔掉SD卡肯定死了、
我们综合实验,没做这个处理的。


因为我不拔卡测试的话几天才出现一次死机。现象是一样的,原因不一定一样。
我现在就是想处理掉这个,还请原子哥指点下~~
回复

使用道具 举报

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
 楼主| 发表于 2017-2-6 18:45:41 | 显示全部楼层
本帖最后由 tony129 于 2017-2-6 19:08 编辑
正点原子 发表于 2017-2-6 18:07
你直接拔掉SD卡肯定死了、
我们综合实验,没做这个处理的。

目前的问题是:虽然对卡死的地方作超时跳出,但现在任务无法挂起自身一直在执行,且任务不切换了。。。
回复

使用道具 举报

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
 楼主| 发表于 2017-2-7 10:28:29 | 显示全部楼层
没人吗?自己顶顶
回复

使用道具 举报

31

主题

146

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2152
金钱
2152
注册时间
2014-6-30
在线时间
336 小时
发表于 2017-2-7 11:23:55 | 显示全部楼层
改用信号量啊,传输完成直接发送信号量不成吗
在电路上充实自己
回复

使用道具 举报

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
 楼主| 发表于 2017-2-7 22:05:45 | 显示全部楼层
greatxiaoguzi 发表于 2017-2-7 11:23
改用信号量啊,传输完成直接发送信号量不成吗

试过啊,没用,改成信号量后,等待信号量时也不等待了,直接往下执行。就像是改成挂起时,挂起了也没用一样,还在往下执行。
回复

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2017-6-14
在线时间
18 小时
发表于 2017-6-18 23:29:50 | 显示全部楼层
楼主问题解决了吗?我今天也碰到了,跟你描述一样的问题
回复

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2017-6-14
在线时间
18 小时
发表于 2017-6-20 11:07:02 | 显示全部楼层
没动静了。。。帮顶
回复

使用道具 举报

70

主题

275

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2017-6-20
在线时间
185 小时
发表于 2018-1-31 13:54:05 | 显示全部楼层
tony129 发表于 2017-2-7 22:05
试过啊,没用,改成信号量后,等待信号量时也不等待了,直接往下执行。就像是改成挂起时,挂起了也没用一 ...

请问 楼主解决了吗?我也是碰到这个问题了,请问咋解决的啊?
回复

使用道具 举报

7

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
299
金钱
299
注册时间
2016-10-1
在线时间
115 小时
发表于 2022-4-22 14:02:56 | 显示全部楼层
也遇到类似情况
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-3-29 21:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表