问题标签 [rtos]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 任务的 UML 表示
我正在设计具有许多任务和许多任务间消息的系统。该系统将基本上用C语言开发。
在我的设计中,我尝试使用 UML 表示来显示在任务之间传递的消息。但是,代表决策等事情变得越来越困难。
他们是否有任何预定义的方法来为使用大量消息的基于任务的系统创建流程图?
不必是UML,他们还有什么其他标准方法可以用于这个设计吗?
multithreading - RTOS 删除练习中显式堆栈的替代方案?
在 ARM7 上使用 C 语言编程的嵌入式应用程序(具有可移植性要求)中,当前使用基于商业优先级的抢占式 RTOS,我们需要根据客户要求删除该 RTOS 和任何 RTOS 依赖项。我们有 8 个任务使用许多硬件接口、睡眠语句、I2C 通信。事实上,软件很好地利用了 RTOS 功能来简化代码,尽管在没有 RTOS 的情况下时序要求是可以管理的。
几个函数,包括在许多地方调用的例程,目前实现了对 I2c 驱动程序函数、睡眠语句等的阻塞(针对该线程)调用序列。基于轮询 I2C 调用/睡眠对客户不可接受的前提,此类调用必须然后是非阻塞并返回。问题当然是“返回”到“语句”,当 I2C 完成或睡眠时间已过时,可能从顶级任务条目向下调用 4 个。
我正在为每个任务采用分层状态机设计,顶部有一个简单的调度程序。但是处理几个例程,这些例程过去用于进行阻塞调用序列,现在每个例程都成为状态机,可以在多个地方和不同的函数调用深度被调用,似乎需要为每个任务提供显式堆栈功能,以便每次我启动子状态机时,我都可以为该进程分配状态并将它们推送到该任务的“状态堆栈”中,以便下一次调度程序调用该任务将能够关闭所有分层状态继续处理它“停止”的地方。
您能否看到适用于该问题的其他设计架构、将代码快速移植到非抢占范式的注意事项,或者指出思想丰富的资源和关于“RTOS-removal”技术和设计的讨论?
这三个答案一起很好地描绘了基于状态机的开发相关性和相关工具,以避免重新发明轮子。我们的客户不会接受任何类型的许可,包括 GPL。从答案看来,如果想要使用没有 RTOS 且禁止轮询调用的分层状态机,似乎没有办法缓存状态。由于分层 SM 通过保留其结构(对例程的函数调用成为对子状态机的调用)对移植现有代码有很大帮助,因此我将采用提供的工具作为很好的示例。- 谢谢。
rtos - 关于使用管理程序与 Windows/Linux 并行运行实时操作系统的建议
对于使用管理程序(例如RTS Real-Time Hypervisor)与非实时操作系统并行运行 RTOS,您有什么建议/经验。是否有任何性能影响?是否有任何风险?(比如如何确保非实时操作系统不会干扰 RTOS 的实时方面)
据我了解,必须使用双核(或超线程)CPU,以便您可以为每个操作系统分配自己的内核。
networking - 使用(免费)嵌入式 TCP/IP 堆栈的经验?
是否有人对以下任何嵌入式 TCP/IP 堆栈有特别好的(或坏的)经验?
我需要一个可靠的、易于移植的堆栈。代码大小不是很重要,性能相对重要,但易用性和移植性非常重要。
该系统可能会使用一个尚未确定的 RTOS,但根据我的经验,大多数堆栈都可以在有或没有 RTOS 的情况下使用。该平台很可能是 ARM 变体(很可能是 ARM7 或 CM3)。
不太关心将堆栈栓接到以太网驱动程序,因此这不是选择的重点。
我对从操作系统(例如 Linux、RTEMS 等)中提取堆栈不是很感兴趣。
我也对 Interniche、Micrium 等商业产品不感兴趣......
堆栈不需要各种花里胡哨,不需要 IPv6,而且我不需要任何东西(Web 服务器、FTP 服务器等)。事实上,我可能会只使用 UDP,尽管我可以设想 TCP 更可取的几个场景。
我错过的其他堆栈的经验当然也非常有趣。
感谢您的时间和投入。
linux - 我应该选择哪种 Linux RTOS 解决方案?
我正在准备自己在 Linux 之上构建 RTOS 解决方案,这将在嵌入式设备上运行。我自己做了一些调查,但我还是有点困惑。这些是我的标准:
在三星s3c2440 ARM9机器上轻松运行
开源
与 Linux 一起工作
良好的社区支持
我见过 RTLinux 和Xenomai。Xenomai 对我来说看起来更像是东西,但我仍然很困惑。
有什么好的建议,利弊?
python - 实时操作系统 (RTOS) 上的 Python
我计划在 RTOS 平台上实现一个小型数据采集系统。(在 QNX 或 RT-Linux 系统上。)
据我所知,这些工作是使用 C/C++ 执行的,以充分利用系统。然而,我很想知道并想了解一些有经验的人的意见,然后我盲目地投入到编码行动中,用 Python 编写所有东西是否可行和更明智(从低级仪器接口到闪亮的图形用户界面)。如果不是,则将设计的时间关键部分与“C”混合,或者用 C 编写所有内容,甚至不放置一行 Python 代码。
或者至少使用 Python 包装 C 代码以提供对系统的更轻松访问。
你会建议我以哪种方式工作?如果您指出一些类似的设计案例和进一步的阅读材料,我会很高兴。
谢谢
注 1:之所以强调 QNX,是因为我们已经有一个基于 QNX 4.25 的数据采集系统 ( M300 ) 用于我们的大气测量实验。这是一个专有系统,我们无法访问它的内部。进一步了解 QNX 可能对我们有利,因为 6.4 具有免费的学术许可选项,附带 Python 2.5 和最近的 GCC 版本。我从未测试过 RT-Linux 系统,不知道它在稳定性和效率方面与 QNX 相比如何,但我知道 Python 栖息地和非 Python 工具(如 Google Earth)的所有成员都认为新系统大部分时间都可以在开箱即用的作品上开发。
embedded - 为 msp430 编写嵌入式应用程序?
我希望能够拥有一个用于高端 MSP430 的基本操作系统和基本文件系统,可能是MSP430F5438。我知道我可以使用诸如FreeRTOS、IAR PowerPac或Micrium之类的东西来命名操作系统和文件系统的一些选项。但是,我希望以后也能够加载小小程序或线程,理想情况下从文件系统中获取这些额外的代码。我的目标是不必重新刷新整个设备来更改或实现嵌入式设备上的功能。不知道去哪里实现这个功能,或者我是否需要切换到另一个处理器,比如 ARM。
c++ - 如何使用 C/C++ 设置系统时间?
我有一个运行 RTOS、IAR 工具的嵌入式系统 (ARM 9263)。系统支持标准 time() 函数,它为我提供当前时间。我需要反向调用,即我需要设置时间 - 是否有“C”标准方式来执行此操作?我已经用谷歌搜索了,当然认为这很明显,但也许它依赖于平台?我不知道为什么,因为 time() 不是 - 任何想法?谢谢!
rtos - 任何了解 VRTX 的人
我需要了解 VRTX(A RTOS)的内部结构。
- 它与其他商业/免费 RTOS 有何不同?
- 是什么让 VRTX 在嵌入式系统中独树一帜?
java - 为什么 RTOS 只用 c 编码?
是否有必要总是用 C 语言编写 RTOS?为什么不能用java或其他技术编码..??那是因为java中没有指针概念吗?