UCOS创建消息队列,消息队列缓存数组可否从任务中局部变量分配?

[复制链接]
 楼主| 罗菜鸟 发表于 2013-3-20 16:59 | 显示全部楼层 |阅读模式
UCOS中OSQCreate创建消息队列,需要给消息队列分配一个缓存区数组,缓存区数组可否是任务内的局部变量?比如下面的这种方式。
  1. void HalPollTask(void *pdata)
  2. {
  3.         INT8U err;
  4.         void         *HalCbBuf[HAL_CB_CNT];
  5.         void (*func)(void);
  6.         HalCbQ = OSQCreate(&HalCbBuf[0],HAL_CB_CNT);
  7.         while(1)
  8.         {
  9.                 func = (void(*)(void))OSQPend(HalCbQ,0,&err);
  10.                 if(NULL != func)
  11.                 {
  12.                         func();
  13.                 }
  14.         }
  15. }
dong_abc 发表于 2013-3-24 07:33 | 显示全部楼层
只要此任务不被删除,当然可以。

sufeng983 发表于 2013-3-25 17:06 | 显示全部楼层
应该不行,函数内部的变量,其他函数又无法访问。
john_lee 发表于 2013-3-25 18:41 | 显示全部楼层
2楼正确,不解释。
hgjinwei 发表于 2013-3-27 21:47 | 显示全部楼层
在哪不都不是内存啊,有啥不可的.
madcool 发表于 2013-3-29 12:48 | 显示全部楼层
分配肯定是没有问题的,只是要考虑好其他函数如何访问
HORSE7812 发表于 2013-8-17 15:25 | 显示全部楼层
学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

132

主题

522

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部