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


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

    2. 先打开一个工程LiteOS_Kernel-masterprojectsLPC824_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
    ");
    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) 
  • 相关阅读:
    数据库系统理论概念
    SQL常用函数
    Android中几种常见的定时刷新方式
    Android Resource介绍和使用
    Android 使用Loader示例
    Android框架浅析之锁屏(Keyguard)机制原理
    Android Power Management
    Android中蓝牙的基本使用
    分组ListView使用技巧
    使用CursorLoader异步加载数据
  • 原文地址:https://www.cnblogs.com/429512065qhq/p/8117694.html
Copyright © 2020-2023  润新知