在上一篇《嵌入式操作系统浅谈》中,大概介绍了我自己再工作中使用到的如rt-thread,freeRTOS,uCOS,luatos等系统,在这一篇文章中,我简单说一下这些操作系统一些特点,还有就是我们平时的工作中什么场景下用哪种系统比较好。

csdn里面很多大神对上面的一些系统都做过了一些对比和总结:
比如:
1.[RTOS]uCOS、FreeRTOS、RTThread、RTX等RTOS的对比之特点
2.嵌入式操作系统RT-Thread和Freertos资源对比总结
3.rtthread-ucosii-freertos三系统学习总结
等等文章还是很多的,如果你是刚入门的开发者,建议不要去看,因为你目前没有经验;如果你使用过其中某一个操作系统,想了解一下其他的系统不妨认真的看一下。

1.使用(移植)上的流程对比

1.1 uCOS的使用(移植)流程

可以参考一下uCOS系统移植(hal库)这篇文章,我自己以前也是大概的流程,或者就是直接下载别人做好的一些工程模板,因为uCOS使用的人非常多,往往你使用的mcu一般都会得到支持。

1.2 freeRTOS的使用(移植)流程

这边csdn上也有很多参考,但是我一般都是通过cubemx来直接移植和使用freertos的,这样非常方便快捷,只要够选中间件中的freeRTOS就可以了

1.3 rt-thread的使用(移植)流程

因为rt-thread是国内开发的,官网也是中文的,大部分资料也是中文的,所以这一块对国人的支持是最友好的。

目前rt-thread 大致的开源版本大类有三种rt-thread标准版,rt-thread-nano版,还有rt-thread smart版,可以通过官网资料看一下三个版本的区别

三个版本的区别
标准版 目前是使用最多的版本,涵盖了rt-thread内核,组件,软件包等等
nano版 只有rt-thread内核,没有组件和软件包,当然可以自己移植,可以看做就是freertos
smart版 这个版本我自己还有身边的人都只是根据实际的教程走过,没有出来过产品,可以简单的当做是Linux,但是api接口等风格还都是rt-thread的

不同的版本有都有自己不同的使用流程,以标准版为例,以新手为例rt-thread要比freeRTOS和uCOS难上手很多,因为他不光要移植内核,还需要移植设备框架,而且还需要用到env工具,好在后来rt-thread自己出了他们的IDE(rt thread studio),这个IDE类似eclipse,对于只熟悉keil或者IAR的嵌入式工程师来说,学习成本有点高,所以很多初学者或者入门的人都会在这边劝退。但是如果熟悉了他的流程,在开发过程当中使用rt-thread还是相当有趣的,所以如果你正好也卡在移植BSP的阶段,不妨多尝试几次,移植不通过多到rt-thread社区问一下小伙伴,那边的社区还是挺活跃的。

一般情况下,如果是使用stm32直接看官方的BSP制作流程就可以简单的把rt-thread跑起来,后面再根据教程添加对应的驱动或者软件包等。

1.4 luatos使用教程

目前luatos主要支持的还是他们自家的芯片或者是产品,所以使用上跟着教程走就可以了,非常方便,开发其实也挺简单的,但是要掌握lua,lua我大概前后花了1个月时间去学习,现在也能够大概写一些简单的脚本。

小结

使用freeRTOS是比较简单的,使用rt-thread标准版是最复杂的,简单有简单的好处,复杂也有复杂的特点,最好的情况就是都自己动手尝试一遍。

2. 开发过程中的一些对比

2.1 freeRTOS和uCOS

这两个系统都只是提供了实时内核,所以相对来说会简单一点,一般的情况就是把以前while(1)中的1个任务,分成多个任务task来执行,配合一些系统提供的任务间通信的API来实现,数据传递,同步等等功能。

