4.1 liteos任务的创建删除与延时等操作
<h3>4.1.1 创建任务</h3>
<p>SDK中设置了一个操作系统抽象层,使得FreeRTOS和liteos系统中主要的一些功能都封装成统一的API,这个抽象层源码实现位于文件<code>wm_osal_liteos.c</code>和<code>wm_osal_rtos.c</code>里面。</p>
<p>创建一个系统任务使用下面的API:</p>
<pre><code class="language-c">tls_os_status_t tls_os_task_create(tls_os_task_t *task,
const char* name,
void (*entry)(void* param),
void* param,
u8 *stk_start,
u32 stk_size,
u32 prio,
u32 flag)</code></pre>
<p>参数含义:</p>
<ul>
<li><strong>task</strong>:任务句柄,用于删除任务或修改任务属性等操作</li>
<li><strong>entry</strong>:任务处理函数入口指针</li>
<li><strong>param</strong>:传给任务函数的参数指针</li>
<li><strong>stk_start</strong>:任务堆栈起始地址。这个参数需要注意,liteos中无需在外部申请任务堆栈,API内部自动申请,所以这里可以传空值,但是FreeRTOS需要在外部申请空间作为任务堆栈,然后用该参数传入。</li>
<li><strong>stk_size</strong>:任务堆栈大小,字节</li>
<li><strong>prio</strong>:任务优先级。liteos优先级默认32以内,0是最高优先级</li>
<li><strong>flag</strong>:任务标志位</li>
</ul>
<p>返回值:</p>
<hr />
<h3>4.1.2 删除任务</h3>
<pre><code class="language-c">tls_os_status_t tls_os_task_del_by_task_handle(void *handle, void (*freefun)(void))</code></pre>
<p>参数:</p>
<ul>
<li><strong>handle</strong>:任务句柄,创建任务时的第一个参数</li>
<li><strong>freefun</strong>:删除任务后的回调函数</li>
</ul>
<h3>4.1.3 详细示例</h3>
<p>关于系统任务的详细使用方法请参考w800-liteos-sdk内核分析教程相关章节内容: <a href="https://gitee.com/nicholas3388/w800-liteos-sdk/wikis/3.%20%E4%BB%BB%E5%8A%A1%E7%AE%A1%E7%90%86/3.1%20%E5%88%9B%E5%BB%BA%E6%96%B0%E4%BB%BB%E5%8A%A1">点击查看liteos系统任务的使用示例</a></p>