打印

用函数名做变量名?

[复制链接]
792|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wo142857|  楼主 | 2016-12-9 22:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
菜鸟求大神指点,不知道这个是怎么样执行。比如这个函数:
OSTaskCreateExt(AppTaskStart, (void *) 0)
void AppTaskStart(void *p_arg)

函数里面又包含函数名,这个是多任务吗??里面是不是可以包括多个任务,比如这样

OSTaskCreate(AppTaskStart, (void *) 0,AppTaskStart1,AppTaskStart2,AppTaskStart3)

每个任务独立执行,如果我要写一个串口通信,一个网络通信,一个本地任务,是不是可以这样写:

OSTaskCreate(UART_TASK, NET_TASK,Local_TASK),然后可以通过约束条件来选择执行哪个任务

还有就是(void *) 0 它的作用是什么,为什么要加上它!

相关帖子

沙发
wo142857|  楼主 | 2016-12-9 22:20 | 只看该作者
这个是STM32的底层代码,看见别人这样写的。。。。。。求大神指点啊,万分感谢!!

使用特权

评论回复
板凳
aozima| | 2016-12-9 22:25 | 只看该作者
函数指针,
参数类型强制转换

UCOS的代码,与STM32没有任何直接关系。

使用特权

评论回复
地板
airwill| | 2016-12-10 13:43 | 只看该作者
一个 OSTaskCreate() 函数, 只能创建一个任务.
一旦创建, 任务就进入就绪状态. 等待调度器的调度

使用特权

评论回复
5
freeelectron| | 2016-12-10 17:03 | 只看该作者
函数指针,这种大多数协议栈里面都是这种写法

使用特权

评论回复
6
computer00| | 2016-12-15 08:51 | 只看该作者
OSTaskCreateExt(AppTaskStart, (void *) 0); //一次只能创建一个任务,这个任务要执行的函数为AppTaskStart,传递给它的参数就是后面的0。

void AppTaskStart(void *p_arg) { //这个是实际任务要执行的函数,参数p_arg可以在OSTaskCreateExt创建这个任务时的后面一个参数传递进来
}

如果你要创建多个任务,多调几次OSTaskCreateExt函数就好了:
OSTaskCreateExt(func1, arg1);
OSTaskCreateExt(func2, arg2);
OSTaskCreateExt(func3, arg3);
……

使用特权

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

本版积分规则

2

主题

7

帖子

0

粉丝