0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式系统又迎来了生命中的第二个春天

倩倩 来源:lq 作者: CSDN 2019-10-08 16:25 次阅读

最近我国自研的操作系统接连开源,先是MiniGui(Github地址:https://github.com/VincentWei/minigui),可能现在提起MiniGui大家已经比较陌生了。

不过对于笔者-曾经的CSDN嵌入式论坛版主而言,MiniGui是个如雷贯耳的名字,在十几年前MiniGui和WINCE是各个各种开发板的标配,当时论坛上也有各种关于MiniGui移植及开发的帖子。

但是由于当时的嵌入式系统多用来制作手持式PDA,车载导航仪等设备,所以安卓出现后迅速占领了上述市场,MiniGUI等嵌入式操作系统逐渐没落。

但是我们整理互联网发展的脉络可以看到,内容的不断丰富与终端的不断扩展是两条主线,随着网上数据量的持续爆炸性增长,今后新增的流量肯定主要来自于对于万物互联的红利。

而与传统互联网内容+用户的模式不同,物联网则是场景+用户的模式,谁能整合场景谁能笑到最后。所以之后的嵌入式系统又迎来了生命中的第二个春天。

巨头们的布局

腾讯在三天前正式发布了其物联网终端的操作系统TinyOS(Github地址:https://github.com/Tencent/TencentOS-tiny),其系统架构图如下:

目前看其内核部分已经开发完成,并已经完全开源。虽然从其从tinyos内核的代码来看(详见https://blog.csdn.net/BEYONDMA/article/details/101355221),还是为物联终端做了一定优化与裁减的,不过从下面的场景图来看,腾讯其实醉翁之意不在酒,以操作系统为契机入局物联网的相关链条已经规划完整。

而且从比操作系统发布还早几天就挂在淘宝上的开发板来看,更是说明腾讯对于旗下云平台能够整合物联场景的巨大野心。

AliOS Thing3.0发布

云栖大会第三天,阿里不出意外的拿出了AliOS Things 3.0(Github地址https://github.com/alibaba/AliOS-Things/tree/rel_3.0.0),与TencentOS Tiny一样这款OS也是与阿里云平台无缝对接的,而且它的内核还直接支持了自家的AI芯片,提前布局AI+物联网。

由于AliOS Things已经开源两年有余,所以其开发者体验相对较好,他们的IDE是基于VSCODE的,笔者已经下单他们的开发板了,后续亲测OS后再发体验。

可见巨头的逻辑就是要整合物联网时代的场景,他们的OS都是免费的,而且技术支持也强,不过巨头就是要做物联时代的ANDROID,最终一统天下。

老牌嵌入式操作系统的选择

MiniGui做为已经存在了20多年的嵌入式操作系统,其架构图如下:

从底至上,MiniGUI 由如下几个模块组成:

图形抽象层(Graphics Abstraction Layer,GAL):

图形抽象层将来自不同操作系统或设备的图形接口进行抽象,为 MiniGUI 上层提供统一的图形接口。在图形抽象层内,包含有针对 Linux FB 设备、eCos LCD 设备等的软件组成部分。

这些软件组成部分通过调用底层设备的接口来实现具体的图形抽象层操作,如打开设备、设置分辨率及显示模式、关闭设备等。

我们将这些用于适配图形抽象层接口的软件组成部分称为“引擎(engine)”,其概念和操作系统中的设备驱动程序类似。

输入抽象层(Input Abstraction Layer,IAL):

和 GAL 类似,输入抽象层将 MiniGUI 涉及的所有输入设备,如键盘(keyboard)、小键盘(keypad)、鼠标(mouse)、触摸屏(touch screen)等抽象了出来,为上层提供一致的接口。要支持不同的键盘、触摸屏或者鼠标接口,则通过为 IAL 编写不同的输入引擎实现。

MiniGUI 通过 IAL 及其输入引擎,提供对 Linux 控制台(键盘及鼠标)、触摸屏、遥控器、小键盘等输入设备的支持。

图形设备接口(Graphics Device Interfaces,GDI):

该模块基于图形抽象层为上层应用程序提供图形相关的接口,如绘制曲线、输出文本、填充矩形等等。图形设备接口中含包含其他比较独立的子模块,如字体字符集(font and charset)支持、图像(image)支持等。

消息处理模块(Messaging Module):

该模块在输入抽象层基础上,实现了 MiniGUI 的消息处理机制,为上层提供了完备的消息管理接口。

众所周知,几乎所有的GUI 系统本质上都是事件驱动的,系统自身的运行,以及GUI 应用程序的运行,都依赖于消息处理模块。

多窗口处理模块(Windowing Module)和控件(Control 或 Widget):

基于图形设备接口和消息处理模块,MiniGUI 实现了多窗口处理模块。该模块为上层应用程序提供了创建主窗口和控件的基本接口,并负责维护控件类。

控件类是用来实现控件代码重用的重要概念,利用控件类(control class),我们可以创建属于某个控件类的多个控件实例(instance),从而让这些控件实例使用同一个控件类的代码,这样,我们就实现了类似 C++ 那样的类和实例概念,从而可以最大程度上重复利用已有代码,并提高软件的可维护性。

MiniGUI 的控件模块实现了常见的 GUI 控件,如静态框、按钮、编辑框、列表框、下拉框等等。

外观支持(Look and Feel):

这个模块是 MiniGUI V3.0 提供给上层应用程序的接口,可用来定制 MiniGUI 窗口、控件的绘制。

在 MiniGUI V3.0 之前的版本中,对主窗口和控件的定制能力,还没有被抽离出来形成独立的模块,但我们仍然可以通过配置选项让 MiniGUI 的主窗口、控件具有三种显示风格,分别是:类似 PC 的三维风格(PC3D)、平板风格(FLAT)、流行风格(FASHION)。

在 MiniGUI 3.0 中,主窗口和控件的外观可完全由应用程序自行定制,在创建主窗口或者控件时,指定外观渲染器(renderer)的名称,就可以让主窗口或者控件具有各自不同的外观。

可以看到MiniGUI从创立伊始就放弃了对于RTOS内核的编写,直接基于linux等内核来做封装。简单聊两句基于MiniGUI的图形应用开发。

typedefstruct _MSG { HWND hwnd;int message; WPARAM wParam; LPARAM lParam;#ifdef _LITE_VERSIONunsignedint time;#elsestructtimevaltime;#endifPOINT pt;#ifndef _LITE_VERSIONvoid* pAdd;#endif }MSG;typedef MSG* PMSG;

可以看到其对于消息的定义几乎与WINDOWS一致,其建立窗体等操作也几乎与WINDOWS一样。所以MiniGUI的设计有很大程序是为降低嵌入式系统图形界面开发难度而产生的。

国产实时操作系统内核的先驱RTthread

提到咱们国产的loT操作系统RTthread也是一个无论如何也绕不过去的标志,如果RTthread在06年初就发布了第一版,而且经过了这十几年的上亿台设备装机的技术沉淀,RTthread的社区也已经俨然发展成为国内最强的嵌入式社区了,笔者刚刚到他们的论坛上逛了一圈,真的是强手如云,大咖云集。

具体内核相关知识后续会再发文介绍这里也就不再赘述了。而且最新的消息显示MiniGUI开始支持RTthread的内核了,可见传统的嵌入式操作系统厂商的策略是要尽量保持生态的多元化,抱团取暖。

HybridOS的开源计划

最近MiniGUI的飞漫软件又官宣了他们的HybridOS开源计划,而根据目前的材料看HybridOS最大的看点是要用HTML来统一UI的开发,这与之前使用WIN32的设计来统一UI开发的逻辑如出一辙。

我们知道由于物联网终端真的是不一而足,与手机终端完全不同,其不同终端的碎片化需求太多太复杂,比如,有的智能灯泡要蓝牙即可,而智能空调可能就要有Wi-Fi了。

而我们金融行业要做智能合约可能对于终端的算力又有一定的要求,这样碎片化的场景,由于Android硬件设备的要求门槛较高,就不太适合了, 而直接用Linux裁减,这对于人才的要求又太高。

所以与腾讯等巨头整合全场景的目标不同,MiniGUI的背后其是保持生态多样性的逻辑,他的目标是降低开发门槛,避免初创公司必须选择鸿蒙或者TinyOS这种大厂的操作系统。

让场景的提供方可以通过较低成本验证自身的想法,而避免从一开始就走上巨头们早已画好的圆圈。

在他们的官宣当中对于其后续要发布的HybridOS物联网操作系统有如目标:

1. HybridOS 的设备端系统基于 Linux 内核,充分利用 Linux 内核生态,降低各种驱动程序的开发难度以及各种协议栈的支持难度,从而降低开发成本。

2. 和基于 RTOS(实时操作系统)技术发展而来的物联网操作系统(如RT-ThreadLiteOS)相比,HybridOS 更倾向于运行在具有更高硬件配置的智能物联网设备上,而不是小型的单功能物联网设备上,后者的硬件配置往往有限。

3. HybridOS 不仅仅运行在智能物联网设备中,它同时还提供了针对云端以及客户端的标准框架和编程接口,为开发者提供了从设备到云再到客户端的完整软件栈和协议栈。在未来,HybridOS 还计划统一客户端和设备端上的 App 开发接口。

4. HybridOS 将基于区块链技术为物与物之间的通讯提供一个全新的实现方法。在 HybridOS定义的实现方法下,所有的数据都带有不可篡改的数字签名以及时间戳,而所有数据的传输和存储都可加密。这将从根本上提高物联网的安全性。

后记

我们可以看到巨头的逻辑是要让其它公司免费使用其OS上车,然后接入其loT云平台成者直接收购无缝整合,败者自生自灭,从而将自己立于不败之地,而传统的嵌入式公司逻辑则是降低OS的使用开发门槛,让物联网生态链上的企业能有自主选择。也让我们拭目以待,物联网时代能否产生新的巨头。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3593

    浏览量

    129502
  • 物联网
    +关注

    关注

    2909

    文章

    44671

    浏览量

    373706
  • 代码
    +关注

    关注

    30

    文章

    4790

    浏览量

    68654
收藏 人收藏

    评论

    相关推荐

    【「嵌入式系统设计与实现」阅读体验】+ 学习一STM32的案例

    嵌入式系统设计与实现——第六届全国大学生嵌入式芯片与系统设计竞赛芯片应用赛道优秀作品剖析》一书的基本情况。今天来学习一具体的案例。 这本
    发表于 12-06 22:22

    如何加装第二个路由器

    加装第二个路由器可以扩展你的无线网络覆盖范围,提高网络速度,或者为特定区域提供更稳定的连接。以下是加装第二个路由器的步骤,以及一些注意事项: 1. 选择合适的路由器 在选择第二个路由器时,考虑以下
    的头像 发表于 10-18 09:19 576次阅读

    如何桥接第二个无线路由器

    在现代家庭和办公室环境中,无线网络已成为连接设备和访问互联网的重要方式。然而,随着空间的扩大和无线设备的增多,单个无线路由器可能无法提供足够的覆盖范围。为了解决这个问题,许多用户选择通过桥接第二个
    的头像 发表于 10-18 09:16 568次阅读

    嵌入式系统的原理和应用

    嵌入式系统是一种专用的计算机系统,其设计初衷是执行特定任务,而非作为通用计算机使用。这类系统通常作为更大系统的一部分,起到控制、监控或辅助的
    的头像 发表于 10-05 17:03 927次阅读

    RTOS版本的sdk,为什么无法读取第二个512Mflash的内容?

    我使用最新的RTOS版本的sdk,为什么无法读取第二个512Mflash的内容?我是按照1M的flash编译的和烧录的。
    发表于 07-22 06:47

    2024年第二季度PC出货量实现连续第二个季度增长

    7月19日,知名市场调研机构Counterpoint Research揭晓的最新研究报告揭示了一振奋人心的趋势:2024年第二季度,全球个人电脑(PC)出货量实现了连续第二个季度的同比增长,增幅达
    的头像 发表于 07-19 16:15 679次阅读

    嵌入式热门领域有哪些?

    通过物联网连接各种物理设备和传感器,促使它们之间实现信息的交换和数据的共享。从智能家居到智能城市,物联网的应用不断扩展,为嵌入式系统工程师带来了广泛的就业机会和发展前景。 自动驾驶 自动驾驶技术作为
    发表于 07-16 09:23

    第二届embedded world China上海国际嵌入式展开幕,边缘AI成行业竞逐热门赛道

    电子发烧友网报道(文/吴子鹏)6月12日,第二届embedded world China上海国际嵌入式展(以下简称:embedded world China)在上海世博展览馆3号馆正式开幕。作为全球
    的头像 发表于 06-12 21:28 1560次阅读
    <b class='flag-5'>第二</b>届embedded world China上海国际<b class='flag-5'>嵌入式</b>展开幕,边缘AI成行业竞逐热门赛道

    如图,这个电路给超级电容充电,该怎么理解呢?为啥要用两负载开关?第二个是啥作用?还有旁边的电阻?

    图上P5V_SYS_EXT通过负载开关U2给超级电容充电,U2是避免反向电流出现,第二个负载开关U3的作用是啥?我看U3的IN和OUT是连在一块的,都是P5V_SYS。两超级电容串联,旁边那两100K和49.9R的电阻啥作
    发表于 05-11 09:40

    入门嵌入式系统这些知识你知道吗?

    嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一控制程序存储在R
    发表于 05-03 09:54 582次阅读

    第二代Versal Prime系列适合嵌入式系统设计的五大原因

    嵌入式系统设计带来了独特的挑战,包括确保在当前和未来的固定空间和功耗限制内满足性能需求
    的头像 发表于 04-24 10:08 454次阅读

    AMD推出第二代Versal器件,为AI驱动型嵌入式系统提供端到端加速

    2024 年 4 月 9 日,德国纽伦堡(国际嵌入式展)——AMD(超威,纳斯达克股票代码:AMD )今日宣布扩展 AMD Versal 自适应片上系统( SoC )产品组合,推出全新第二
    的头像 发表于 04-10 10:25 1122次阅读

    嵌入式系统发展前景?

    设备、健康监测等领域有着广泛的应用前景。随着人们对健康的重视程度不断提高,嵌入式系统将更为深入地应用于医疗设备和健康护理中,实现个人健康管理的智能化和实时化。 汽车电子和自动驾驶是嵌入式系统
    发表于 02-22 14:09

    嵌入式系统的应用实例

    嵌入式系统的三基本要素是嵌入性、专用性与计算机系统
    的头像 发表于 01-22 09:57 1083次阅读

    RTC第二个功能和应用程序

    一般RTC模块设备管理时间日历、计时器等。从年到。一些爱普生RTC模块可以通过使用来自32768 Hz的分割频率来管理次第二功能。本文件描述了RTC模块的三具体的应用程序。(表1)表1中的功能
    发表于 01-03 15:45 0次下载