1.最近项目遇到华为的LiteOS小型操作系统,使用学习
2. 先打开一个工程LiteOS_Kernel-master\projects\LPC824_LITE_KEIL
3. main.c里面2个关键函数。
LOS_KernelInit(); //系统初始化
LOS_Start();//系统启动
4.任务创建函数
void LOS_Demo_Entry(void)
{
UINT32 uwRet;
TSK_INIT_PARAM_S stTaskInitParam; (VOID)memset((void *)(&stTaskInitParam), , sizeof(TSK_INIT_PARAM_S)); //堆栈初始化为0
stTaskInitParam.pfnTaskEntry = (TSK_ENTRY_FUNC)LOS_Demo_Tskfunc; //任务入口函数
stTaskInitParam.uwStackSize = LOSCFG_BASE_CORE_TSK_IDLE_STACK_SIZE; //任务堆栈大小
stTaskInitParam.pcName = "ApiDemo"; //任务名字
stTaskInitParam.usTaskPrio = ; /、任务优先级
uwRet = LOS_TaskCreate(&g_uwDemoTaskID, &stTaskInitParam); //创建任务 if (uwRet != LOS_OK)
{
dprintf("Api demo test task create failed\n");
return;
}
return;
}
5. 其中和任务相关的函数,主要是这些
//创建一个任务,但是先阻塞不运行
UINT32 LOS_TaskCreateOnly (UINT32 *puwTaskID, TSK_INIT_PARAM_S *pstInitParam) //创建一个任务
UINT32 LOS_TaskCreate (UINT32 *puwTaskID, TSK_INIT_PARAM_S *pstInitParam) //恢复一个任务
UINT32 LOS_TaskResume (UINT32 uwTaskID) //阻塞一个任务
UINT32 LOS_TaskSuspend (UINT32 uwTaskID) //删除一个任务
UINT32 LOS_TaskDelete (UINT32 uwTaskID) //延时一个任务
UINT32 LOS_TaskDelay (UINT32 uwTick) //锁定任务,应该是暂停任务调度
VOID LOS_TaskLock (VOID) //解锁任务,恢复任务调度
VOID LOS_TaskUnlock (VOID) //设定任务优先级
UINT32 LOS_TaskPriSet (UINT32 uwTaskID, UINT16 usTaskPrio) //设定当前运行任务的优先级
UINT32 LOS_CurTaskPriSet (UINT16 usTaskPrio) //进行一次任务切换
UINT32 LOS_TaskYield (VOID) //获取任务优先级
UINT16 LOS_TaskPriGet (UINT32 uwTaskID) //获取当前任务的ID号
UINT32 LOS_CurTaskIDGet (VOID)