|嵌入式开发:设计基于 RTOS 的应用程序的最佳实践
文章图片
很多嵌入式开发人员努力正确地编写使用 RTOS 的应用程序 , 这些困难包括正确确定系统中有多少任务、如何设置优先级、协调任务行为、避免常见的陷阱 , 有时只是让应用程序正常工作!如今 , 近三分之二的嵌入式系统都使用 RTOS , 而且随着系统的时序要求变得更加复杂 , 这个数字只会随着时间的推移而增加 。 在今天的文章中 , 我们将探讨设计基于 RTOS 的应用程序的五种最佳实践 。
RTOS 最佳实践 1 – 通过任务分解识别任务开发人员可以遵循以使其 RTOS 应用程序开发成功的第一个最佳实践是使用任务分解在他们的应用程序中获得正确数量的任务 。 有许多技术可用于分解任务 , 但有一种适用于嵌入式开发人员的方法是使用由外向内的方法 。 在这种方法中 , 开发人员遵循七个简单的步骤:
识别并列出主要的系统组件
绘制高级框图
标记系统输入
标记输出
确定第一层任务
确定并发级别和依赖项
识别第二层任务(应用程序任务)
在对恒温器等物联网传感器节点执行此过程时 , 最终可能会得到如下图:
在这种情况下 , 系统通常有六个任务 , 其中一个任务监督应用程序代码 。 (根据系统复杂性 , 这个任务可以进一步分解) 。
RTOS 最佳实践 2 – 选择正确的调度算法来分配任务优先级
很多使用 RTOS 的嵌入式开发人员从不花时间决定如何安排他们的任务 。 他们经常假设 RTOS 会为他们做这件事 , 并且他们的任务只会基于提供他们选择的任务优先级而成功运行 。 事实上 , 开发人员可以通过多种不同的方式来安排任务 。
首先 , 开发人员可以使用任务响应时间来安排任务 。 在这些系统中 , 应为响应时间最短的任务分配最高优先级 。 其次 , 开发人员可以使用一个任务执行时间来安排任务 。 在这些系统中 , 应为执行时间最短的任务分配最高优先级 。 最后 , 开发人员可以使用任务周期来安排任务 。 在这些系统中 , 周期最短的任务优先级最高 。
只有在你选择了调度方法之后 , 你才能正确设置你的任务优先级 。
RTOS 最佳实践 3 – 使用 RMS 验证任务是否可调度
大多数使用 RTOS 的嵌入式系统中使用的调度算法是基于周期的调度 , 也称为速率单调调度 。 多年来 , 针对如何使用 RMS 正确安排任务进行了大量研究 。 通常 , RMS 带有开发人员需要牢记的几个假设 。
首先 , RMS 假设任务是周期性的并且它们也是独立的 。 这意味着如果你有一个非周期性任务 , 在分析中你会假设它是并为其提供一些周期性时间 。 接下来 , RMS 假设 RTOS 使用抢占式调度 。 它还假设所有任务都是平等的 , 并且最坏情况下的执行时间是恒定的 。
RTOS 最佳实践 4 – 使用同步和数据流图
在使用由外向内的方法来识别应用程序中需要的所有任务之后 , 嵌入式开发人员可以创建一个同步和数据流图 , 该图的目的是:
映射系统中所有数据的来源
映射数据如何从其源移动到系统中的任务
映射如何存储和访问这些数据
映射如何使用该数据生成系统输出
下面是我们可能为该应用程序制作的数据流和同步图 。
如你所见 , 此图不仅可以帮助我们了解数据是如何在系统中移动的 , 还可以帮助我们了解我们在应用程序中需要的 RTOS 组件 , 例如:
相关经验推荐
- 苹果|库克尴尬了,媒体称库克对设计不感兴趣,逼走苹果首席设计师
- iPhone|苹果全球开发者大会定档 iOS16系统即将推出 大批iPhone机型将淘汰
- oppo find x|OPPO Find X3 Pro这种比较旧的机型还有机会优先开发?
- 软件|中国的工业设计软件,只剩下了缴械投降?国产CAD厂商宁死不屈!
- 中兴|告别杂乱!MIUI开发模式大变 又一款真屏下摄像头机型曝光
- 华为|华为智选品牌5G新机亮相!设计惊喜,1799起售
- 运营商|Android开发者须知的几种APP加密方式
- 苹果|苹果手机适合懒人,所有的给你设计好了,你用就行
- 二维码|vivo X80系列雅致设计,双电芯闪充很给力
- 华为荣耀|轻巧便携复古设计,游戏办公两不误,洛斐小翘68三模机械键盘测评