提高RTOS应用程序稳定可靠的几点技巧

面包板社区 2021-08-14 20:00

我们在编写RTOS应用程序的过程中,经常会遇到这些困难,包括正确确定系统中有多少任务如何设置优先级协调任务行为避免常见陷阱,有时只是为了让应用程序正常工作,而忽略一些问题。

如今,近三分之二的嵌入式系统使用 RTOS,而且随着系统的时序要求变得越来越复杂,这个数字只会随着时间的推移而增加。在今天的文章中,我们将研究设计基于 RTOS 的应用程序的五个最佳实践技巧。

任务分解

首先我们可以遵循的第一个最佳实践技巧就是使他们的 RTOS 应用程序开发成功,是使用任务分解来获得应用程序中正确数量的任务

有许多技术可用于分解任务,但我喜欢使用的一种对嵌入式开发人员很有效的方法是使用由外向内(outside-in)的方法。在这种方法中,开发人员遵循七个简单的步骤:
  • 识别并列出主要的系统组件;
  • 绘制高级框图;
  • 标记系统输入;
  • 标记输出;
  • 确定一级任务;
  • 确定并发级别和依赖项;
  • 确定第二层任务(应用程序任务);

在为恒温器等物联网传感器节点执行此过程时,最终可能会得到如下图所示:
在这种情况下,系统通常有六个任务,其中一个任务监督应用程序代码。(根据系统复杂性,可以进一步分解此任务)。

选择正确的调度算法来分配优先级

我观察到很多使用 RTOS 的开发人员从不花时间决定他们将如何安排他们的任务。他们通常假设 RTOS 会为他们做这件事,并且他们的任务会根据提供他们选择的任务优先级成功运行。

事实是,开发人员可以通过多种不同的方式来安排任务。

首先,开发人员可以使用任务响应时间来调度任务。在这些系统中,响应时间最短的任务应该被分配最高优先级。

其次,开发人员可以使用一个任务执行时间来调度任务。在这些系统中,执行时间最短的任务应该被分配最高优先级。

最后,开发人员可以使用任务周期来安排任务。在这些系统中,周期最短的任务优先级最高。

只有在您选择了调度方法之后,您才能正确设置您的任务优先级。(我看到很多开发人员只是猜测)。

使用 RMS 验证任务是否可调度

大多数使用 RTOS 的嵌入式系统中使用的调度算法是基于周期的调度,也称为速率单调调度(Rate Monotonic Scheduling)。

多年来,人们对如何使用 RMS 正确安排任务进行了大量研究。通常,RMS 附带了开发人员需要牢记的几个假设。

首先,RMS 假设任务是周期性的并且它们也是独立的。这意味着,如果您有一个非周期性任务,在分析中我们会假设为它提供一些周期性时间。

接下来,RMS 假设 RTOS 使用抢占式调度。它还假设所有任务都相等并且最坏情况的执行时间是恒定的。

我经常发现 RMS 非常适合对我开发的 RTOS 应用程序架构是否有意义或者我是否在错误的方向进行完整性检查。

例如,我可以假设具有以下任务的系统的行为方式并确定它是否可以成功调度其任务:
对于使用 RMS 的系统,对于具有无限数量任务的系统,所有这些任务的 CPU 使用率必须低于 69.3%。对于上述系统,我们可以看到总利用率为 52%,这意味着它们应该是可调度的。

使用同步和数据流图

在使用由外向内(outside-in)的方法确定我在应用程序中需要的所有任务后,我通常会创建一个同步和数据流图。此图的目的是:
  • 映射系统中所有数据的来源
  • 映射数据如何从其源转移到系统中的任务
  • 映射如何存储和访问该数据
  • 映射如何使用该数据来生成系统输出

早些时候,我以连接互联网的恒温器为例。下面是我们可能为该应用程序制作的数据流和同步图。
如你所见,此图不仅可以帮助我们了解数据如何在系统中移动,还可以帮助我们了解应用程序中所需的 RTOS 组件,例如:
  • 队列
  • 流缓冲区
  • 信号量
  • 互斥体

如果没有这样的图表,开发团队必然会遇到开发和维护问题。

预先定义任务和消息界面接口

一旦创建了数据流图,就很容易开始对应用程序进行编码。

这无疑会在一段时间内顺利进行,但我发现如果开发人员不花时间预先仔细定义任务和消息接口,它可能会导致返工。

虽然数据流图通常显示数据如何通过应用程序传播,但它并不一定要求定义数据结构。

目标是预先检查每个消息队列,然后为这些消息构建结构。这很重要,因为它将定义消息的外观,而且还将有助于任何底层模块的接口的外观。

