华为LiteOS系统使用-任务调度函数-第一篇

1.最近项目遇到华为的LiteOS小型操作系统,使用学习

2. 先打开一个工程LiteOS_Kernel-master\projects\LPC824_LITE_KEIL

3. main.c里面2个关键函数。

1 LOS_KernelInit(); //系统初始化
2 LOS_Start();//系统启动

4.任务创建函数

 1 void LOS_Demo_Entry(void)
 2 {
 3     UINT32 uwRet;
 4     TSK_INIT_PARAM_S stTaskInitParam;
 5 
 6     (VOID)memset((void *)(&stTaskInitParam), 0, sizeof(TSK_INIT_PARAM_S)); //堆栈初始化为0
 7     stTaskInitParam.pfnTaskEntry = (TSK_ENTRY_FUNC)LOS_Demo_Tskfunc;  //任务入口函数
 8     stTaskInitParam.uwStackSize = LOSCFG_BASE_CORE_TSK_IDLE_STACK_SIZE; //任务堆栈大小
 9     stTaskInitParam.pcName = "ApiDemo"; //任务名字
10     stTaskInitParam.usTaskPrio = 30;  /、任务优先级
11     uwRet = LOS_TaskCreate(&g_uwDemoTaskID, &stTaskInitParam);  //创建任务
12 
13     if (uwRet != LOS_OK)
14     {
15         dprintf("Api demo test task create failed\n");
16         return;
17     }
18     return;
19 }

 5. 其中和任务相关的函数,主要是这些

 1 //创建一个任务,但是先阻塞不运行
 2 UINT32  LOS_TaskCreateOnly (UINT32 *puwTaskID, TSK_INIT_PARAM_S *pstInitParam) 
 3 
 4 //创建一个任务
 5 UINT32  LOS_TaskCreate (UINT32 *puwTaskID, TSK_INIT_PARAM_S *pstInitParam) 
 6 
 7 //恢复一个任务
 8 UINT32  LOS_TaskResume (UINT32 uwTaskID) 
 9 
10 //阻塞一个任务
11 UINT32  LOS_TaskSuspend (UINT32 uwTaskID) 
12 
13 //删除一个任务
14 UINT32  LOS_TaskDelete (UINT32 uwTaskID) 
15 
16 //延时一个任务
17 UINT32  LOS_TaskDelay (UINT32 uwTick) 
18 
19 //锁定任务,应该是暂停任务调度
20 VOID  LOS_TaskLock (VOID) 
21 
22 //解锁任务,恢复任务调度
23 VOID  LOS_TaskUnlock (VOID) 
24 
25 //设定任务优先级
26 UINT32  LOS_TaskPriSet (UINT32 uwTaskID, UINT16 usTaskPrio) 
27 
28 //设定当前运行任务的优先级
29 UINT32  LOS_CurTaskPriSet (UINT16 usTaskPrio) 
30  
31 //进行一次任务切换
32 UINT32  LOS_TaskYield (VOID) 
33 
34  //获取任务优先级
35 UINT16  LOS_TaskPriGet (UINT32 uwTaskID) 
36 
37 //获取当前任务的ID号
38 UINT32  LOS_CurTaskIDGet (VOID) 

 

posted @ 2017-12-26 14:11  429512065  阅读(3365)  评论(1编辑  收藏  举报