嵌入式操作系统浅谈

写本文主要是记录一下最近几年自己在工作项目实践中的一些实际经验,并没有任何吹嘘或者参假,主要是目的是记录,如果有可能对一些读者带来一些帮助或启示,那就是我最大的欣慰。

1.工作中大家是怎么看待嵌入式操作系统的?

以我为例(主要是stm32方向),身边也应该是和大家一样,一些人(往往是工作十多年以上的)非常反感使用嵌入式操作系统,一些人(有老有少)特别喜欢使用嵌入式操作系统。反感使用操作系统的人往往对自己使用的单片机十分熟悉,数据手册往往到达了会背的阶段,而且比较喜欢使用某一款单片机去做不同的项目。喜欢使用操作系统的人往往接触面更广一点,导致不可能做到对每一个单片机都做到很深入的了解,遇到了问题的话,往往需要大量的时间去查资料解决问题甚至是解决不了问题。

  • 站在用户的角度,用户不关心你的软件,只要产品稳定可靠就行。
  • 站在厂家老板角度,也是不关心用的什么软件,首先是产品要稳定可靠,但是研发速度也要快。
  • 站在项目经理的角度,完成客户的需求,完成好老板交代的任务,其他不关心
  • 站在开发的角度,这个时候往往就要看个人能力了。

2.自己在工作中使用嵌入式操作系统吗?

这个当然是肯定的,而且会用到不止一种,比方rt-threaducosfreertosLuatosLiteOS
无论是做开发的时候,还是做项目经理的时候,我们都会事先评估项目各个环节:
1.产品级别(民用级,商用级,工业级),不同级别产品要求都不一样,往往商业级和工业级都需要拿到对应的检测机构进行检测,检测过关了拿到检测报告才能进行销售。
2.产品研发的时间(硬件研发的时间,软件研发的时间)
3.产品对实时性的要求(部分实时嵌入式操作系统都采用多线程模式,导致一些对实时性要求高的厂家就会不适用,这个时候可能会采用裸机开发的形式)
等等

3.使用嵌入式操作系统的优缺点

简单说一下优缺点,各个系统的优点其实在他们的官网上都有介绍
优点1.最大的有点就是跨平台(大致能做到一份代码,可以在不同的平台上做到同样的效果)
2.提供了很多轮子,比方任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等等
3.用户代码逻辑清晰简单,不再是一个大大的while(1)
缺点1.上手难(尤其是对于习惯裸机开发的人来说)
2. 资料复杂难懂,比方移植某个系统到某个平台,如果自己移植往往会不成功或者直接出错,劝退了很多人
3.经常会出现写的代码没有效果或者没有达到自己的目的,这个是工作中最长遇到的情况。

4.说几个使用嵌入式操作系统的成功或者失败案例

案例一

基于4G网络的rtu,我们自己平常的项目用RTU类型的项目应该是最常见的,尤其是当下物联网行业发展一直比较迅速。
这个类型的RTU我们自己迭代了好几个版本:

  1. stm32外挂4G模组-------(使用了rt thread)研发成功
  2. GD32外挂4G模组-------(使用了ucos)研发成功
  3. 4G模组opencpu开发(纯C,改基本的源码)--------失败太痛苦
  4. 4G模组opencpu 脚本开发(air724 luatos开发,ec600 python开发)-------研发成功

案例二

物联网传感器,这一块我们研发了很多简单的产品:温湿度传感器,噪声传感器,烟感,水浸,液位,水压,声光报警器,一键SOS报警器等等,其中有电池供电需要低功耗的,也有非电池供电不需要低功耗的。
总结如下:
需要电池做低功耗的设备:使用裸机开发或者是freertos开发比较好,像rt thread这样的系统其实对微安级别的低功耗模式支持的不是很好。
像是有源的设备,推荐使用rt thread系统,比方我们一个简单的传感器可能需要nb-iot版本,lora透传版本,lorawan版本,蓝牙版本,wifi版本,cat.1版本等众多的版本,这个时候rt thread强大的软件包功能就能够派上用场了。

案例三

语音报警器,这一块目前市场表现其实不是太好,主要是给居家养老或者是帮小朋友做定位卡片,还有就是做一下基于4G的对讲机。

这边主要是用到了两种脚本开发,lua和python;对应了air724的luatos和ec600n的QuecPython。
在这里插入图片描述
在这里插入图片描述

目前产品用下来air724开发上手等都要简单,但是具体的实际通话(打电话非数据)表现没有ec600n的好,air724在打座机或者一些语音台的情况下,通话是断断续续的,用户体验一般(如果合宙公司能够彻底解决该问题,air系列应该能够卖的更好),现阶段一些要求不是很高的项目,我们都会采用opencpu+脚本形式的开发,主要原因是投入的精力少,产品出来验证的效率高,产品核心是原厂给的,也比较稳定,该有的如远程升级这样最重要的功能原厂也考虑进去了,不需要自己折腾

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
RT-Thread的主要开发成员来自中国,大家主要利用业余时间进行RT-Thread的开发和 维护,同时也接受开发者,爱好者,以及专业嵌入式领域公司向RT-Thread捐赠代码。在上 海也有一家专业提供RT-Thread技术服务的服务公司: 上海睿赛德电子科技有限公司 。 RT-Thread以一年为开发、发布周期。RT-Thread的每一个版本都会设定一个目标,而 后的一年开发周期以这个为目标进行开发、演化改进,同时按照每个季度一个测试版本的形 式进行推进。发布的版本包括两种: • 一种是正式版本(或者说稳定版本,维护版本),例如2.0.x正式版本,它是2.0.0正式 版本的bug fix版本。在功能上并不添加新的功能,而着重于对已有bug的修正; • 一种是测试版本(或者说开发版本),例如2.1.0 beta版本。它是以一年期设定目标而 演进,完善的版本,相对来说不那么稳定,但具备新的功能,对新的路线的探索; 每个开发版本会提前设定出开发目标,一般是通过邮件、论坛进行沟通后进行;同时每 年在中国也会有一到两次的开发者会议,会议上会讨论新版本的目标,或者大版本新的方 向。 在开发活动上,RT-Thread相类似的按照上面的软件体系结构划分成三个部分: • 内核(kernel),这个是RT-Thread的核心,也是根本; • 组件(component),基于核心之上,把一些功能模块划分成独立的一个个组件模 块,做到组件与组件之间的低耦合,组件内部的高内聚; • 分支(porting),这个是RT-Thread支持的一个个芯片移植,外设驱动等; 这三部分每部分都有维护人,维护人应切实地保证相关部分的正常运行。当前的 RT-Thread开发版本放在github.com 上,欢迎每个开发者、爱好者向RT-Thread提交pull request。每个组件、分支的维护人在收到pull request后,会决定是否合并到开发分支中。 开发者、爱好者提交的代码应该符合RT-Thread的编程规范,并尽少地影响到其他组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邵亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值