简单来说,实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系 统作出快速响应,并控制所有实时任务协调一致运行的操作系统。主要特点如下:
1)高精度计时系统
计时精度是影响实时性的一个重要因素。在实时应用系统中,经常需要精确确定实时地操作某个设备或执行某个任务,或精确的计算一个时间函数。这些不仅依赖于一些硬件提供的时钟精度,也依赖于实时操作系统实现的高精度计时功能。
2)多级中断机制
一个实时应用系统通常需要处理多种外部信息或事件,但处理的紧迫程度有轻重缓急之分。有的必须立即作出反应,有的则可以延后处理。因此,需要建立多级中断嵌套处理机制,以确保对紧迫程度较高的实时事件进行及时响应和处理。
3)实时调度机制
实时操作系统不仅要及时响应实时事件中断,同时也要及时调度运行实时任务。
RTOS使用现状
一起来看一份某调查机构关于嵌入式操作系统的调研结果。(摘自2015全球嵌入式市场分析报告)
调查用户分布
FreeRTOS
FreeRTOS欧美用得比较多,以前的公司有个与欧美同事合作项目,人家点名要求使用FreeRTOS。国内目前用得并不算太多,但是发展趋势不错。
同uc/OS类似,FreeRTOS也是一个轻量级的实时操作系统内核,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。官网的移植demo和教程现在也非常全面了,基本上的嵌入式芯片都已经覆盖,可以前往官网下载。相比uc/OS,FreeRTOS的主要优势在于:
-
内核文件占用RAM,ROM的要求少一些(其实差异不大,但是对于片内资源较少的MCU也算是一种优势)
-
支持协程,可以共享stack,进一步降低RAM的消耗
-
支持有同等优先级的任务,可以使用时间片轮转的方式进行调度
-
当然,最终要的是商业使用是免费的