1
33
使用RTO的原因有很多。它们是多种多样的,很难说它们在多大程度上适用于您的情况。(注:我倾向于这样认为:RTOS 暗示 很难实时 暗示 抢占内核…)
通常,当我可以使用RTOS(或某种类型的抢占式多任务程序)进行开发时,结果往往更清晰、更模块化、更良好的行为和更可维护性。当我有选择的时候,我用一个。 请注意,多线程开发有一点学习曲线。如果您是RTOS/多线程开发的新手,您可能会对一些有关 Choosing an RTOS , The Perils of Preemption 和 An Introduction to Preemptive Multitasking . 最后,即使你没有提出建议…除了众多的商业RTOS外,还有免费的产品( FreeRTOS 是最受欢迎的一个),以及 Quantum Platform 是基于以下概念的事件驱动框架 active objects 其中包括抢占式内核。有 plenty of choices 但是我发现拥有源代码(即使RTO不是免费的)是有利的,尤其是在调试时。 |
2
5
RTOS,首先允许您组织 平行流 到一组任务中,它们之间具有定义良好的同步。 在我看来,非RTOS设计只适用于单流架构,其中所有的程序都是一个巨大的无限循环。如果你需要多流程——许多任务,并行运行——你最好使用RTO。如果没有RTOS,你将被迫在内部实现这个功能,重新发明轮子。 |
3
3
编码重用 --如果您使用RTOS API编写驱动程序/协议处理程序代码,它们可能更容易插入到未来的项目中。 调试 --一些IDE(如IAR Embedded Workbench)有插件,可以显示有关运行过程的实时数据,如任务CPU利用率和堆栈利用率。 |
4
2
通常,如果您有任何实时约束,就要使用RTO。如果您没有实时约束,那么常规操作系统就足够了。RTOS_S/OS_S提供运行时基础设施,如消息队列和任务处理。如果您只是在寻找可以降低复杂性、提供低级支持和测试帮助的代码,那么以下一些库可能会做到:
|
5
1
除了前面提到的要点外,如果您需要对
大多数RTOS都提供这些功能或可扩展以支持它们 |
conopizda2 · 为什么我的静态数组没有被memset清除? 2 年前 |
jhe4x · C按位OR返回的值不正确 2 年前 |
Tim · 如何用c语言打印程序的执行流程# 6 年前 |
jatinBatra · 关于嵌入式固件开发[已关闭] 6 年前 |
Will · 嵌入链接器脚本-是否正确放置“堆栈”和“堆”区域? 6 年前 |
K. Crow · 不等于PIC32上启用中断时操作员不工作[关闭] 6 年前 |
spiff42 · 清除位时唯一的最大不同字节值集 6 年前 |