|嵌入式开发:设计基于 RTOS 的应用程序的最佳实践
文章图片
很多嵌入式开发人员努力正确地编写使用 RTOS 的应用程序 , 这些困难包括正确确定系统中有多少任务、如何设置优先级、协调任务行为、避免常见的陷阱 , 有时只是让应用程序正常工作!如今 , 近三分之二的嵌入式系统都使用 RTOS , 而且随着系统的时序要求变得更加复杂 , 这个数字只会随着时间的推移而增加 。 在今天的文章中 , 我们将探讨设计基于 RTOS 的应用程序的五种最佳实践 。
RTOS 最佳实践 1 – 通过任务分解识别任务开发人员可以遵循以使其 RTOS 应用程序开发成功的第一个最佳实践是使用任务分解在他们的应用程序中获得正确数量的任务 。 有许多技术可用于分解任务 , 但有一种适用于嵌入式开发人员的方法是使用由外向内的方法 。 在这种方法中 , 开发人员遵循七个简单的步骤:
识别并列出主要的系统组件
绘制高级框图
标记系统输入
标记输出
确定第一层任务
确定并发级别和依赖项
识别第二层任务(应用程序任务)
在对恒温器等物联网传感器节点执行此过程时 , 最终可能会得到如下图:
【|嵌入式开发:设计基于 RTOS 的应用程序的最佳实践】
在这种情况下 , 系统通常有六个任务 , 其中一个任务监督应用程序代码 。 (根据系统复杂性 , 这个任务可以进一步分解) 。
RTOS 最佳实践 2 – 选择正确的调度算法来分配任务优先级
很多使用 RTOS 的嵌入式开发人员从不花时间决定如何安排他们的任务 。 他们经常假设 RTOS 会为他们做这件事 , 并且他们的任务只会基于提供他们选择的任务优先级而成功运行 。 事实上 , 开发人员可以通过多种不同的方式来安排任务 。
首先 , 开发人员可以使用任务响应时间来安排任务 。 在这些系统中 , 应为响应时间最短的任务分配最高优先级 。 其次 , 开发人员可以使用一个任务执行时间来安排任务 。 在这些系统中 , 应为执行时间最短的任务分配最高优先级 。 最后 , 开发人员可以使用任务周期来安排任务 。 在这些系统中 , 周期最短的任务优先级最高 。
只有在你选择了调度方法之后 , 你才能正确设置你的任务优先级 。
RTOS 最佳实践 3 – 使用 RMS 验证任务是否可调度
大多数使用 RTOS 的嵌入式系统中使用的调度算法是基于周期的调度 , 也称为速率单调调度 。 多年来 , 针对如何使用 RMS 正确安排任务进行了大量研究 。 通常 , RMS 带有开发人员需要牢记的几个假设 。
首先 , RMS 假设任务是周期性的并且它们也是独立的 。 这意味着如果你有一个非周期性任务 , 在分析中你会假设它是并为其提供一些周期性时间 。 接下来 , RMS 假设 RTOS 使用抢占式调度 。 它还假设所有任务都是平等的 , 并且最坏情况下的执行时间是恒定的 。
RTOS 最佳实践 4 – 使用同步和数据流图
在使用由外向内的方法来识别应用程序中需要的所有任务之后 , 嵌入式开发人员可以创建一个同步和数据流图 , 该图的目的是:
映射系统中所有数据的来源
映射数据如何从其源移动到系统中的任务
映射如何存储和访问这些数据
映射如何使用该数据生成系统输出
下面是我们可能为该应用程序制作的数据流和同步图 。
如你所见 , 此图不仅可以帮助我们了解数据是如何在系统中移动的 , 还可以帮助我们了解我们在应用程序中需要的 RTOS 组件 , 例如:
- 罗永浩|罗永浩吐槽索尼电视遥控器:可能是设计最差的遥控器,建议开除设计师
- Dalziel&Pow 携手 Victorinox 打造全新零售设计理念和品牌体验
- 华为荣耀|荣耀Magic5曝光:副屏设计+骁龙8Gen2,不输华为Mate
- Intel|牙膏踩爆 Intel Yes起来了:“1.8nm”工艺下半年完成设计
- 手机壳|Mate 50 Pro曝光,刘海设计+5G手机壳,这是你的菜吗?
- OPPO|事实上!全新一代骁龙8+双曲屏设计+潜望式长焦,虽然贵但真香
- |英特尔将在2022年下半年完成18A设计 未来有望与台积电比肩
- |打击工业公司“伏击”倾斜瞄准镜座 简单极致 模块化设计的典范
- 5G|三大配色+后摄设计,vivo X80展示高端旗舰该有的魅力
- 产品设计|弘辽科技:拼多多开店到运营常见问题解析!