W800开发套件鸿蒙系统教程

W800开发套件鸿蒙系统教程


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>

页面列表

ITEM_HTML