已剪辑自: https://mp.weixin.qq.com/s/YQGaBlluBWFbk01K5qCu_A

单片机编程时,我们都知道有两种基本操作:裸奔和操作系统。所谓裸奔,就是一个大循环往复执行。
今天要讲的是几个常用的操作系统。
实时操作系统(Real-time operating system,RTOS),又称即时操作系统,它会按照排序运行、管理系统资源,并为开发应用程序提供一致的基础。
与一般的操作系统相比,RTOS最大的特色就是“实时性”,如果有一个任务需要执行,RTOS会马上执行该任务,不会有较长的延时。这种特性保证了各个任务的及时执行。
今天给大家介绍14种主流的RTOS**,**分别为μClinuxμC/OS-IIeCosFreeRTOSmbed OSRTXVxworksQNXNuttX;而国产的嵌入式操作系统包括都江堰操作系统(djyos)、Alios ThingsHuawei LiteOSRT-ThreadSylixOS
这14种嵌入式操作系统的特点如下。

μClinux是一种优秀的嵌入式Linux版本,其全称为micro-control Linux,从字面意思看是指微控制Linux。

同标准的Linux相比,μClinux的内核非常小,但它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的API,以及TCP/IP网络协议等。

因为没有MMU内存管理单元,所以其多任务的实现需要一定技巧。

μClinux在结构上继承了标准Linux的多任务实现方式,分为实时进程和普通进程,分别采用先来先服务和时间片轮转调度,仅针对中低档嵌入式CPU特点进行改良,且不支持内核抢占,实时性一般。

综上可知,μClinux最大特点在于针对无MMU处理器设计,这对于没有MMU功能的stm32f103来说是合适的,但移植此系统需要至少512KB的RAM空间,1MB的ROM/FLASH空间,而stmf103拥有256K的FLASH,需要外接存储器,这就增加了硬件设计的成本。

μClinux结构复杂,移植相对困难,内核也较大,其实时性也差一些,若开发的嵌入式产品注重文件系统和与网络应用则μClinux是一个不错的选择。

单片机下载程序、在线Debug时往往会用到JTAG和SWD,常用的设备是J-LINK和ST-LINK,而这都是有版权的,价格较贵。

而DAP-LINK是开源的烧录工具,适用于Cotex-M系列内核的单片机,无版权约束。我实现了这个开源项目,无聊成本27元+4元运费即可到手。

μC/OS-II是在μC/OS的基础上发展起来的,是用C语言编写的一个结构小巧、抢占式的多任务实时内核。μC/OS-II能管理64个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和扩展性强等特点。

在文件系统的支持方面,由于μC/OS-II是面向中小型嵌入式系统的,即使包含全部功能,编译后内核也不到10KB,所以系统本身并没有提供对文件系统的支持。但是,μC/OS-II具有良好的扩展性能,如果需要也可自行加入文件系统的内容。

在对硬件的支持上,μC/OS-II能够支持当前流行的大部分CPU,μC/OS-II由于本身内核就很小,经过裁剪后的代码最小可以为2KB,所需的最小数据RAM空间为4KB,μC/OS-II的移植相对比较简单,只需要修改与处理器相关的代码就可以。

综上可知,μC/OS-II是一个结构简单、功能完备和实时性很强的嵌入式操作系统内核,针对于没有MMU功能的CPU,它是非常合适的。它需要很少的内核代码空间和数据存储空间,拥有良好的实时性,良好的可扩展性能,并且是开源的,网上拥有很多的资料和实例,所以很适合向stm32f103这款CPU上移植。

eCos(embedded Configurable operating system),即嵌入式可配置操作系统。它是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系统,其最大的特点就是配置灵活,采用模块化设计,核心部分由小同的组件构成,包括内核、C语言库和底层运行包等。每个组件可提供大量的配置选项(实时内核也可作为可选配置),使用eCos提供的配置工具可以很方便地配置,并通过不同的配置使得eCos能够满足不同的嵌入式应用要求。eCos操作系统的可配置性非常强大,用户可以自己加入所需的文件系统。eCos操作系统同样支持当前流行的大部分嵌入式CPU,eCos操作系统可以在16位、32位和64位等不同体系结构之间移植。eCos由于本身内核就很小,经过裁剪后的代码最小可以为10KB,所需的最小数据RAM空间为10KB。另外,在系统移植方面,eCos操作系统的可移植性很好,要比μC/OS-II和μClinux容易。综上所述,eCos最大特点是配置灵活,并且支持无MMU的CPU的移植,开源且具有很好的移植性,也比较合适于移植到stm32平台的CPU上。但eCOS的应用还不是太广泛,还没有像μC/OS-II那样普遍,并且资料也没有μC/OS-II多。eCos适合用于一些商业级或工业级对成本敏感的嵌入式系统,例如消费电子领域中的一些应用。

由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对于C/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行,其最新版本为6.0版。作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、优先级最高的任务先运行。FreeRT0S内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时间。相对于常见的μC/OS—II操作系统,FreeRTOS操作系统既有优点,也存在不足。其不足之处,一方面体现在系统的服务功能上,如FreeRTOS只提供了消息队列和信号量的实现,无法以后进先出的顺序向消息队列发送消息;另一方面,FreeRTOS只是一个操作系统内核,需外扩第三方的GUI(图形用户界面)、TCP/IP协议栈、FS(文件系统)等才能实现一个较复杂的系统,不像μC/OS-II可以和μC/GUI、μC/FS、μC/TCP-IP等无缝结合。开源嵌入式操作系统,ARM公司将mbed OS免费提供给所有厂商使用,mbed提供了一个相对更加系统和更加全面的智能硬件开发环境。主要功能:提供用于开发物联网设备的通用操作系统基础,以解决嵌入式设计的碎片化问题。支持所有重要的连接性与设备管理开放标准,以实现面向未来的设计。使安全可升级的边缘设备支持新增处理能力与功能。通过自动电源管理解决复杂的能耗问题。主要特点:开发速度快,功能强大,安全性高,为了量产化而设计,可离线开发,也可以在网页上编辑。

