"); //-->
这里把TreeOS 1.0与比较有名的两个实时操作系统比较一下。它们是美国Micronum公司 μcos-II实时操作系统,以及德国Keil公司(现被ARM公司收购)RTX51 FULL实时操作系统。
操作系统名称 |
μcos-II |
RTX51 FULL |
TreeOS 1.0 |
多任务 |
是 |
是 |
是 |
实时性 |
好 |
好 |
好 |
内核 |
有 |
有 |
无 |
提供设备驱动程序 |
无 |
无 |
全面 |
提供功能程序模块 |
无 |
无 |
全面 |
内存管理 |
有 |
有 |
不需要 |
任务优先管理 |
有 |
有 |
有 |
占用内存 |
几百字节以上 |
几百字节以上 |
~0 |
占用程序空间 |
2K以上 |
6~8K |
~0 |
适合51单片机 |
不适合 |
不适合 |
适合 |
适用ARM |
是 |
|
是 |
需用汇编 |
是 |
否 |
否 |
开放源代码 |
是 |
否 |
是 |
提供配置工具 |
无 |
无 |
有(开发中) |
学习难度 |
大 |
大 |
很小 |
(Keil公司针对51单片机还推出RTX51 Tiny版本,同样是不开源,而且最多只能有16个任务,没有任务优先级,功能十分有限,因此也没有推广开来。)
目前比较有名的实时多任务操作系统是UCOS和RTX51,在中低档单片机应用方面很少使用。究其原因,主要以下几点:
1)内核占用内存和代码空间资源,使单片机不堪重负。如果去扩展内存和程序空间,则使系统变得复杂,而且增加成本;
2)它们实际上只提供了一个壳而已,而设备驱动、功能模块程序仍需要开发人员花费大量时间自己开发;
3)对于初学者学习、理解、使用起来比较困难;
4)有些操作系统不开源(RTX51就不开放源代码),或者需要用到汇编(如UCOS),使用不方便。
当然,他们比较适合于较大项目的应用。可实际上绝大多数的单片机应用都是中低档的应用。对于小型的应用,使用这些操作系统就有杀鸡用牛刀的感觉。
TreeOS 1.0操作系统克服了以上的所有缺点,其“无核”的设计思想解决了占用占用系统资源(内存、程序空间、MCU运行时间)的问题,真正使51单片机也能用上操作系统。
不仅如此,TreeOS 1.0还提供了整体解决方案:
l 提供整体编程思路(软件架构)
l 提供完备的设备驱动程序和常用程序库
TreeOS 1.0最大的优点就是提供了大量成熟的设备驱动、功能模块等实用程序,正是这些应用程序构成了TreeOS 1.0操作系统,这是其它实时操作系统所不能比拟的。这些应用程序简化了软件开发过程,可以缩短开发时间,为开发人员节省了大量的工作量。
对于任务优先级管理,TreeOS 1.0首先充分利用MCU的中断功能和中断优先级概念,来优先处理紧急的任务。对于普通任务的优先处理,则采用“拆分与插入”原则。对于占时较长的任务,分成多次循环完成;对于需要及时处理的任务,则在大循环中多次插入,以此来保证优先任务的实时处理。另外一个原则是不让MCU有空闲的延时等待时间(时间短的除外),需要等待的任务一般分成多次循环来完成。
TreeOS 1.0很重视程序的易学性。电子工程师绝大部份都是从学习单片机起步的。因此考虑到初学者的困难,我们在设计软件的时候,很注重程序的可读性。生僻的语法尽量少用,变量名字规范清晰,注释充分。TreeOS 1.0由于采用层次结构,符合人们的思维习惯,使程序更通俗易懂。
TreeOS 1.0很重视程序的易用性。主要考虑程序的可移植性、可配置、可剪裁。尽量做到“所学即所用”,使规范化的驱动模块和应用模块可以立即直接搬到用户的系统里,大大降低了单片机开发的难度,减轻了开发人员的工作量。
TreeOS 1.0带来了一种崭新的设计思路,其核心技术就是打破了内核的框框,把实时性设计技术融化于功能齐全的标准化模块之中,这使它能够成为一个真正适用于51单片机的操作系统。
TreeOS 1.0作为一个实时操作系统,它的标准化模块化设计,使它的应用范围可不仅仅局限于单片机。对于嵌入式系统,它都是适用的,而且移植很方便,当然也很容易移植到ARM。事实上,我们已经将TreeOS 1.0移植到Cortex-M3,并成功应用到一些中型的开发项目上。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。