RT-Thread 3.0发布,来听听创始人谈设计理念

科技老顽童 2017-09-14 00:00


下面文章内容,源自于RT-thread创始人:熊谱翔。

1

源自“简单、唯美”的设计理念


诞生于2006年的RT-Thread,最初源于对当时小型RTOS现状的诸多不满。

最令人印象深刻的是彼时不同RTOS混乱的命名风格——如果那个时候有一份类似Linux/Unix风格的小型RTOS,也许就没有现在的RT-Thread了。

细想起来,正是这一想法成为了RT-Thread创作的一个重要契机。

 

长期浸润于开源社区,我早已经习惯了Linux/Unix的风格:编程时几乎都以小写命名、以下划线来连接不同的单词——直到现在,我依然认为只有这样的代码阅读起来才谈得上舒服——相信很多人会有类似的感受吧。


真正开始动手后,RT-Thread试图遵循更多Linux/Unix优雅、明快的风格——从划分清模块开始,一点一点理清模块、梳理命名——力图保持“程序的简洁”和“脉络的清晰”:小到变量、函数,大到源文件、模块无一不遵守统一的风格。

 

只做一件事情,并把它做好,而不逾越雷池一步——Do one thing and do it well. 这也是人们常说的“简单、唯美”。这逐渐形成了RT-Thread的设计理念,RT-Thread要做一个精致而优雅的操作系统。


2

从“0.3”到 “2.1.0”


  2010.04.17  0.3.0版本


因为开源理念早就扎根于心,期待同类开发者们更多的分享、交流,所以很早的时候RT-Thread就以社区化、开放方式推进


下面的框图就是当时放于Goolge Code上发布的第一个版本:RT-Thread 0.3.0。后续由于Google Code关闭,转而放到github,持续到现在(国内是放在OSChina的码云上)。


图一:RT-Thread 0.3.0结构框图

 

0.3.0版是基础设施的搭建阶段:内核、文件系统、网络协议栈和命令行环境的雏形在这个时候已初具端倪。

 

  2011.12.31  1.0.0 ~ 1.2.0版本


紧接着0.3.0版的发布,0.4.0版的开发几乎立即就开始了。

当时我们基本保持着一个稳定版本,新特性完全冻结,以bug修正为主;另一个版本,以添加新功能,向着下一个方向推进的方式进行。


通过这样的方式可以快速推进、迭代,同时也不失稳定性及后向的兼容性。

在0.4.0版本经过数个版本迭代,成为正式版之际,我们宣布发布RT-Thread 1.0.0正式版本。


1.0.0正式版本也意味着:RT-Thread不光具备一个嵌入式实时操作系统所必需的全部基本功能,它的稳定性也达到了商用级别。

 

随着RT-Thread支持的芯片和平台越来越多,如何有效组织工程变成了一个非常棘手的问题。大多数做法是使用Makefile,但对于不同的桌面开发平台,Makefile表现得并不那么友好(例如Windows平台),同时Makefile变化多样、晦涩难懂的语义也导致掌握它有一定门槛。


这个时候使用Python语言实现的scons工具进入到我们的视野中来。服务开发者角度出发,最终基于scons搭建的RT-Thread构建系统不仅提供了Windows、Linux和MAC下统一的用户体验,同时也针对不同集成开发环境(IDE)按照配置情况,生成对应的工程文件,这样开发者可以选择最习惯,最顺手的集成开发环境。

 

应该说RT-Thread 1.x系列已经是一个相对成熟的嵌入式实时操作系统。在一个系统平台上开发代码,另外一个必须要考虑的是软件代码的可维护性。简单、松耦合的设计是软件代码可维护性的一方面,而另一方面是跨平台的软件代码可维护性。如果为了实现一样或相类似的功能,针对Linux、RTOS分别要维护两个版本,这个工作量几乎要翻倍了。

 

在最初设计时,针对文件系统、网络协议栈,RT-Thread都希望用最标准、开放的方式提供API服务接口,甚至是RT-Thread也支持了完整的PThreads接口,使得POSIX 线程和RT-Thread 线程得以无缝结合,用户不再需要为他的代码额外维护另外一个版本。

 

