蓝冠注册《Q374919》我已经在Tower Kinetis平台和我自己的硬件上使用MQX RTOS做了大量的工作,蓝冠 但我想找到一个开源的替代方案。RTOS平台有很多,但我列出了三个合理的替代方案:
我作为非专业的印象是FreeRTOS重量最轻的RTOS和可以使用更小的微控制器,eCos是最类似于MQX和将工作做好高端微控制器,和uClinux在高端微控制器上工作得最好。uClinux不是传统的实时操作系统,蓝冠官网而是实时添加到linux内核中。
我推测,当人们在小处理器上开发小型嵌入式程序,而不想从头开始编写一个纯铁应用程序时,他们就会被FreeRTOS所吸引。人们被uClinux吸引是因为驱动程序支持和/或从过去的经验中熟悉linux。eCos处于中间位置,人们需要更完整的RTOS,但对实时的要求超出了uClinux,而且FreeRTOS的重量太轻。
尽管如此,这只是一个对这三种选择都缺乏经验的人的印象。我的经验主要是使用MQX,蓝冠注册 对于我正在编写的这类应用程序,它适合在Kinetis上运行。MQX很好,但仅限于飞思卡尔处理器公司,或其他购买了MQX并重新分销的公司。飞思卡尔的论坛支持它,大多数时候你可以在需要的时候找到帮助。已准备商业工具。有很多代码示例。公平地说,您可以快速学习MQX并编写合理的程序,而不需要经历太多痛苦。
eCos支持更广泛的微控制器。它最初是一个商业RTOS,后来被RedHat收购,最终进入公共领域。它成熟而稳定。它有一个由大约10名核心开发人员组成的小社区,他们维护代码库,并为新的微控制器和许多应用程序程序员添加支持。有一些供应商提供支持eco的工具,但你可以在没有他们的情况下使用。
与MQX相比,从头开始并不容易,因为没有那么多示例,而且在设置编程环境时需要做出更多选择。作为一个新手,我发现要创建第一个Hello World应用程序要困难得多。部分原因是对Kinetis的支持不断更新,但更主要的原因是没有“只安装并运行”的完整解决方案。
我在这篇文章中的目标只是简单地记录下我所走的道路,以便新手能够遵循它,如果他们想要从一无所有到Hello World和一个完整的工具链,而不擦破自己的膝盖。我假设您使用Windows开发过MQX,对linux或eco知之甚少。但是我不讨论如何使用eCos,因为已经有足够的文档了。
操作系统的选择
我的第一个问题是选择一个操作系统来承载开发平台。我的基本平台是Macbook Pro,因为我喜欢它。eCos工具将在使用Cygwin的Windows上运行,但根据过去的经验,我认为为什么不从unix系统开始工作呢?对我来说似乎更容易。OSX是基于unix的,但笔记本电脑被取代了,我知道开源世界需要时间来设置,而且很难迁移,除非你做了非常好的笔记。所以我决定在Parallels上运行linux。
我基本上不知道该在Linux上使用哪个版本。回过头来看,似乎其他eCos开发者也在使用Ubuntu。我选择RedHat Enterprise version 6 64bit。我觉得这是个安全的选择。这要花一点钱,但你可以获得一年的更新。通过购买linux来启动一个开源项目可能是具有讽刺意味的。对于使用开源,我并不是独断专行。
事实证明,这个选择有一些困难。主要是因为库有32位和64位版本,所以在编译工具时,必须在操作系统上使用正确的库。如果不进行一些代码调整,一些工具就无法编译。事后看来,如果我不得不重做的话,我可能会使用32位版本。
我在使用RHEL6时也遇到了一些困难。主要的问题是在重新安装linux之后,我必须改变分区的大小来完成任何事情,这是不容易弄清楚的。此外,要弄清楚如何运行文件系统检查linux是否被锁定,并且必须使用Parallels强制停止也不容易。当试图让一个pemmicro加密狗与MQX等兼容时,USB设备发生了锁定。一旦eCos工具链全部就位,我就没有任何问题了。
这些并不是特定于eCos的问题,但是因为我想为新手描绘一幅完整的画面,所以我将在进入eCos工具链之前先讨论这两个问题。此外,如果您来自MQX,那么您可能是Windows用户,并且会在一些事情上卡住。