utenux是大连悠龙公司基于uT-Kernel开发的开源嵌入式操作系统,支持Cortex M0-4、ARM7、ARM9等硬件平台,也获得了ARM、ATMEL、FUJITSU、TI、ST、NXP等MCU厂商的大力支持。2013年04月30日,μTenux新版本V1.5.00r160 发布,使用环境包括KEIL RealView MDK 4.60、IAR EWARM 6.50.2、uLoong uT/Studio V3.0,前两个环境在国内应用比较广泛,尤其是MDK,因此utenux比较容易进入,不像LINUX大家要新学环境。使用utenux的软件结构如下所示。
其中BOARD为运行软件的硬件平台,包括GPIO\UART\SPI\IIC等基础单片机的资源,也包括近年来迅速发展的ARM7的高端资源如SLAVE USB/HOST USB/EMAC/NAND FLASH 存贮/SD卡等,而应用RTOS的意义更多体现在应用高端资源上,比如硬件具有的USB/EMAC功能只是链路层或物理层的数据传输,而中间的传输层、网络层等USB/TCP等协议如果都各自设计,光理解这些规范就是件痛苦的事情。所以就有了一些协议栈来使应用层的应用传达到物理层,而这些协议栈一般都集成在OS里面使用更方便,所以应用RTOS成为使用高端资源的很好的选择。
硬件上面的一层为内核层。基于对ucos 的理解,他主要实现硬件功能的多任务化,这就需要任务调度。utenux采用基于优先级的可抢先任务调度,而相同优先级的先来先处理,貌似ucos不能有相同优先级的任务啊。utenux任务调度的产生条件1是处理程序的返回,2是执行改变系统运行状态的系统调用,3是产生时钟中断。多任务之间需要同步,utenux比ucos具有更多的任务同步方法,包括信号量、邮箱、互拆体、事件、消息、集合点端口等,有些需要加深理解。更多的同步方法使应用绚丽多彩。内核另外功能是内存管理、时钟管理、系统监控等。总之内核是目前发布的主要内容,是一个RTOS的核心,决定了其性能指标。
内核上面就是中间件,包括各种协议栈,据说不久将发布。作为应用设计这些比内核更重要,内核是系统设计人员更关注的,我不知道没有中间件如何开发应用系统。
最上面就是呈现给用户的最后的应用啦,看上面的示意图,utenux在不同行业都可应用。