華為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) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM