luat_soc_sdk_2024 V1.0
线程任务接口函数

类型定义

typedef void(* luat_rtos_task_entry) (void *)
 task的入口函数,函数类型
 
typedef void * luat_rtos_task_handle
 定义task任务句柄
 

函数

int luat_rtos_task_create (luat_rtos_task_handle *task_handle, uint32_t stack_size, uint8_t priority, const char *task_name, luat_rtos_task_entry task_fun, void *user_data, uint16_t event_cout)
 创建一个可以带mailbox机制的task,mailbox是message和event的基础,但是和queue无关
 
int luat_rtos_task_delete (luat_rtos_task_handle task_handle)
 删除task
 
int luat_rtos_task_suspend (luat_rtos_task_handle task_handle)
 挂起某个task
 
int luat_rtos_task_resume (luat_rtos_task_handle task_handle)
 恢复挂起的task
 
void luat_rtos_task_suspend_all (void)
 挂起全部task
 
void luat_rtos_task_resume_all (void)
 恢复全部task
 
void luat_rtos_task_sleep (uint32_t ms)
 task休眠一段时间
 
luat_rtos_task_handle luat_rtos_get_current_handle (void)
 获取当前task的句柄
 
uint32_t luat_rtos_task_get_high_water_mark (luat_rtos_task_handle task_handle)
 获取task堆栈剩余的最小值,叫做“高水位线”
 
void luat_rtos_task_run_time_record_enable (void)
 启动task运行时间记录功能,必须在task调度前启用
 
void luat_rtos_task_run_time_record_print (uint8_t print_ticks)
 打印所有task运行时间和占用百分比
 

详细描述

类型定义说明

◆ luat_rtos_task_entry

typedef void(* luat_rtos_task_entry) (void *)

task的入口函数,函数类型

在文件 luat_rtos.h59 行定义.

◆ luat_rtos_task_handle

typedef void* luat_rtos_task_handle

定义task任务句柄

在文件 luat_rtos.h63 行定义.

函数说明

◆ luat_rtos_get_current_handle()

luat_rtos_task_handle luat_rtos_get_current_handle ( void )

获取当前task的句柄

返回
luat_rtos_task_handle 当前task的句柄

◆ luat_rtos_task_create()

int luat_rtos_task_create ( luat_rtos_task_handle * task_handle,
uint32_t stack_size,
uint8_t priority,
const char * task_name,
luat_rtos_task_entry task_fun,
void * user_data,
uint16_t event_cout )

创建一个可以带mailbox机制的task,mailbox是message和event的基础,但是和queue无关

参数
task_handle[OUT]返回创建的句柄
stack_sizetask的栈空间大小,单位byte,必须4字节对齐
priority优先级,单位是百分比,0%~100%,100为最高等级,由具体实现转换到底层SDK用的优先级
task_nametask名字
task_funtask的入口函数
user_datatask的入口参数
event_cout如果OS允许在中断里malloc,或者不使用message和event机制的,这个参数无视,如果OS不允许在中断里malloc,则这里填写预分配的event空间用于中断里使用,如果写0会使用公共event
返回
int =0成功,其他失败

◆ luat_rtos_task_delete()

int luat_rtos_task_delete ( luat_rtos_task_handle task_handle)

删除task

参数
task_handle
返回
int =0成功,其他失败

◆ luat_rtos_task_get_high_water_mark()

uint32_t luat_rtos_task_get_high_water_mark ( luat_rtos_task_handle task_handle)

获取task堆栈剩余的最小值,叫做“高水位线”

参数
luat_rtos_task_handletask的句柄
返回
task堆栈剩余的最小值,单位为字

◆ luat_rtos_task_resume()

int luat_rtos_task_resume ( luat_rtos_task_handle task_handle)

恢复挂起的task

参数
task_handletask句柄
返回
int =0成功,其他失败

◆ luat_rtos_task_resume_all()

void luat_rtos_task_resume_all ( void )

恢复全部task

◆ luat_rtos_task_run_time_record_enable()

void luat_rtos_task_run_time_record_enable ( void )

启动task运行时间记录功能,必须在task调度前启用

◆ luat_rtos_task_run_time_record_print()

void luat_rtos_task_run_time_record_print ( uint8_t print_ticks)

打印所有task运行时间和占用百分比

参数
print_ticks打印具体ticks

◆ luat_rtos_task_sleep()

void luat_rtos_task_sleep ( uint32_t ms)

task休眠一段时间

参数
ms休眠时间,单位ms

◆ luat_rtos_task_suspend()

int luat_rtos_task_suspend ( luat_rtos_task_handle task_handle)

挂起某个task

参数
task_handletask句柄
返回
int =0成功,其他失败

◆ luat_rtos_task_suspend_all()

void luat_rtos_task_suspend_all ( void )

挂起全部task