抽象外设驱动,形成简单、独立模块。一份BSP移植主要的工作是两个方面,芯片架构移植和外设支持。在RT-Thread逐步的演进过程中,发现当更换芯片时,大部分外设驱动有很大一部分代码是一样的。例如针对串口,基本上都会有一份软件上的环形缓冲区(RingBuffer)。这个时候把这些公共的部分提取出来,抽象封装形成一份面向设备的驱动,而驱动底层则只需要简单地实现芯片具体相关的操作接口(ops)就可以了。Device Drivers组件就是这样逐渐演变出来的,到目前已经包括串口,网口,IIC,SPI,RTC,WDT,Audio,USB等一系列的抽象设备模型,为方便支持不同的芯片、板卡节省下大量的时间。

 

  2015.02.02  2.0.0 ~ 2.1.0版本


在嵌入式市场中,实时Linux是很早的一支。但因为Linux天生架构的问题,要想获得高实时性并没那么容易,或者说Linux本身这套架构并不适合高实时性应用。另外市场上多核处理器(SMP对称处理器或AMP异构处理器)也逐渐应用到嵌入式系统领域。

 

在这个背景下,RT-Thread也在探索如何让RT-Thread成为Linux的有益补充。基于RT-Thread自身简单、独立的设计考虑,RT-Thread实现了支持双操作系统协同工作的虚拟总线组件(VBUS),能够让双方进行相互的数据通信,而并不会把一些实时性问题和Linux纠缠在一起。

 

追求更好的设计,重构,甚至推翻重新设计。随着智能机的普及,用户的操作体验已然不是键盘/鼠标式的PC风格所能满足,更多的是以轻触,滑动,拖拽,缩放等为代表的触控方式。与之对应,嵌入式GUI技术出现了翻天覆地的变化,而RT-Thread原有的以C语言模拟面向对象技术进行开发的rtgui在代码简洁性、可读性和实用性上也难以满足需求——简单来说,由触控GUI带来的面向对象需求,虽然使用C语言能够实现,但太过繁琐、复杂,和我们一直以来追求的简洁之美背道而驰。思考再三,我们决定依照现代化GUI风格重写GUI组件,以C++为基础,支持多点触摸,提供类似signal/slot信号槽的使用方式,包括各种动画特效等……这一支持界面动画效果的全新GUI,我们称之为柿饼(Persimmon)。


图二:Persimmon结构框图

 

   “简单,唯美”,搭建高可伸缩性系统


从0.3.0到2.1.0,都是建立在“简单、唯美”的设计理念基础之上。再配合scons构建工具,从而让RT-Thread成为一个高可伸缩性的系统:最小可以到2.5KB ROM,1KB RAM的nano系统;也可无缝延伸到功能丰富的,针对ARM9、ARM11、MIPS32等处理器,具备现代GUI风格,或多媒体功能的全功能版本。


图三:从小型系统到全功能系


3

IoT,RT-Thread 3.0


回顾以往的版本,设计一套类似Linux/Unix优雅风格的轻型、可裁剪系统一直是RT-Thread的目标。能够以开源、自由方式在嵌入式系统领域,或者说在Linux和RT-Thread系统之间自由穿梭,自由翱翔……这种感觉非常美妙。

 

随着万物互联概念的普及,物联网从最初的概念兴起,逐步走到今天的大规模实现和部署阶段,原有的嵌入式系统不再是孤立的系统,将形成一个有机的、联动的整体。


这个大背景下, RT-Thread依然沿着自己的理念向着万物互联的IoT大步迈进,我们在RT-Thread的演进过程中不断融合物联网终端系统的新特征和新需求,终于迎来了第一个全新物联网版本的推出, RT-Thread 3.0!


针对物联网终端的高度碎片化和低资源占用要求,我们引入专门的配置工具,实现系统的高度可裁剪可定制;基于物联网的多样化通讯和连接方式,我们优化并支持丰富的网络协议和无线连接如WiFi、NB-IoT等。


诸如此类,众多优秀新功能的加入使得3.0版本成为物联网芯片的理想选择!




报名请识别上图二维码,参与RT-Thread 3.0的发布会,有惊喜等着您



