任务创建

## 任务创建 - 函数接口介绍 ```language //TaskFunc_t -> typedef void(* TaskFunc_t) (void *) UINT32 xy_TaskCreate( TaskFunc_t task_entry, char *name, int StackSize, void *pvParameters, int Priority, void *TCB_hanndler ) ``` ## 参数说明: |参数|功能说明| |-|-|-| |task_entry|任务执行函数的指针| |name |任务名字| |StackSize |任务栈大小| |pvParameters|任务参数,如果没有入参可设置为null| |Priority |任务优先级,默认10| |TCB_hanndler |任务句柄| ## 返回值 |值|说明| |-|-|-| |0x02000207 |任务句柄为null| |0x02000201 |任务初始化参数为null| |0x02000205 |任务名字为null| |0x02000205 |任务执行函数的指针| |0x02000203 |不正确的任务优先级| |0x02000220 |任务栈大小太大| |0x02000206 |任务栈大小太小| |0x02000211 |没有可用的空闲任务控制块| |0x03000200 |任务创建内存不足| |0 |任务创建成功| ## 示例 ```language int g_user_task_Handle; //用户任务代码 static void* user_task_demo(void *args) { while(1) { xy_sleep(10); } } //用户编写的任务创建代码demo void user_task_init() { xy_TaskCreate((TaskFunc_t)user_task_demo,"user_task_demo",0x800,NULL,10,&g_user_task_Handle); } //将创建的任务函数放入 user_app_init() //本函数在 /userapp/Src/user_hook_func.c 文件下 void user_app_init() { /* 其它代码 */ user_task_init(); } ``` ## 用户开发注意事项 - 用户仅需在main.c的user_app_init()接口中,进行用户任务的初始化;在user_sys_init中,添加系统级初始化接口,GPIO重映射等。 - 任务创建代码放入 user_sys_init 函数下,任务方可执行。 - 用户二次开发只能使用userapp下头文件中的接口、宏值等,不得调用非userapp目录下的任何接口。 - 用户不得修改芯翼任何代码,如果需要参考芯翼的实例,请自行新建文件,否则SDK迭代会影响用户代码的同步。 - 开源RTOS,具体使用方法请查阅华为LiteOS开源手册