查看: 2352|回复: 1

[MQX] 求助MQX关于轻量级事件阻塞的一个疑问

[复制链接]

该用户从未签到

5

主题

6

帖子

0

新手上路

Rank: 1

积分
41
最后登录
2015-7-10
发表于 2014-12-22 14:35:02 | 显示全部楼层 |阅读模式
采用K60+MQX4.1.1做的一个录音的实验,遇到如下问题:
录音的流程为通过K60的ADC采样,ADC采样得到的数据通过DMA存储到FIFO,再将FIFO中数据存入到SD卡中
目前在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 Summary

MQX Task Summary

MQX LW events

MQX LW events

请问目前这情况应该怎么处理



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

使用道具 举报

该用户从未签到

7

主题

196

帖子

0

中级会员

Rank: 3Rank: 3

积分
380
最后登录
1970-1-1
发表于 2014-12-23 14:35:31 | 显示全部楼层
楼主可以将这个问题创建一个service request,  详情见 www.freescale.com/support 中Create Service Request
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-20 13:29 , Processed in 0.092743 second(s), 23 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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