LiteOS学习(一)任务
发布日期:2021-05-15 22:11:25 浏览次数:10 分类:精选文章

本文共 4354 字,大约阅读时间需要 14 分钟。

���������STM32LiteOS������������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������Ex_task.c���������������������������������������������������

# include "stm32l4xx_hal.h"# include "gpio.h"# include "los_demo_debug.h"# include "los_inspect_entry.h"# include "los_typedef.h"# include "los_queue.h"# include "los_task.h"static UINT32 g_uwTskHiID;static UINT32 g_uwTskLoID;#define TSK_PRIOR_HI 4#define TSK_PRIOR_LO 5static UINT32 Example_TaskHi_1(VOID){    UINT32 uwRet = LOS_OK;    dprintf("Enter TaskHi Handler.\r\n");        /*������5���Tick���������������������������������������������������������������������������(g_uwTskLoID������)*/    uwRet = LOS_TaskDelay(5);    if (uwRet != LOS_OK) {        dprintf("Delay Task Failed.\r\n");        return LOS_NOK;    }        /*2���tick������������������������������������������������*/    dprintf("Enter TaskHi LOS_TaskDelay Done.\r\n");        /*������������������*/    uwRet = LOS_TaskSuspend(g_uwTskHiID);    if (uwRet != LOS_OK) {        dprintf("Suspend TaskHi Failed.\r\n");        uwRet = LOS_InspectStatusSetByID(LOS_INSPECT_TASK, LOS_INSPECT_STU_ERROR);        if (uwRet != LOS_OK) {            dprintf("Set Inspect Status Err\n");        }        return LOS_NOK;    }        dprintf("TaskHi LOS_TaskResume Success.\r\n");    uwRet = LOS_InspectStatusSetByID(LOS_INSPECT_TASK, LOS_INSPECT_STU_SUCCESS);    if (uwRet != LOS_OK) {        dprintf("Set Inspect Status Err\n");    }        /*������������*/    if (LOS_OK != LOS_TaskDelete(g_uwTskHiID)) {        dprintf("TaskHi delete failed .\n");        return LOS_NOK;    }        return LOS_OK;}/*������������������������������*/static UINT32 Example_TaskLo_1(VOID){    UINT32 uwRet;    dprintf("Enter TaskLo Handler.\r\n");        /*������10���Tick���������������������������������������������������������������������������(������������)*/    uwRet = LOS_TaskDelay(10);    if (uwRet != LOS_OK) {        dprintf("Delay TaskLo Failed.\r\n");        return LOS_NOK;    }        dprintf("TaskHi LOS_TaskSuspend Success.\r\n");        /*������������������������g_uwTskHiID*/    uwRet = LOS_TaskResume(g_uwTskHiID);    if (uwRet != LOS_OK) {        dprintf("Resume TaskHi Failed.\r\n");        uwRet = LOS_InspectStatusSetByID(LOS_INSPECT_TASK, LOS_INSPECT_STU_ERROR);        if (uwRet != LOS_OK) {            dprintf("Set Inspect Status Err\n");        }        return LOS_NOK;    }        /*������������*/    if (LOS_OK != LOS_TaskDelete(g_uwTskLoID)) {        dprintf("TaskLo delete failed .\n");        return LOS_NOK;    }        return LOS_OK;} UINT32 Example_Entry(VOID) {     UINT32 uwRet = LOS_OK;     TSK_INIT_PARAM_S stInitParam = {0};     dprintf("LOS_TaskLock() Success!\r\n");          stInitParam.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_TaskHi_1;     stInitParam.usTaskPrio = TSK_PRIOR_HI;     stInitParam.pcName = "Task1";     stInitParam.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE;          uwRet = LOS_TaskCreate(&g_uwTskHiID, &stInitParam);     if (uwRet != LOS_OK) {         printf("Example_Task1 create Failed!\r\n");         return LOS_NOK;     }          dprintf("Example_TaskHi create Success!\r\n");          stInitParam.pfnTaskEntry = (TSK_ENTRY_FUNC)Example_TaskLo_1;     stInitParam.usTaskPrio = TSK_PRIOR_LO;     stInitParam.pcName = "Task2";     stInitParam.uwStackSize = LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE;          uwRet = LOS_TaskCreate(&g_uwTskLoID, &stInitParam);     if (uwRet != LOS_OK) {         printf("Example_Task2 create Failed!\r\n");         return LOS_NOK;     }          dprintf("Example_TaskLo create Success!\r\n");          return uwRet; }

���������������������������������������main.c������������������������������������

.../* Private function prototypes -----------------------------------------------*/void SystemClock_Config(void);/* USER CODE BEGIN PFP */UINT32 Example_Entry(VOID);/* USER CODE END PFP */.../* USER CODE BEGIN 2 */if (LOS_OK != LOS_KernelInit()) {    return LOS_NOK;}Example_Entry();LOS_Start();/* USER CODE END 2 */

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������LiteOS���������������������

上一篇:EFM32之GPIO
下一篇:世界各地 史上最全最详细无线通信频率分配表(内容含概wifi、2.4G、5G,绝对值得收藏)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月10日 03时42分49秒