4

我试图找到一个免费/便宜的 RTOS,其他人发现它与 NXP LPC1788 微控制器配合得很好。我原本打算使用 FreeRTOS,但它似乎不支持那个特定的处理器;最接近的支持内核是 LPC1768。ThreadX 可与 LPC1788 配合使用,但它的许可证将花费数千英镑。建议?

编辑 1:我忘了提,我正在使用 IAR Embedded Workbench。

编辑2:我想我还应该指出我对嵌入式编程相当陌生,更不用说使用RTOS了。FreeRTOS 和 ThreadX 看起来都非常相似,并且都有相当直观的 API。另一个 RTOS 的 API 与这些类型的 API 匹配得越多,我想就越好。

编辑 3:我一直在研究一种称为 embOS 的 RTOS。它看起来很专业,API 看起来不错,它们支持相当数量的处理器/IDE 组合(包括我的),而且我已经有了一个运行良好的示例项目。它不是免费的,它的许可证大约需要 2500 欧元,但这仍然比 threadX 许可证便宜 3 倍左右。感谢您的建议,我无法选择可接受的答案,我感到很遗憾。

4

7 回答 7

6

我最初计划使用 FreeRTOS,但它似乎不支持该特定处理器

实际上,FreeRTOS 支持所有带有 GCC、IAR 和 Keil 的 Cortex-M3 和 Cortex-M4 处理器。仅仅因为它没有特定的预配置演示项目并不意味着它不受支持。

FreeRTOS 不依赖 Cortex-M 内核之外的任何东西,因为定时器生成和中断控制器是内核本身的一部分。

您可以从 FreeRTOS 发行版中获取现有的官方 LPCxx IAR 演示项目,并通过为芯片设置正确的链接描述文件简单地重新定位它。任何使用 IO 的演示任务在您的特定硬件(用于 LED 输出的端口等)上可能不同,都可以修改为适合您的 IO 端口分配,或者只是删除。

例如,Atollic有 55FreeRTOS个项目在 55 个不同的硬件平台上运行,所有这些项目实际上都使用相同的 C 源文件——只是启动文件和链接器脚本不同。

于 2012-09-13T18:00:47.473 回答
5

我专门评估了 Cortex-M3 上的 FreeRTOS、embOS 和 Keil RTX。在三个 FreeRTOS 中,上下文切换时间肯定是最慢的,而 RTX 是最快的,但范围是 5us 到 15us,所以除了最难的实时应用程序之外,可能对所有应用程序都不重要(但在我的情况下它有所不同)。

RTX 当然是 Keil 特定的,并且您使用的是 IAR,它的 API 不如 embOS 复杂,当时它在 CM3 上有一些错误并且不完全支持 NVIC 中断优先级方案。我相信这些问题都解决了。在 API 和架构方面,FreeRTOS 可能是三者中最非传统的,它广泛使用了 embOS 和 VxWorks 以及类似的“传统”RTOS 系统,我对它并不完全满意。

embOS 与 IAR 及其调试器配合得很好,具有一定程度的 RTOS 感知调试,这是有用的。许可是针对每个开发人员/每个处理器/每个工具链的,但在其他方面是免费的,并且可以在使用相同架构和工具链的许多项目中使用。Segger 的支持非常好,文档也是如此,我建议对于具有足够数量和利润的商业产品来说,这是非常值得的。

您还可以考虑 eCos - 这是一个更全面的解决方案,提供对 USB、网络、文件系统等以及调度和 IPC 的支持。LPC1766有一个端口,可能相对容易移植。但是,您很可能必须使用 GNU 工具链进行开发,这可能会影响您对现有工具(例如 JTAG 调试器)的使用。

于 2012-09-15T08:11:41.110 回答
1

我知道 Keil mVision IDE 具有适用于 NXP 芯片的 RTOS,它在 24xx 100% 上工作。但是这个 RTOS 不是开源的,只有 IDE 拥有者才能使用。

于 2012-09-13T07:59:43.057 回答
0

Linux,它的 uClinux 形式,在 LPC1788 上运行得很好。看看这个视频,例如:

http://www.youtube.com/watch?v=VTemb8P1doI

正如上面评论中提到的,LPC1788 的内部 SRAM 不足以运行 Linux,但是 LPC1788 提供了一个 SDRAM 接口,可以添加外部 RAM。

于 2013-06-16T06:56:37.583 回答
0

Unison RTOS 提供与 Linux 相同的 POSIX 调用,包括一整套 I/O 调用,您会发现这些调用在诸如 freertos 之类的东西中缺失。该商业模式对 DIY 和基于商业产品的版税免费。开始使用串行 I/O 和文件系统时,它往往只是竞争对手价格 999 美元的一小部分。www.rowebots.com 了解详情。

于 2013-10-13T18:22:14.473 回答
0

您可以尝试使用任何 linux 内核编译获取 RTAI。可能需要一些工作,但应该可行(并且免费)

于 2012-09-13T07:54:39.983 回答
0

如果您愿意,我正在使用 RTOS,您可以在 github 上找到

http://www.github.com/geppo12/YasminOS

(路径区分大小写)

是一个简单的调度器我要尽快介绍任务优先级。我创建 YasminOS 是因为其他操作系统太复杂或太昂贵 实际上我正在开发 YasminOS,只有一个愿景:简单

有许多应用程序不需要极其强大的操作系统,而只需要简单的调度程序。实际上它在 Spansion FM3 架构或 NXP lpc800 上进行了测试(是的,也适用于 cortex m0)在不久的将来我将在 nxp 4088 上测试它......

于 2014-01-10T10:54:48.070 回答