
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���������������������
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月10日 03时42分49秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
SpringBoot使用RedisTemplate简单操作Redis的五种数据类型
2021-05-13
移动端事件
2021-05-13
spring-day01
2021-05-13
抖音发布黄金时间段,抖音上热门最佳时间
2021-05-13
Thymeleaf sec:authorize 标签不生效
2021-05-14
Iterable与Iterator
2021-05-14
SecSolar:为代码“捉虫”,让你能更专心写代码
2021-05-14
微信JS-SDK DEMO页面和示例代码
2021-05-14
GridView自定义删除操作
2021-05-14
一张图搞定RPC框架核心原理
2021-05-14
Scala中的包
2021-05-14
他来了他来了,他带着云栖大会的免费门票走来了
2021-05-14
获取linux 主机cpu类型
2021-05-14
Android Studio updating indices 一直刷新和闪烁
2021-05-14
pwntools编写技巧
2021-05-14
How2Heap笔记(三)
2021-05-14
pycharm使用(新建工程、字体修改、调试)
2021-05-14
Python学习笔记——元组
2021-05-14