例如,管理一系列阀门的任务可能需要包含以下内容的消息:
  • 阀门 ID
  • 阀门状态
  • 阀门所需的时间

再说一次,它可能会期待:
  • 定义阀门状态的面罩
  • 准时清单

归根结底,做事的方式总是不止一种,一种不一定比另一种更好。但是,在为支持任务执行的其他模块构建接口时,了解正在传递的消息将有所帮助。


结论

实时操作系统比以往任何时候都更多地用于开发实时应用程序。

我们在今天的文章中探讨了几个技巧,这些技巧不仅可以帮助读者创建更清晰、更灵活的 RTOS 应用程序,还可以帮助他们传达应用程序的设计意图。希望这些技巧可以帮助你们快速开始应用程序的开发。

来源 | 小麦大叔

免费福利价值500多元一片的开发板



更多精彩干货,点击下方关注查看



关注『面包板社区』,后台回复"关键词"领取300 G学习资料包如:电源、电机、嵌入式、信号系统、模电、华为、电子学、电路、c语言...)



#推荐阅读#

  • 【完全吃透】征服傅里叶变换

  • SMT贴片元件基础知识

  • 弃卒保帅:反思华为服务器的出售事件

  • 拆开步进电机来仔细讲一讲

  • X电容和Y电容的区别

  • 你真的吃透了电阻的用法吗?


点击阅读原文,下载《FreeRTOS源码详解与应用开发全部资料》

