打印

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

[复制链接]
2410|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
罗菜鸟|  楼主 | 2013-3-20 16:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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();
                }
        }
}

相关帖子

沙发
dong_abc| | 2013-3-24 07:33 | 只看该作者
只要此任务不被删除,当然可以。

使用特权

评论回复
板凳
sufeng983| | 2013-3-25 17:06 | 只看该作者
应该不行,函数内部的变量,其他函数又无法访问。

使用特权

评论回复
地板
john_lee| | 2013-3-25 18:41 | 只看该作者
2楼正确,不解释。

使用特权

评论回复
5
hgjinwei| | 2013-3-27 21:47 | 只看该作者
在哪不都不是内存啊,有啥不可的.

使用特权

评论回复
6
madcool| | 2013-3-29 12:48 | 只看该作者
分配肯定是没有问题的,只是要考虑好其他函数如何访问

使用特权

评论回复
7
HORSE7812| | 2013-8-17 15:25 | 只看该作者
学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

132

主题

522

帖子

8

粉丝