我正在努力寻找一种免费/廉价的实时操作系统,其他人已经发现它在恩智浦LPC1788微控制器上工作得很好。我最初计划使用FreeRTOS,但它似乎不支持那个特定的处理器;最受支持的核心是LPC1768。ThreadX与LPC1788一起工作,但它的许可证将花费数千英镑。有什么建议吗?
编辑1:我忘了提到,我正在使用IAR Embedded Workbench。
编辑2:我想我也应该指出,我对嵌入式编程相当陌生,更不用说使用实时操作系统了。FreeRTOS和ThreadX似乎都很相似,而且都有相当直观的接口。我想,其他实时操作系统的接口与这些类型的接口匹配得越多,我想就越好。
编辑3:我一直在研究一个叫做embOS的实时操作系统。它看起来很专业,API看起来很好,他们支持相当多的处理器/IDE组合(包括我的),我已经有了一个运行良好的示例项目。它不是免费的,许可费用约为2500欧元,但这仍然比threadX许可便宜3倍左右。谢谢你的建议,我不能选择一个被接受的答案,这让我感到很遗憾。
发布于 2012-09-15 16:11:41
我专门在Cortex-M3上评估了FreeRTOS、embOS和Keil RTX。在这三种应用中,FreeRTOS的上下文切换时间肯定是最慢的,而腾讯通是最快的,但范围是5us到15us,所以除了最硬实时的应用程序之外,可能对所有应用程序都不是关键的(但在我的情况下却有很大的不同)。
RTX当然是特定于Keil的,并且您正在使用IAR,它的API没有embOS那么复杂,而且当时它在CM3上有一些bug,并且不完全支持NVIC中断优先级方案。我相信这些问题已经解决了。就应用程序接口和架构而言,FreeRTOS可能是这三个系统中最非传统的一个,它广泛使用了embOS和VxWorks以及类似的“传统”实时操作系统,我对此并不完全满意。
embOS可以很好地与IAR和它的调试器一起工作,并在一定程度上支持实时操作系统的调试。许可是每个开发人员/每个处理器/每个工具链的,但除此之外是免版税的,并且可以在使用相同架构和工具链的许多项目中使用。Segger的支持非常出色,文档也是如此,我建议对于一个有足够数量和利润的商业产品来说,这是非常值得的。
你也可以考虑eCos -这是一个更全面的解决方案,提供了对USB,网络,文件系统和更多的支持,以及调度和IPC。有一个port for LPC1766可能可以相对容易地移植。但是,最有可能的情况是,您将不得不使用GNU工具链进行开发,这可能会影响您对现有工具的使用,比如JTAG调试器。
发布于 2012-09-14 02:00:47
我最初计划使用FreeRTOS,但它似乎不支持那个特定的处理器
实际上,FreeRTOS支持所有带有GCC、IAR和Keil的Cortex-M3和Cortex-M4处理器。没有为它预先配置的特定演示项目并不意味着它不受支持。
FreeRTOS不依赖于Cortex-M内核之外的任何东西,因为定时器生成和中断控制器是内核本身的一部分。
您可以从FreeRTOS发行版中获取一个现有的官方LPCxx IAR演示项目,并通过为芯片设置正确的链接器脚本来简单地重新定位它。在您的特定硬件上使用可能不同的IO的任何演示任务(用于LED输出的端口等)可以修改为适合您的IO端口分配,也可以直接删除。
例如,Atollic有55个运行在55个不同硬件平台上的FreeRTOS项目,所有这些项目实际上都使用相同的C源文件-只有启动文件和链接器脚本不同。
发布于 2012-09-13 15:59:43
我知道Keil mVision集成开发环境有针对恩智浦芯片的实时操作系统,它可以在24xx 100%上工作。但是这个RTOS并不是开源的,只有IDE用户才能使用它。
https://stackoverflow.com/questions/12401426
复制相似问题