14种主流的RTOS 单片机操作系统~来学!相关推荐

  1. stm32正常运行流程图_深度分析:主流32位单片机为什么要学STM32?-可编程逻辑-与非网...

    为什么学习STM32? 先列举一下大家问得最多的几个问题,然后我们一起由问题切入进行一些讨论. 首先问题1:我是单片机好还是直接学STM32好呢? 答:1)首先我们谈下目的,你学习的最终目的是能够开发 ...

  2. 主流嵌入式操作系统(RTOS)有哪些?看看这14种

    满足实时控制要求的嵌入式操作系统(RTOS)操作系统,以下介绍14种主流的RTOS,分别为μClinux.μC/OS-II.eCos.FreeRTOS.mbed OS.RTX.Vxworks.QNX. ...

  3. 详解目前主流的嵌入式操作系统(RTOS)操作系统

    满足实时控制要求的嵌入式操作系统(RTOS)操作系统,以下介绍14种主流的RTOS,分别为μClinux.μC/OS-II.eCos.FreeRTOS.mbed OS.RTX.Vxworks.QNX. ...

  4. 这14种嵌入式实时系统,你用过哪些?

    满足实时控制要求的嵌入式操作系统(RTOS) 以下介绍14种主流的RTOS,分别为μClinux.μC/OS-II.eCos.FreeRTOS.mbed OS.RTX.Vxworks.QNX.Nutt ...

  5. 目前市面上的单片机操作系统很多,为何FreeRTOS会这么抢眼

    目前市面上的单片机操作系统很多,为何FreeRTOS会这么抢眼 随着嵌入式开发的认知度越来越高,从事这个专业或者以此为爱好的朋友也是越来越多,当在裸机开发的过程中遇到任务比较多,难以处理的时候,难免就 ...

  6. 嵌入式操作系统和RTOS(实时操作系统)介绍。

    目录 嵌入式操作系统 RTOS(实时操作系统) 实时操作系统: 什么是嵌入式操作系统 一μClinux 二μC/OS-II 三eCos 四 FreeRTOS 五 mbed OS 六 RTX 七 VxW ...

  7. 如何提高Wi-Fi速度:14种方法让网速提10倍!

    缓慢的Wi-Fi可能会让脾气最好的人生气,甚至将路由器扔出窗外.无论是小企业,家庭宽带还是具有更大连接需求的大公司,以下14种提速方法让你无论何时何地都可以顺利吃鸡! 1.检查宽带速度 做所有调整之前 ...

  8. 浅谈几种主流数控机床的数据采集技术

    马上即将毕业了,就自己在学校做的项目中包含有几种主流数控系统需要进行数据采集,总结一下之前的一些经验和开发工作,也希望后面再做相关技术研究的时候少踩点坑,同时也算是一个阶段的总结吧,毕竟马上要从事一个 ...

  9. 数据简化社区2018年全球数据库总结及18种主流数据库介绍(公号回复“数据库2018”下载典藏版PDF报告)

    数据简化社区2018年全球数据库总结及18种主流数据库介绍(公号回复"数据库2018"下载典藏版PDF报告) 秦陇纪 数据简化DataSimp 今天 数据简化DataSimp导读: ...

最新文章

  1. Devexpress 重新编译以后 重新生成DEMO
  2. STM32F0 定时器触发ADC,多通道采样、DMA传输数据的配置
  3. 前端学习(2979):vue-element-admin结构always:true始终显示
  4. php moodle mysql_PHP+XAMPP+MYSQL:从MOODLE数据库提取数据并利用jpgraph生成柱状成绩对比图...
  5. 小米集团:回购460万股,耗资9818万港元
  6. 编程迷宫_跟我学编程第十期——迷宫游戏
  7. 斯威夫特山地车_斯威夫特字典
  8. IDEA运行main,junit方法报错Class not found
  9. MSP430项目设计:2020年TI杯大学生电子设计竞赛 坡道行驶电动小车(C题)循迹小车(分享项目展示视频与源码)
  10. opencv之伪彩色处理
  11. windows server 2008 r2集成USB3.0
  12. 一款高颜值的词云包让我拍案叫绝,我爷爷看了都能学会
  13. 博士申请 | 香港中文大学LaVi Lab王历伟老师招收人工智能全奖博士生
  14. 最最基本的SQL手动url注入方法
  15. 大家都在做直播,陌陌做的这个有什么不同?
  16. ubuntu12.04 GX编译环境搭建
  17. 【算法与数据结构】—— 动态规划之背包问题
  18. MongoDB的Morphia框架
  19. Python中 * 的用途
  20. 二叉树的递归遍历和非递归遍历实现(C++)(深度优先)

热门文章

  1. 【软件测试】自动化测试战零基础教程——Python自动化从入门到实战(一)
  2. Linux攻关之基础模块七 命令总结
  3. 一 ROS基础教程
  4. android硬件加速 setLayerType
  5. 基于BP神经网络飞机颠簸预测
  6. IC China展商大唐展讯新潮华虹等2014电子信息百强榜上有名
  7. 电子工程师入门宝典:最常用十大电子元器件-电子技术方案|电路图讲解
  8. windows 安装python3 Eclipse 配置python插件
  9. DWR服务器推 教程
  10. 尚好房 04_服务拆分