Tag*_*agc 4 c microcontroller rtos lpc threadx
我正试图找到一个免费/廉价的RTOS,其他人发现它与恩智浦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倍.感谢您的建议,我觉得有点不好,我不能选择一个接受的答案.
小智 6
我原本打算使用FreeRTOS,但它似乎不支持那个特定的处理器
实际上,FreeRTOS支持所有带有GCC,IAR和Keil的Cortex-M3和Cortex-M4处理器.仅仅因为没有特定的预先配置的演示项目并不意味着它不受支持.
FreeRTOS不依赖于Cortex-M内核之外的任何东西,因为定时器生成和中断控制器是内核本身的一部分.
您可以从FreeRTOS发行版中获取现有的官方LPCxx IAR演示项目,并通过为芯片设置正确的链接描述文件来重新定位它.任何使用可能与您的特定硬件(用于LED输出的端口等)不同的IO的演示任务都可以修改为适合您的IO端口分配,或者只是删除.
例如,Atollic
有55 FreeRTOS
个项目在55个不同的硬件平台上运行,所有这些项目实际上都使用相同的C源文件 - 只有启动文件和链接描述文件不同.
我专门评估了Cortex-M3上的FreeRTOS,embOS和Keil RTX.在三个FreeRTOS当然有最慢的上下文切换时间,而RTX最快,但范围是5us到15us,所以可能不是最重要的除了最硬的实时应用程序(然而它在我的情况下有所不同).
RTX当然是Keil特定的,你使用IAR,它的API不如embOS复杂,当时它在CM3上有一些错误,并且不完全支持NVIC中断优先级方案.我相信这些问题已得到解决.FreeRTOS可能是API和架构方面三者中最不同寻常的,广泛使用embOS和VxWorks以及类似的"传统"RTOS系统,我对它并不十分满意.
embOS与IAR及其调试器配合良好,具有一定程度的RTOS感知调试功能.许可是每个开发人员/每个处理器/每个工具链,但在其他方面免版税,可以使用相同的架构和工具链在许多项目中使用.Segger的支持非常好,文档也是如此,我建议对于具有足够数量和利润的商业产品来说,这是值得的.
您也可以考虑使用eCos - 这是一个更全面的解决方案,提供对USB,网络,文件系统等的支持以及调度和IPC.LPC1766有一个端口可能相对容易移植.但很可能您必须使用GNU工具链进行开发,这可能会影响您对现有工具(如JTAG调试器)的使用.