RTOS常用的设计模式(VXworks)

Sij*_*ith 0 c c++ embedded rtos vxworks

任何人都可以帮我解决RTOS常用的设计模式吗?
在VXworks中,哪种模式更可取?

Cli*_*ord 7

我们可以忽略你问题中的第二句吗?它没有意义,也许表明对设计模式的误解.然而,第一部分很有趣.也就是说,我会将其概括为覆盖实时系统而不是RTOS.

许多最熟悉的模式是机械的,但在实时系统中,更高级别的架构模式也很重要.

布鲁斯鲍威尔道格拉斯可能是关于实时系统模式主题的最重要的作者.如果你想要他有什么话要说,然后读了味这篇文章Embedded.com(这是三个系列的第三部分,请务必仔细阅读前两个为好,因为他们还对主题触摸,(1) (2)).你也可能比访问Embedded.com更糟糕,并在搜索框中输入"设计模式",有关于特定模式的文章和关于该主题的一般文章.

虽然我认为您在请求"RTOS(VxWorks)"模式方面有很大的特殊性,但我专门用于VxWorks的模式是FacadeAdapter模式.部分是提供OO API,并提供一定程度的RTOS不可知抽象.然后为Segger emBOS实现生成的类(允许我们运行更小,更低成本,免版税的RTOS),以及Windows和Linux,以允许使用更强大的工具在更丰富的环境中测试,调试和模拟代码.

维基百科上提供了许多模式的非详尽列表,其中许多模式将适用于实时系统.列出的并发模式最明显相关.


Sid*_*oor 6

正如Mike DeSimone评论的那样,太过于通用了.但是,对于RTOS(不仅仅是VxWorks),请记住以下几点.

  1. 避免在ISR中做太多事情.如果可能,将一些处理传递给等待任务.
  2. 保持多线程最佳.太多,你有上下文切换开销.太少,你的问题解决方案可能很复杂.