科技老顽童 帮助电子工程师混职场.
评论
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 101浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 79浏览
  • 百佳泰特为您整理2025年1月各大Logo的最新规格信息,本月有更新信息的logo有HDMI、Wi-Fi、Bluetooth、DisplayHDR、ClearMR、Intel EVO。HDMI®▶ 2025年1月6日,HDMI Forum, Inc. 宣布即将发布HDMI规范2.2版本。新规范将支持更高的分辨率和刷新率,并提供更多高质量选项。更快的96Gbps 带宽可满足数据密集型沉浸式和虚拟应用对传输的要求,如 AR/VR/MR、空间现实和光场显示,以及各种商业应用,如大型数字标牌、医疗成像和
    百佳泰测试实验室 2025-01-16 15:41 191浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 93浏览
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 211浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 73浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 132浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 140浏览
  • 随着消费者对汽车驾乘体验的要求不断攀升,汽车照明系统作为确保道路安全、提升驾驶体验以及实现车辆与环境交互的重要组成,日益受到业界的高度重视。近日,2024 DVN(上海)国际汽车照明研讨会圆满落幕。作为照明与传感创新的全球领导者,艾迈斯欧司朗受邀参与主题演讲,并现场展示了其多项前沿技术。本届研讨会汇聚来自全球各地400余名汽车、照明、光源及Tier 2供应商的专业人士及专家共聚一堂。在研讨会第一环节中,艾迈斯欧司朗系统解决方案工程副总裁 Joachim Reill以深厚的专业素养,主持该环节多位
    艾迈斯欧司朗 2025-01-16 20:51 168浏览
  • 在物联网(IoT)短距无线通信生态系统中,低功耗蓝牙(BLE)数据透传是一种无需任何网络或基础设施即可完成双向通信的技术。其主要通过简单操作串口的方式进行无线数据传输,最高能满足2Mbps的数据传输速率,可轻松实现设备之间的快速数据同步和实时交互,例如传输传感器数据、低采样率音频/图像与控制指令等。低功耗蓝牙(BLE)数据透传解决方案组网图具体而言,BLE透传技术是一种采用蓝牙通信协议在设备之间实现数据透明传输的技术,设备在通信时会互相验证身份和安全密钥,具有较高的安全性。在不对MCU传输数据进
    华普微HOPERF 2025-01-21 14:20 71浏览
  • 电竞鼠标应用环境与客户需求电竞行业近年来发展迅速,「鼠标延迟」已成为决定游戏体验与比赛结果的关键因素。从技术角度来看,传统鼠标的延迟大约为20毫秒,入门级电竞鼠标通常为5毫秒,而高阶电竞鼠标的延迟可降低至仅2毫秒。这些差异看似微小,但在竞技激烈的游戏中,尤其在对反应和速度要求极高的场景中,每一毫秒的优化都可能带来致胜的优势。电竞比赛的普及促使玩家更加渴望降低鼠标延迟以提升竞技表现。他们希望通过精确的测试,了解不同操作系统与设定对延迟的具体影响,并寻求最佳配置方案来获得竞技优势。这样的需求推动市场
    百佳泰测试实验室 2025-01-16 15:45 328浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 46浏览
  •  光伏及击穿,都可视之为 复合的逆过程,但是,复合、光伏与击穿,不单是进程的方向相反,偏置状态也不一样,复合的工况,是正偏,光伏是零偏,击穿与漂移则是反偏,光伏的能源是外来的,而击穿消耗的是结区自身和电源的能量,漂移的载流子是 客席载流子,须借外延层才能引入,客席载流子 不受反偏PN结的空乏区阻碍,能漂不能漂,只取决于反偏PN结是否处于外延层的「射程」范围,而穿通的成因,则是因耗尽层的过度扩张,致使跟 端子、外延层或其他空乏区 碰触,当耗尽层融通,耐压 (反向阻断能力) 即告彻底丧失,
    MrCU204 2025-01-17 11:30 164浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 99浏览
  • 80,000人到访的国际大展上,艾迈斯欧司朗有哪些亮点?感未来,光无限。近日,在慕尼黑electronica 2024现场,ams OSRAM通过多款创新DEMO展示,以及数场前瞻洞察分享,全面展示自身融合传感器、发射器及集成电路技术,精准捕捉并呈现环境信息的卓越能力。同时,ams OSRAM通过展会期间与客户、用户等行业人士,以及媒体朋友的深度交流,向业界传达其以光电技术为笔、以创新为墨,书写智能未来的深度思考。electronica 2024electronica 2024构建了一个高度国际
    艾迈斯欧司朗 2025-01-16 20:45 293浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