UCOS中OSQCreate创建消息队列,需要给消息队列分配一个缓存区数组,缓存区数组可否是任务内的局部变量?比如下面的这种方式。- void HalPollTask(void *pdata)
- {
- INT8U err;
- void *HalCbBuf[HAL_CB_CNT];
- void (*func)(void);
- HalCbQ = OSQCreate(&HalCbBuf[0],HAL_CB_CNT);
- while(1)
- {
- func = (void(*)(void))OSQPend(HalCbQ,0,&err);
- if(NULL != func)
- {
- func();
- }
- }
- }
|