一般使用freeRTOS的都喜欢用他提供的Tickless来做低功耗功能,有兴趣的朋友可以自己动手尝试一下,但是先说明低功耗是一个比较复杂的开发过程,一般情况都是裸机开发先通过后,再转向系统的开发,因为不光是涉及软件的问题,同样也涉及到硬件,外设,电源,使用环境场景等等因素。

2.2 rt-thread

前面也提到了,rt-thread想要真正跑起来,为自己所用,有一定的难度,好在目前资料都是中文的,认真看完,再参考一些案例,应该没什么太大的问题。
使用rt-thread的大致流程一般是:
1.BSP制作
2.添加外设驱动
3.系统配置和裁剪
4.添加和配置软件包

2.3 LuatOS

LuatOS当然是最简单的了,所有自带的外设都有对应的demo程序可以做参考,需要添加的其他常见外设或者通信其他的芯片也会找到官方提供的demo,作为开发者还是挺舒服的,但是里面难免会有一些bug,建议要是自己做产品的话,一定要一步一步验证好。

小结

虽然freeRTOS和uCOS使用起来很方便,但是他们只提供了实时内核。
而像rt-thread和luatOS的话,已经提供了十分丰富外设和软件包,让你在开发的过程中避免了重复造轮子。

3.系统维护上的区别

3.1 freeRTOS

从目前使用下来的情况,在选定好系统版本,并且开发认证完成后,一般情况下不需要对内核进行升级,还是比较稳定的。

3.2 uCOS

因为一些情况下经常使用的是别人制作好的模板,往往达不到自己要求的效果,搭建demo和简单的多任务开发还可以,但是对于比较复杂的应用来说往往修改的地方还是挺多的,维护起来还是有点吃力的。

3.3 rt-thread

rt-thread的话其实是经常需要对系统进行维护的,还好因为其特性,小版本之前的维护还是比较方便的,但是大版本的升级,或者代码迁移还是挺麻烦的比方最近把一年前做的(4.0.3的版本升级到4.1.1)就比较麻烦,很多源码结构和目录都变了,需要一个模块一个模块来迁移。迁移完成后,还需要大量的时间和精力来测试,当然如果之前使用的版本没有特殊的问题,而且产品是稳定的,就不要去升级。

3.4 LuatOS

LuatOS 维护起来是最方便的,因为他本身提供了远程升级的功能,而且还设计的时候已经设计好了升级底层和用户层脚本的方式,而且更好的是支持了差分升级,有兴趣的朋友可以看一下官网的远程升级教程。

小结

在维护的层面来看LuatOS又是维护起来最方便的,其次是freeRTOS和uCOS这样的内核级的系统,而像是rt-thread这样比较庞大的系统维护起来还是挺麻烦的,既要会维护系统内核,又要会维护一些软件包的更新,如果有一些软件本身有一些小的问题,修改起来也许是会比较费时间的。

4. 总结

根据上面简单写的从系统的使用,开发到后续的维护过程的简单分析

使用(移植) 开发过程 维护过程
freeRTOS 简单 复杂 简单
uCOS 简单 复杂 简单
rt-thread 入门后简单 简单 复杂
LuatOS 简单 简单 简单

