我在编写RTOS应用程序的过程中,经常会遇到这些困难,包括正确确定系统中有多少任务、如何设置优先级、协调任务行为、避免常见陷阱,有时只是为了让应用程序正常工作!
如今,近三分之二的嵌入式系统使用 RTOS,而且随着系统的时序要求变得越来越复杂,这个数字只会随着时间的推移而增加。在今天的文章中,我们将研究设计基于 RTOS 的应用程序的五个最佳实践技巧。
一、任务分解
(相关资料图)
首先我们可以遵循的第一个最佳实践技巧就是使他们的 RTOS 应用程序开发成功,是使用任务分解来获得应用程序中正确数量的任务。
有许多技术可用于分解任务,但我喜欢使用的一种对嵌入式开发人员很有效的方法是使用由外向内(outside-in)的方法。在这种方法中,开发人员遵循七个简单的步骤:
识别并列出主要的系统组件;
绘制高级框图;
标记系统输入;
标记输出;
确定一级任务;
确定并发级别和依赖项;
确定第二层任务(应用程序任务);
在为恒温器等物联网传感器节点执行此过程时,最终可能会得到如下图所示:
在这种情况下,系统通常有六个任务,其中一个任务监督应用程序代码。(根据系统复杂性,可以进一步分解此任务)。
二、选择正确的调度算法来分配优先级
我观察到很多使用 RTOS 的开发人员从不花时间决定他们将如何安排他们的任务。他们通常假设 RTOS 会为他们做这件事,并且他们的任务会根据提供他们选择的任务优先级成功运行。
事实是,开发人员可以通过多种不同的方式来安排任务。
首先,开发人员可以使用任务响应时间来调度任务。在这些系统中,响应时间最短的任务应该被分配最高优先级。
其次,开发人员可以使用一个任务执行时间来调度任务。在这些系统中,执行时间最短的任务应该被分配最高优先级。
最后,开发人员可以使用任务周期来安排任务。在这些系统中,周期最短的任务优先级最高。
只有在您选择了调度方法之后,您才能正确设置您的任务优先级。(我看到很多开发人员只是猜测)。
三、使用RMS验证任务是否可调度
大多数使用 RTOS 的嵌入式系统中使用的调度算法是基于周期的调度,也称为速率单调调度(RateMonotonicScheduling)。
多年来,人们对如何使用 RMS 正确安排任务进行了大量研究。通常,RMS 附带了开发人员需要牢记的几个假设。
首先,RMS 假设任务是周期性的并且它们也是独立的。这意味着,如果您有一个非周期性任务,在分析中我们会假设为它提供一些周期性时间。
接下来,RMS 假设 RTOS 使用抢占式调度。它还假设所有任务都相等并且最坏情况的执行时间是恒定的。
我经常发现 RMS 非常适合对我开发的 RTOS 应用程序架构是否有意义或者我是否在错误的方向进行完整性检查。
例如,我可以假设具有以下任务的系统的行为方式并确定它是否可以成功调度其任务:
对于使用 RMS 的系统,对于具有无限数量任务的系统,所有这些任务的 CPU使用率必须低于 69.3%。对于上述系统,我们可以看到总利用率为 52%,这意味着它们应该是可调度的。
四、使用同步和数据流图
在使用由外向内(outside-in)的方法确定我在应用程序中需要的所有任务后,我通常会创建一个同步和数据流图。此图的目的是:
映射系统中所有数据的来源
映射数据如何从其源转移到系统中的任务
映射如何存储和访问该数据
映射如何使用该数据来生成系统输出
早些时候,我以连接互联网的恒温器为例。下面是我们可能为该应用程序制作的数据流和同步图。
如您所见,此图不仅可以帮助我们了解数据如何在系统中移动,还可以帮助我们了解应用程序中所需的 RTOS 组件,例如:
队列
流缓冲区
信号量
互斥体
如果没有这样的图表,开发团队必然会遇到开发和维护问题。
五、预先定义任务和消息界面接口
一旦创建了数据流图,就很容易开始对应用程序进行编码。
这无疑会在一段时间内顺利进行,但我发现如果开发人员不花时间预先仔细定义任务和消息接口,它可能会导致返工。
虽然数据流图通常显示数据如何通过应用程序传播,但它并不一定要求定义数据结构。
目标是预先检查每个消息队列,然后为这些消息构建结构。这很重要,因为它将定义消息的外观,而且还将有助于任何底层模块的接口的外观。例如,管理一系列阀门的任务可能需要包含以下内容的消息:
阀门 ID
阀门状态
阀门所需的时间
再说一次,它可能会期待:
定义阀门状态的面罩
准时清单
归根结底,做事的方式总是不止一种,一种不一定比另一种更好。但是,在为支持任务执行的其他模块构建接口时,了解正在传递的消息将有所帮助。
六、结论
实时操作系统比以往任何时候都更多地用于开发实时应用程序。
我们在今天的文章中探讨了几个技巧,这些技巧不仅可以帮助读者创建更清晰、更灵活的 RTOS 应用程序,还可以帮助他们传达应用程序的设计意图。这些技巧应该可以帮助读者快速开始他们的应用程序开发。
审核编辑:汤梓红
RTOS应用程序设计的五个实践技巧-我在编写RTOS应用程序的过程中,经常
2023福州台江区幼儿园招生电脑派位名单公示2023年秋季台江区幼儿园招生
在比特币和以太坊艰难的2018 19,蓝狐笔记翻译或撰写了一些比特币和以
洗衣机运输螺栓怎么拆装,洗衣机运输螺栓拆装的方法是需要先拆掉后盖自
金投网提供工商银行筑梦中华金条200克价格今天多少一克(2023年07月07
2023款RX450h+:任时代变迁,豪华典雅从未改变!
山西晋控电力打造低碳智慧高效煤电一体化企业, 近年来,作为山西省
据海关总署数据,1-5月份我国家用电器出口142622万台,同比增长%,出口
财政部相关负责人就美财政部部长耶伦访华答媒体询问如下:经中美双方商
【老人中暑体温达41℃抢救无效去世】近日,河北多地进入高温炙烤模式,
2023年中国城市GDP20强:西安以6%的经济增速夺冠,中国,西安,郑州,深圳,
随着人们的生活水平的提高,有能力买车能越来越多了,即使是一个女生,
作为在改革开放的春风中成长起来的一代人,在我们的成长的记忆里充斥着
俄罗斯卫星通讯社7月7日消息,芬兰外交部7月6日表示,自7月10日起实施
新京报讯7月6日,王府井集团股份有限公司(简称“王府井”)发布202...
罗马诺:曼联4500万欧+500万报价奥纳纳遭拒,国米想要5500万,曼联,名记
MetaPlatformsInc.旗下的Instagram正式发布了Threads,这款应用程序的
近日,网传曾于今年2月份抢教授话筒的安徽庐江中学蒋同学高考655分,如
"这一波,海口属实赢麻了 "。过去这几天,海口频频出圈,原因无...
大河网讯7月5日下午,信阳市禁毒办联合市公安局创建办、羊山分局禁毒大
记者郭春雨李岩松吉林村民黄德义私自建桥被判刑的事件引发广泛关注。6
驱动中国2023年7月6日消息网易《永劫无间》在二周年发布会上宣布,其全
据统计,今年6月1日至30日,我国乘用车市场实现零售189 6万辆,相较去
大家好,我是小九,中国气象局提醒,今年因为厄尔尼诺暖流影响,全球温
预计2026年预制菜市场规模将达一万亿元以上。湖南预制菜产业整体规模目
正义网上海7月6日电(通讯员孙晓光)可查到他人身份信息、户籍信息、电话
大宗交易成交价格20 53元,相对当日收盘价溢价7 66%,成交25万股,成交
在顶上战争的时候,如果没有女帝的帮助,斯摩格已经抓住了路飞,为何这
健康瘦身是许多人所追求的目标,但如何进行科学健康的体重管理却是一门
7月5日下午,两江新区金山街道在民心佳园小区开展2023年迎峰度夏节约用