在线时间6 小时
UID3085851
注册时间2014-12-22
NXP金币0
该用户从未签到
新手上路

- 积分
- 41
- 最后登录
- 2015-7-10
|
采用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 LW events
请问目前这情况应该怎么处理
|
|