查看: 2390|回复: 0

[MQX] 求问MQX任务异常解决办法(状态为轻量级事件阻塞)

[复制链接]

该用户从未签到

5

主题

6

帖子

0

新手上路

Rank: 1

积分
41
最后登录
2015-7-10
发表于 2014-12-22 15:16:17 | 显示全部楼层 |阅读模式
本帖最后由 xzjydyx 于 2014-12-22 19:39 编辑

采用K60+MQX4.1.1做的一个录音的实验,遇到如下问题:
录音的流程为通过K60的ADC采样,ADC采样得到的数据通过DMA存入到SD卡中,DAM存储的buffer大小为3200
目前在DMA中断中,设置了音频开始存储的事件标志位,程序如下
if(RecordState[0]!=VoiceIDLE)
{
        taskevent = taskevent | RecordProcess0State;
        _lwevent_set(&VoiceStorage_lwevent,taskevent);

}
在GPIO中断中,设置了开启ADC采样的事件标志位,程序如下
if(GPIO_PDIR_BIT(BSP_CTLIN_nREC1))
{
        taskevent = taskevent & Event_Null;
        taskevent = taskevent | RecordStart0State;
}
else
{
        taskevent = taskevent & Event_Null;
        taskevent = taskevent | RecordStop0State;
}

在storage_voice任务中,设置了等待事件标志位,程序如下
if(_lwevent_wait_ticks(&VoiceStorage_lwevent,taskevent,TRUE,0) != MQX_OK)
{
        printf("storage error\r\n");
//        _task_block();
}
else
{

        ……
}
程序在运行一段时间后,出现了问题,在开启ADC采样的标志位后,storage_voice任务无法执行,显示的状态为Lwevent Blocked,使得lwevent处于waitting状态,具体如图所示

MQX Task Summart

MQX Task Summart

QQ截图20141222142454.jpg

现在这种状态就是shell可以正常执行,但是storage_voice任务就无法执行了,请问大神们接下来该怎么解决!!!

我知道答案 目前已有0人回答
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-9-12 05:37 , Processed in 0.082820 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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