This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

多线程编程中遇到的问题

Other Parts Discussed in Thread: OMAP-L137

用的板子是OMAP-L137,而且是新手,可参考的资料少,身边没有找到可以直接问的人,一直在论坛上真诚地提问,可能因为问题太外行,太水了,几乎无人问津,但是只能借助这条途径来搜寻有价值的帮助。 

现在来描述我的问题。我定了3个TSK, 分别完成采集语音、处理语音、对结果编码发射的任务。在主函数里,

void main()
{

     EVMOMAPL137_init( );

 SCOM_init();
 SCOM_create("SamplingToProcessing", NULL);
 SCOM_create("ProcessingToSampling", NULL);
 SCOM_create("SendingToProcessing", NULL);
 SCOM_create("ProcessingToSending", NULL); 
  return;

}

在各个事件的函数模块里,都有打开、接收信息、发送信息的语句,形如

 

SCOM_Handle   HSamplingToProcessing, HProcessingToSampling, HProcessingToSending, HSendingToProcessing;

 ScomProcessingToSampling processing2sampling;
 ScomProcessingToSending  processing2sending;
 ScomSamplingToProcessing *sampling2processing;
 ScomSendingToProcessing  *sending2processing;  

 CIS_Init();  // 语音处理算法初始化
 
   // 打开要使用的消息队列
   HProcessingToSampling = SCOM_open("ProcessingToSampling");
   HProcessingToSending  = SCOM_open("ProcessingToSending");
   HSamplingToProcessing = SCOM_open("SamplingToProcessing");
   HSendingToProcessing  = SCOM_open("SendingToProcessing"); 

  for(;;)
 {
  // 接收来自语音采集任务的消息
   sampling2processing = SCOM_getMsg(HSamplingToProcessing, SYS_FOREVER);
   sending2processing  = SCOM_getMsg(HSendingToProcessing, SYS_FOREVER);
  
  // 取出原始语音的指针
   InBuff = sampling2processing->inbuff;
  
  // 处理单帧语音
  ProcessingSingleFrame(InBuff, Ay);
  // 将刺激幅度参数通过消息传给参数帧发送任务
   processing2sending.ay = Ay;

  // 处理完毕,向语音采集任务发送消息
   SCOM_putMsg(HProcessingToSampling, &processing2sampling);
  // 向参数帧发送任务发送消息
    SCOM_putMsg(HProcessingToSending, &processing2sending);
 }

}

我觉得逻辑上没问题啊,编译也通过,但是运行后,显示得是只有两个事件运行了,还不是并行的那种,可能是什么问题?或者,我应该有针对性地看些什么资料?真的是跪求了~