查看: 5390|回复: 5

[原创] 【LPC54114】RTX入门之任务管理

[复制链接]
  • TA的每日心情
    开心
    2020-6-18 08:45
  • 签到天数: 812 天

    连续签到: 1 天

    [LV.10]以坛为家III

    66

    主题

    4899

    帖子

    64

    金牌会员

    Rank: 6Rank: 6

    积分
    6321
    最后登录
    2025-7-15
    发表于 2017-5-12 00:26:42 | 显示全部楼层 |阅读模式
    本帖最后由 原来的你 于 2017-5-12 10:42 编辑

    在上一节介绍了LPC54114的RTX系统移植,本节我们进一步学习LPC54114的RTX任务管理。首先是RTX的任务配置。我们依旧选择上一次节使用的GPIO模本介绍。
    一、任务配置,配置如下: 1.png
    具体大家可以根据自己的需要配置,本次配置6个任务,由于项目使用的时钟为48MHz,所以如图所示配置成48M时钟。
    二、任务栈设置  ,如下所示

    2.png
    三、栈溢出检测,如下所示:
    3.png
    以上是RTX的基础配置。根据自己实际项目修改相应配置。下面讲解RTX的操作系统如何初始化和启动。
    RTX 的初始化主要使用下面的三个函数:
    os_sys_init()和os_sys_init_prio()以及os_sys_init_user() ,函数的定义具体看手册说明。

    一般我们常用os_sys_init_user() 来初始化我们的任务,如下所示:
    1. /* RTX 初始化并创建启动任务 */
    2. os_sys_init_user (GpioTaskStart, 2, &GpioTaskStartStk,sizeof(GpioTaskStartStk));
    复制代码
    RTX 的任务创建主要使用下面的四个函数:
    os_tsk_create、 os_tsk_create_ex 、os_tsk_create_user、os_tsk_create_user_ex  

    一般我们常用os_tsk_create_user() 来初始化我们的任务,如下所示:
    1. static uint64_t GpioTaskUserIFStk[512/8];

    2. OS_TID HandleTaskUserIF = NULL;
    复制代码
    RTX 的任务删除主要使用下面的两个函数:
    os_tsk_delete和os_tsk_delete_self  

    os_tsk_delete用来删除某一个ID任务,os_tsk_delete_self删除自身任务,使用方式如下:

    1. static void GpioTaskDelete (void)
    2. {
    3.       HandleTaskUserIF = os_tsk_create_user(GpioTaskUserIF, 1,&GpioTaskUserIFStk,sizeof(GpioTaskUserIFStk));
    4.       if(HandleTaskUserIF!= NULL)
    5.      {
    6.         if(os_tsk_delete(HandleTaskUserIF) == OS_R_OK)
    7.        {
    8.           HandleTaskLED = NULL;
    9.           printf("任务 GpioTaskUser 删除成功\r\n");
    10.        }
    11.       else
    12.       {
    13.          printf("任务 GpioTaskUser 删除失败\r\n");
    14.       }
    15.     }
    16. }
    复制代码

    RTX 也有空闲任务,用户可以在空闲任务中实现睡眠, 停机等低功耗行为。源码如下:
    4.png




    开心
    回复

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24931
    最后登录
    2025-7-23
    发表于 2017-5-12 10:25:34 | 显示全部楼层
    谢谢楼主分享!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-5-29 08:54
  • 签到天数: 2992 天

    连续签到: 8 天

    [LV.Master]伴坛终老

    45

    主题

    5548

    帖子

    22

    金牌会员

    Rank: 6Rank: 6

    积分
    12035
    最后登录
    2025-5-29
    发表于 2017-5-12 11:53:17 | 显示全部楼层
    谢谢分享  
    签到签到
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-10-17 08:07
  • 签到天数: 273 天

    连续签到: 1 天

    [LV.8]以坛为家I

    74

    主题

    2338

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    7508
    最后登录
    2021-8-30
    发表于 2017-5-13 08:20:56 | 显示全部楼层
    不错,很好的分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-9-15 08:42
  • 签到天数: 1952 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    1

    主题

    4686

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9405
    最后登录
    2023-9-15
    发表于 2017-5-13 10:47:18 | 显示全部楼层
    谢谢分享!!!
    今天天气不错!签到!
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2019-4-1 22:48
  • 签到天数: 302 天

    连续签到: 1 天

    [LV.8]以坛为家I

    87

    主题

    7322

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    4614
    最后登录
    2021-1-25
    发表于 2017-5-23 16:13:25 | 显示全部楼层
    谢谢分享!
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-25 06:48 , Processed in 0.097041 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表