用函数名做变量名?
菜鸟求大神指点,不知道这个是怎么样执行。比如这个函数: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 它的作用是什么,为什么要加上它! 这个是STM32的底层代码,看见别人这样写的。。。。。。求大神指点啊,万分感谢!! 函数指针,
参数类型强制转换
UCOS的代码,与STM32没有任何直接关系。 一个 OSTaskCreate() 函数, 只能创建一个任务.
一旦创建, 任务就进入就绪状态. 等待调度器的调度 函数指针,这种大多数协议栈里面都是这种写法 OSTaskCreateExt(AppTaskStart, (void *) 0); //一次只能创建一个任务,这个任务要执行的函数为AppTaskStart,传递给它的参数就是后面的0。
void AppTaskStart(void *p_arg) { //这个是实际任务要执行的函数,参数p_arg可以在OSTaskCreateExt创建这个任务时的后面一个参数传递进来
}
如果你要创建多个任务,多调几次OSTaskCreateExt函数就好了:
OSTaskCreateExt(func1, arg1);
OSTaskCreateExt(func2, arg2);
OSTaskCreateExt(func3, arg3);
……
页:
[1]