面包板社区 面包板社区——中国第一电子人社交平台 面包板社区是Aspencore旗下媒体,整合了电子工程专辑、电子技术设计、国际电子商情丰富资源。社区包括论坛、博客、问答,拥有超过250万注册用户,加入面包板社区,从菜鸟变大神,打造您的电子人脉社交圈!
评论 (0)
  • 随着电子元器件的快速发展,导致各种常见的贴片电阻元器件也越来越小,给我们分辨也就变得越来越难,下面就由smt贴片加工厂_安徽英特丽就来告诉大家如何分辨的SMT贴片元器件。先来看看贴片电感和贴片电容的区分:(1)看颜色(黑色)——一般黑色都是贴片电感。贴片电容只有勇于精密设备中的贴片钽电容才是黑色的,其他普通贴片电容基本都不是黑色的。(2)看型号标码——贴片电感以L开头,贴片电容以C开头。从外形是圆形初步判断应为电感,测量两端电阻为零点几欧,则为电感。(3)检测——贴片电感一般阻值小,更没有“充放
    贴片加工小安 2025-04-29 14:59 221浏览
  • 在智能硬件设备趋向微型化的背景下,语音芯片方案厂商针对小体积设备开发了多款超小型语音芯片方案,其中WTV系列和WT2003H系列凭借其QFN封装设计、高性能与高集成度,成为微型设备语音方案的理想选择。以下从封装特性、功能优势及典型应用场景三个方面进行详细介绍。一、超小体积封装:QFN技术的核心优势WTV系列与WT2003H系列均提供QFN封装(如QFN32,尺寸为4×4mm),这种封装形式具有以下特点:体积紧凑:QFN封装通过减少引脚间距和优化内部结构,显著缩小芯片体积,适用于智能门铃、穿戴设备
    广州唯创电子 2025-04-30 09:02 236浏览
  • 你是不是也有在公共场合被偷看手机或笔电的经验呢?科技时代下,不少现代人的各式机密数据都在手机、平板或是笔电等可携式的3C产品上处理,若是经常性地需要在公共场合使用,不管是工作上的机密文件,或是重要的个人信息等,民众都有防窃防盗意识,为了避免他人窥探内容,都会选择使用「防窥保护贴片」,以防止数据外泄。现今市面上「防窥保护贴」、「防窥片」、「屏幕防窥膜」等产品就是这种目的下产物 (以下简称防窥片)!防窥片功能与常见问题解析首先,防窥片最主要的功能就是用来防止他人窥视屏幕上的隐私信息,它是利用百叶窗的
    百佳泰测试实验室 2025-04-30 13:28 320浏览
  • 在CAN总线分析软件领域,当CANoe不再是唯一选择时,虹科PCAN-Explorer 6软件成为了一个有竞争力的解决方案。在现代工业控制和汽车领域,CAN总线分析软件的重要性不言而喻。随着技术的进步和市场需求的多样化,单一的解决方案已无法满足所有用户的需求。正是在这样的背景下,虹科PCAN-Explorer 6软件以其独特的模块化设计和灵活的功能扩展,为CAN总线分析领域带来了新的选择和可能性。本文将深入探讨虹科PCAN-Explorer 6软件如何以其创新的模块化插件策略,提供定制化的功能选
    虹科汽车智能互联 2025-04-28 16:00 184浏览
  • 贞光科技代理品牌紫光国芯的车规级LPDDR4内存正成为智能驾驶舱的核心选择。在汽车电子国产化浪潮中,其产品以宽温域稳定工作能力、优异电磁兼容性和超长使用寿命赢得市场认可。紫光国芯不仅确保供应链安全可控,还提供专业本地技术支持。面向未来,紫光国芯正研发LPDDR5车规级产品,将以更高带宽、更低功耗支持汽车智能化发展。随着智能网联汽车的迅猛发展,智能驾驶舱作为人机交互的核心载体,对处理器和存储器的性能与可靠性提出了更高要求。在汽车电子国产化浪潮中,贞光科技代理品牌紫光国芯的车规级LPDDR4内存凭借
    贞光科技 2025-04-28 16:52 253浏览
  • 文/郭楚妤编辑/cc孙聪颖‍越来越多的企业开始蚕食动力电池市场,行业“去宁王化”态势逐渐明显。随着这种趋势的加强,打开新的市场对于宁德时代而言至关重要。“我们不希望被定义为电池的制造者,而是希望把自己称作新能源产业的开拓者。”4月21日,在宁德时代举行的“超级科技日”发布会上,宁德时代掌门人曾毓群如是说。随着宁德时代核心新品骁遥双核电池的发布,其搭载的“电电增程”技术也走进业界视野。除此之外,经过近3年试水,宁德时代在换电业务上重资加码。曾毓群认为换电是一个重资产、高投入、长周期的产业,涉及的利
    华尔街科技眼 2025-04-28 21:55 163浏览
  • 文/Leon编辑/cc孙聪颖‍2023年,厨电行业在相对平稳的市场环境中迎来温和复苏,看似为行业增长积蓄势能。带着对市场向好的预期,2024 年初,老板电器副董事长兼总经理任富佳为企业定下双位数增长目标。然而现实与预期相悖,过去一年,这家老牌厨电企业不仅未能达成业绩目标,曾提出的“三年再造一个老板电器”愿景,也因市场下行压力面临落空风险。作为“企二代”管理者,任富佳在掌舵企业穿越市场周期的过程中,正面临着前所未有的挑战。4月29日,老板电器(002508.SZ)发布了2024年年度报告及2025
    华尔街科技眼 2025-04-30 12:40 204浏览
  • 浪潮之上:智能时代的觉醒    近日参加了一场课题的答辩,这是医疗人工智能揭榜挂帅的国家项目的地区考场,参与者众多,围绕着医疗健康的主题,八仙过海各显神通,百花齐放。   中国大地正在发生着激动人心的场景:深圳前海深港人工智能算力中心高速运转的液冷服务器,武汉马路上自动驾驶出租车穿行的智慧道路,机器人参与北京的马拉松竞赛。从中央到地方,人工智能相关政策和消息如雨后春笋般不断出台,数字中国的建设图景正在智能浪潮中徐徐展开,战略布局如同围棋
    广州铁金刚 2025-04-30 15:24 186浏览
  • 网约车,真的“饱和”了?近日,网约车市场的 “饱和” 话题再度引发热议。多地陆续发布网约车风险预警,提醒从业者谨慎入局,这背后究竟隐藏着怎样的市场现状呢?从数据来看,网约车市场的“过剩”现象已愈发明显。以东莞为例,截至2024年12月底,全市网约车数量超过5.77万辆,考取网约车驾驶员证的人数更是超过13.48万人。随着司机数量的不断攀升,订单量却未能同步增长,导致单车日均接单量和营收双双下降。2024年下半年,东莞网约出租车单车日均订单量约10.5单,而单车日均营收也不容乐
    用户1742991715177 2025-04-29 18:28 221浏览
  • 一、gao效冷却与控温机制‌1、‌冷媒流动设计‌采用低压液氮(或液氦)通过毛细管路导入蒸发器,蒸汽喷射至样品腔实现快速冷却,冷却效率高(室温至80K约20分钟,至4.2K约30分钟)。通过控温仪动态调节蒸发器加热功率,结合温度传感器(如PT100铂电阻或Cernox磁场不敏感传感器),实现±0.01K的高精度温度稳定性。2、‌宽温区覆盖与扩展性‌标准温区为80K-325K,通过降压选件可将下限延伸至65K(液氮模式)或4K(液氦模式)。可选配475K高温模块,满足材料在ji端温度下的性能测试需求
    锦正茂科技 2025-04-30 13:08 246浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