[RTOS]rtthread,freeRTOS,uCOS等系统简单对比相关推荐

  1. 鸿蒙与安卓系统简单对比,绝非追求三分天下。

    鸿蒙是面向5G物联网.面向全场景的分布式操作系统,其不是安卓系统的分支或修改而来的,与安卓.iOS是不一样的操作系统.鸿蒙将打通手机.电脑.平板.电视.电器设备.工业自动化控制.无人驾驶.车机设备 . ...

  2. BCS和ECCS等合并系统简单对比

    ECCS BCS 合并数据来源 Ledger 09->Table GLT3 Ledger 1C->Table ECMCT 其他文本,Excxel,Access数据 FILE这事务码可设置逻 ...

  3. oneAPM 和 open-falcon系统指标采集简单对比

    监控名称 oneAPM name openfalcon-name 备注 系统负载 system.load.1 system.load5 system.load15 load.1min load.5mi ...

  4. 主流WEB开发语言简单对比(转)

    主流WEB开发语言简单对比  原文链接:http://www.uml.org.cn/site/201401091.asp   随着时间的飞逝,随着岁月的流失.从世界上第一台计算机ENIAC诞生至今,已 ...

  5. 关注Cortex-M处理器,M0、M3、M4简单对比

    最近在关注Cortex-M处理器,针对目前进入大众视野的M0.M3.M4做了如下简单对比,内容来自ARM等官网,这里仅仅是整理了下,看起来更直观点,呵呵. Cortex-M 系列针对成本和功耗敏感的  ...

  6. 比较流行的10个博客系统程序对比选择

    Zblog和Wordpress及10个国外最流行博客系统程序对比选择 想要建立自己个人独立的个性化博客,首先要选择一个适合你的博客系统(Blog程序).目前网上发布的博客系统很多,我们应该选择怎么样的 ...

  7. 阿里云、腾讯云、七牛、网易云CDN简单对比

    阿里云.腾讯云.七牛.网易云简单对比如下, 仅做参考: 1.产品功能 产品功能 阿里云视频 腾讯云视频 七牛直播云 网易云视频 服务 直播 点播 转码 互动直播 直播 点播 转码 互动直播 直播 点播 ...

  8. 搬:五大车载操作(VOS)系统优劣对比,车载系统架构分析

    五大车载操作(VOS)系统优劣对比,车载系统架构分析-QNX系统性能分析 2017年08月13日 08:32:28 锋影Q 阅读数:7080 五大车载操作(VOS)系统优劣对比,车载系统架构分析-QN ...

  9. M0、M3、M4简单对比

    最近在关注Cortex-M处理器,针对目前进入大众视野的M0.M3.M4做了如下简单对比,内容来自ARM等官网,这里仅仅是整理了下,看起来更直观点,呵呵. Cortex-M 系列针对成本和功耗敏感的  ...

最新文章

  1. java多线程中的join方法详解
  2. php 将查询出的数组数据存入redis
  3. 从知识图谱到事理图谱 | CNCC 2017
  4. Visual Studio中使用Git Flow
  5. 深入理解 JVM Class文件格式(一)
  6. echarts加载动画效果_入门ae教程:科技类的加载动画,非常酷炫的效果,附带教程...
  7. 链接数据库增删改通用
  8. ora03135连接失去联系 进程id 0_Daemon 进程的创建
  9. 【Linux】排序命令sort
  10. linux内核根据skb获取目的mac地址
  11. 显示器屏幕尺寸及分辨率
  12. navicat使用手册
  13. IDEA安装翻译插件
  14. 调试铁通与联通专线遇到的问题
  15. Clonezilla再生龙备份系统分区详细教程
  16. win10 如何修改 C:\Users\用户名文件夹
  17. IP地址-子网掩码-默认网关之间的关系
  18. 天津工业大学c语言题库,天津工业大学计算机专业C语言经典笔记
  19. 【时序异常检测翻译】1.DeepAnT: A Deep Learning Approach for Unsupervised Anomaly Detection in Time Series
  20. pdf文档转化为doc文档 (转载)

热门文章

  1. 笔记本nc10装linux,三星nc10笔记本如何设置U盘启动
  2. RK3568 VS RK3399
  3. linux三剑客-sed命令的学习笔记
  4. Jenkins发布api jobs,利用supervisor管理运行
  5. ps保存图片时为了可以发送到微信中(微信大于25M的图片不能发送) 应该这样保存图片!!!...
  6. android 添加 iconv 支持
  7. redhat linux 查看内存大小,CentOS (RHEL) 系统管理中的查看内存插槽数、最大容量和频率...
  8. likely()和unlikely()
  9. javascript:window.scroll()函数behavior属性smooth属性值在iphone浏览器上不兼容
  10. js 检查当前浏览器是否在苹果设备上