4.1 任务创建
<p>在SDK中,通过操作系统抽象层的API进行新任务的创建:<code>tls_os_task_create</code></p>
<p>下面代码片段是创建一个新任务的示例:</p>
<pre><code>#include "wm_include.h"
tls_os_task_t thdl = NULL;
void user_thread_start (void *data)
{
while(1) {
printf("task is running\n");
tls_os_time_delay(1000);
}
}
void UserMain(void)
{
printf("\n user task \n");
tls_os_task_create(&thdl, "user_thread",
user_thread_start,
(void *)0,
(void *)NULL,
1024, // 任务栈的大小
5,
0);
#if DEMO_CONSOLE
CreateDemoTask();
#endif
//用户自己的task
}</code></pre>
<ul>
<li>第一个参数是任务句柄,之后可以根据该句柄对此任务进行删除/暂停/恢复运行/查询状态等等操作</li>
<li>第二个参数是任务名</li>
<li>第三个参数是任务的处理函数</li>
<li>第四个参数是传给任务处理函数的参数</li>
<li>第五个参数是任务堆栈的首地址,LiteOS中不用传,设置为NULL即可;FreeRTOS中需要在外部申请堆栈然后将堆栈地址通过此参数传给系统保存到任务控制块中</li>
<li>第六个参数是任务堆栈大小</li>
<li>第七个参数是任务优先级</li>
<li>第八个参数是标志位,一般不用</li>
</ul>