4.1 liteos任务的创建删除与延时等操作
4.1.1 创建任务
SDK中设置了一个操作系统抽象层,使得FreeRTOS和liteos系统中主要的一些功能都封装成统一的API,这个抽象层源码实现位于文件wm_osal_liteos.c
和wm_osal_rtos.c
里面。
创建一个系统任务使用下面的API:
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)
参数含义:
- task:任务句柄,用于删除任务或修改任务属性等操作
- entry:任务处理函数入口指针
- param:传给任务函数的参数指针
- stk_start:任务堆栈起始地址。这个参数需要注意,liteos中无需在外部申请任务堆栈,API内部自动申请,所以这里可以传空值,但是FreeRTOS需要在外部申请空间作为任务堆栈,然后用该参数传入。
- stk_size:任务堆栈大小,字节
- prio:任务优先级。liteos优先级默认32以内,0是最高优先级
- flag:任务标志位
返回值:
4.1.2 删除任务
tls_os_status_t tls_os_task_del_by_task_handle(void *handle, void (*freefun)(void))
参数:
- handle:任务句柄,创建任务时的第一个参数
- freefun:删除任务后的回调函数
4.1.3 详细示例
关于系统任务的详细使用方法请参考w800-liteos-sdk内核分析教程相关章节内容: 点击查看liteos系统任务的使用示例