【嵌入式】【原创】Freescale MQX研究心得之初体验
0赞前段时间提到打算折腾下MQX,执行力很关键,所以最近趁着时间宽裕就安下心来专研了几天。不过等到真正深入进去了才发现头有点大,相比于ucos和FreeRTOS,MQX组织架构的确是有些庞大(总体给人感觉乱乱的,有点像当年Kinetis的官方例程,哎,很无奈),功能也很全面,这样子做做应用还是比较方便的(自带了优化了的BSP、文件系统和协议栈之类的组件),但是如果想深入研究的话就颇有些复杂麻烦了(研究内核调度、内存分配、中断机制…)。实话说,自己到现在还没有真正摸到那种入了门的“感觉”(这点很重要),因此觉着有必要停下来对这段时间的学习成果做个阶段性总结然后再继续。所以接下来几天会陆续分享几篇MQX研究心得篇,对别人是个借鉴,对自己也是个记录的过程,高手可以略过,新手可以拍砖,呵呵~
今天先就自己搜集总结的一些资料对MQX做下简单的介绍:
MQX(Message Queue eXecutive)RTOS,即消息队列执行操作系统,为Precise Software Technologies在1989年开发的嵌入式实时操作系统。2000年3月,MQX被ARC公司收购,并在新的处理器体系中(主要包括当年的Freescale的ColdFire系列、IBM/Freescale的PowerPC、ARM、ARC和i.MX等)继续开发。2009年,飞思卡尔公司出售ColdFire时附送MQX,并在其官方网站上开放了源代码,使其成为开源RTOS(又是RTOS开源又是调试器开源,飞思卡尔在开源方便倒是真的做的不错,哈哈),目前最新版本为Freescale MQX4.0。
1、MQX特性介绍:
(1)全功能、可裁剪、经过多年产品验证过的RTOS。包括调度内核、中间组件(USB协议栈、RTCS协议栈等等)、支持FAT32文件系统的MS-DOS文件系统(MFS)以及自带的一些硬件平台的BSP;
(2)源代码公开,资源丰富,完全免费(可不仅仅用于学习哦,还可商用,这点比ucos好),当然限制是目前仅支持飞思卡尔自家架构的32位处理器,包括Kinetis、Coldfire和PowerPC等;
(3)采用很小的可配置外形,拥有只管的API接口和模块化的架构,可根据具体应用的三方面需求做深度裁剪(三方面包括功能特性、物理空间限制和运行效率);
(4)可调整的代码密度,可用于MCU或者MPU。对Kinetis来说,ROM最小可为12kB,RAM最小为2.5kB;
(5)支持单核、多核及分布式处理器的嵌入式系统;
(6)支持FIFO(优先级抢占式)调度和时间片轮转调度;
(7)Freescale官方提供技术支持。
2、MQX组织结构介绍:
MQX采用微内核结构,由核心组件(必选)和可选组件构成。对于核心组件来说,只有那些MQX内核活应用程序调用的函数才会包含在下载映像文件中(类似库的调用,应用程序的复杂性决定了最后编译生成的文件的大小)。此外,为了满足要求,应用程序可通过加入可选组件来扩展和配置核心组件。MQX的组织结构如下图所示:
3、MQX软件组件介绍:
从上图可以看出MQX的软件组件可分为必选组件和可选组件,下面我再说说大家最关心的收费方式的分类,呵呵,可能大家一看到这个,一下子额头出现三条黑线,不是完全免费的开源RTOS嘛。不错,MQX完整的系统是完全免费开放的,但是为了功能扩展,有些第三方组件是会收费的,这就类似我们玩QQ正常聊天的话,腾讯肯定不会收费,但是也有QQ会员这个名词出现了,换个QQ秀啊、搞个虚拟装饰啊之类的都是需要花钱购买的(貌似QQ会员是腾讯受益的大头)。这些都是必然的,天下没有完全免费的午餐,所以完全可以理解,而且Freescale MQX免费组件基本可以满足我们大部分的应用需要,基本用不上那些收费的组件,所以何乐而不为呢,哈哈。
免费组件:
RTOS内核(基于优先级抢占和时间片轮转调度器);
实时TCP/IP协议栈(RTCS)——TCP/IP,FTP,Telnet,DHCP,SNMP,…;
USB主设备——HID,MASS,CDC,AUDIO;
USB从设备——HID,MASS,CDC,PHDC,AUDIO;
MS-DOS文件系统(MFS);
BSP外设驱动:CAN,UART…;
WEB网页服务器;
Benchmark工具;
基本的技术支持:Freescale TIC,FAE,AE。
收费组件:
IAR,CW和Keil:MQX任务感知调试工具TAD(这个其实只要IDE是破解的都可以享受到,哈哈);
Freescale二级技术支持;
Embedded Access: XML, SNMP(V3), SFFS flash文件系统,现成培训,PEG图形库;
工业应用相关协议;
Mocana:NanoSSL和NanoSSH;
Segger:图像库。
呼呼,先就总结这么多吧,还好及时收住了,不然内容过多大家就不愿意看了,呵呵。总体来说,个人感觉MQX还是不错的,比较看好,当然如果以后能应用到其他平台上去就更好了,咳咳,当然这只是个人意愿了。最后,老话,本篇内容首发ChinaAET,转载请注明原作者jicheng0622信息和出处,谢谢,欢迎投票~
未完待续~