分享一个面向单片机的事件调度器

strongerHuang 2024-09-21 21:35

关注+星标公众,不错过精彩内容

作者 | 刘东晨

来源 | Gitee

今天分享一个面向单片机的事件调度器,地址:

https://gitee.com/event-os/eventos

一、EventOS是什么?

EventOS,是一个面向单片机、事件驱动的嵌入式开发平台。它主要有两大技术特色:一是事件驱动,二是超轻量。

EventOS以及其母项目EventOS,目标是开发一个企业级的嵌入式开发平台,以事件总线为核心,打造一个统一的嵌入式技术生态,

为广大企业用户和嵌入式开发者们,提供搞可靠性的、高性能的、现代且高开发效率的嵌入式开发环境。

EventOS的主要特性列举如下:

(1)事件总线为核心组件,灵活易用,是进行线程(状态机)间同步或者通信的主要手段,也是对EventOS分布式特性和跨平台开发进行支持的唯一手段。事件支持广播发送,或者发布-订阅机制两种方式(二选一)。

(2)全局事件队列,摒弃每个线程(状态机)拥有自己的事件队列的方式,只有一个全局事件队列,极限压缩对RAM的占用。

(3)协作式内核,优点是不会产生资源竞争,极度可靠。

(4)极度轻量,便于嵌入其他系统,除事件总线外的所有特性(层次状态机、平面状态机、发布-订阅机制、事件携带数据、事件桥等)均可裁剪,将资源占用降至极限,可低至ROM 1.2KB,RAM 172Byte。可以作为子系统,“悄悄”嵌入到其他软件系统中去。

(5)功能强大的软定时器,以时间事件的形式,对软定时器功能,进行优雅且功能强大的实现。

(6)API的设计,更加简明,更加符合本土嵌入式工程师的习惯。移植方便,只需实现少数几个接口函数即可。

(7)未来会使用Event Bridge(事件桥)机制与EventOS打通事件总线,以便对EventOS的分布式特性进行支持。

(8)重点关注三种应用场景:中小资源单片机,作为模块向其他软件系统的嵌入和可靠性要求较高的嵌入式场景。

EventOS的前身,曾经让我在过去的工作中受益匪浅,让我非常高效的写出了很多可靠的程序,能力和回报都有了质的提升。

现在,我将以前的技术成果整理重构,在各方面都向着规范的开源项目靠拢,包括源码、注释、文档、单元测试和例程等等。

未来,EventOS这个项目我会一直完善下去。我的目标是,将EventOS项目在2022年底前做成Gitee推荐项目,2024年年底前将EventOS项目,做成Gitee的GVP项目。造福更多的嵌入式工程师。


二、文档与博客

EventOS的移植和入门,在documentation文件夹里,可以参考以下几个文档:
(1)快速入门文档
https://gitee.com/event-os/eventos/blob/master/documentation/UM-02-001-QuickStart.md

(2)裸机移植文档
https://gitee.com/event-os/eventos/blob/master/documentation/UM-02-002-PortMetal.md

(3)开发环境搭建
https://gitee.com/event-os/eventos/blob/master/documentation/UM-02-003-DevEnv.md

(4)如何理解事件
https://gitee.com/event-os/eventos/blob/master/blog/%E5%A6%82%E4%BD%95%E7%90%86%E8%A7%A3%E4%BA%8B%E4%BB%B6.md

三、为什么叫做EventOS?


EventOS真的非常轻量。全功能的EventOS目前经MDK编译后,框架本身占用RAM 200Byte,ROM约3.5KB(优化等级为-O3)或4.5KB(优化等级为-O0)。

裁剪后,最小功能的EventOS,目前经MDK编译后,框架本身占用RAM 172Byte,ROM约1.2KB(优化等级为-O3)或1.5KB(优化等级为-O0)。

之所以叫EventOS,一是因为它的技术特色与核心思想,就是事件驱动;二是因为它是另外一个开源项目EventOS(准备中)的简化实现,

EventOS是一个事件驱动的、分布式的、可跨平台开发的嵌入式RTOS,面向32位单片机和更高处理器的嵌入式开发平台。

四、EventOS主张的编程思想


事件驱动与事件总线


事件驱动和事件总线,是EventOS的核心,也是EventOS的核心。事件机制,与RTOS中事件概念完全不同,它更像是windows编程中的消息。

事件,可以认为是主题 + 不定长数据,通过事件,可以极大解耦模块间的耦合,增强软件的可测试性,还可以进行跨平台开发和分布式扩展。


防御式编程


EventOS使用了大量的断言,对系统的运行过程和用户对EventOS的使用进行大量的检查。

我们强烈建议,用户要对断言接口函数进行精心的设计和实现,在实际的产品代码中,依然打开断言。这样,软件将以非常快的速度,收敛于稳定状态。

跨平台开发


EventOS提倡跨平台开发。所谓跨平台开发,就是在Windows和Linux等便捷友好的开发环境里,完成绝大部分的开发工作,包括编程、调试、运行和单元测试等工作,然后在目标平台上进行最后的移植、调试和适配工作。


跨平台的优点有很多,比如开发效率非常高、工程师进入到更多的编程领域和程序稳定可靠等。EventOS主要在32位MinGW平台和Linux平台上开发。


开发环境的搭建,见文档开发环境搭建。当然,也完全可以用MDK在单片机上直接开发,效率稍低而已。

消除耦合


无论是广播式的事件发送机制,还是发布-订阅式的事件发送机制,实际上,都是为了消除软件模块间的耦合。

五、EventOS项目的维护原则


但行好事,不问前程


我完全没有考虑过EventOS将来能够如何,而且最近EventOS的发展有点超出我预计,我有点受宠若惊。

更多的人了解EventOS是一件好事,敦促这我把EventOS项目尽快做好,做完善,做成一个工业级的软件产品,为广大的嵌入式工作者创造便利。

希望EventOS最终被众多工程师和企业认可,并在成千上万的嵌入式产品中广泛应用起来,那就不枉我这些年深挖技术的努力。

源码文档并进


我深知完善丰富的文档,对一个开源项目的重要意义。因此,我坚持每一个特性的升级,每一个BUG的修复,都跟随着相应的文档。

让EventOS和EventOS项目的文档专业化、体系化,包含用户手册、版本特性、原理说明、博客、例程等等。

单元测试优先


嵌入式的开源项目,用户最关心的,是软件的可靠性。单元测试,是保证软件健壮与可靠的重要手段。对于EventOS这种系统级、框架级的软件,稳定性与可靠性更加重要。

从EventOS诞生之日起,它就是面向单元测试的。详尽而严谨的单元测试,保证了EventOS将绝大多数的BUG,消除在了开发阶段。EventOS的每一次重构、升级与发布,都是经过了严谨的单元测试的。

用户至上,需求至上


软件如何发展,代码向哪个方向前进,EventOS完全听从用户们的声音,完全从需求出发。我们从各个渠道,微信、QQ、论坛等获取的意见建议,都将体现到EventOS的开发中去。

六、代码结构


核心代码


  • eventos/eventos.c EventOS状态机框架的实现
  • eventos/eventos.h 头文件
  • eventos/eventos_config.h 对EventOS进行配置与裁剪

第三方代码库


  • RTT Segger JLink所提供的日志库,依赖于JLink硬件。
  • unity 单元测试框架


例程代码


  • freertos 对FreeRTOS的适配例程(未完成)。

  • posix 对符合POSIX标准的操作系统(如Linux、VxWork、MinGW等)的适配例程。

  • stm32f030 对ARM Cortex-M0芯片的裸机运行(无RTOS)的例程。

  • stm32f103 对ARM Cortex-M3芯片的裸机运行(无RTOS)的例程。

  • test 对源码进行的单元测试例程。

  • digital_watch 电子表例程,状态机的典型应用。


声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

------------ END ------------



●专栏《嵌入式工具

●专栏《嵌入式开发》

●专栏《Keil教程》

●嵌入式专栏精选教程


关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。


点击“阅读原文”查看更多分享。

strongerHuang 作者黄工,高级嵌入式软件工程师,分享嵌入式软硬件、物联网、单片机、开发工具、电子等内容。
评论 (0)
  • 在制造业或任何高度依赖产品质量的行业里,QA(质量保证)经理和QC(质量控制)经理,几乎是最容易被外界混淆的一对角色。两者的分工虽清晰,但职责和目标往往高度交叉。因此,当我们谈到“谁更有可能升任质量总监”时,这并不是一个简单的职位比较问题,而更像是对两种思维方式、职业路径和管理视角的深度考察。QC经理,问题终结者QC经理的世界,是充满数据、样本和判定标准的世界。他们是产品出厂前的最后一道防线,手里握着的是批次报告、不合格品记录、纠正措施流程……QC经理更像是一位“问题终结者”,目标是把不合格扼杀
    优思学院 2025-04-14 12:09 56浏览
  •  亥姆霍兹线圈的制造材料选择需兼顾导电性、绝缘性、机械强度及磁场性能,具体分类如下:一、‌导线材料1、‌高纯度铜线:‌作为线圈绕制的核心材料,铜因其you异的导电性(电阻率低)和热稳定性成为shou选。漆包铜线通过表面绝缘漆层实现匝间绝缘,避免短路‌。2、‌其他导电材料‌ 铝线等材料可用于特定场景(如轻量化需求),但导电性和抗氧化性较铜略逊二、‌磁源材料‌1、‌永磁体‌如钕铁硼(NdFeB)或铁氧体,适用于无需外部电源的静态磁场生成,但磁场强度有限。2、‌电磁铁‌通过电流控制磁场强度,
    锦正茂科技 2025-04-14 10:22 32浏览
  • 亥姆霍兹线圈的应用领域‌物理学研究‌:在原子物理中,用于研究塞曼效应;在磁学研究中,用于测试磁性材料的磁滞回线等特性;还可用于研究电子荷质比等实验‌。‌工程与技术领域‌:用于电子设备校准和测试,提供标准磁场环境;在大型加速器中用于磁场校准;用于电磁干扰模拟实验,测试电子设备在不同磁场干扰下的性能‌。‌生物医学领域‌:研究生物磁场效应,如探索磁场对生物细胞的影响;在生物医学工程基础研究中,提供可控磁场环境‌。‌其他应用‌:作为磁场发生装置产生标准磁场;用于地球磁场的抵消与补偿、地磁环境模拟;还可用
    锦正茂科技 2025-04-14 10:41 51浏览
  • 在当今汽车电子化和智能化快速发展的时代,车规级电子元器件的质量直接关系到汽车安全性能。三星作为全球领先的电子元器件制造商,其车规电容备受青睐。然而,选择一个靠谱的三星车规电容代理商至关重要。本文以行业领军企业北京贞光科技有限公司为例,深入剖析如何选择优质代理商。选择靠谱代理商的关键标准1. 授权资质与行业地位选择三星车规电容代理商首先要验证其授权资质及行业地位。北京贞光科技作为中国电子元器件行业的领军者,长期走在行业前沿,拥有完备的授权资质。公司专注于市场分销和整体布局,在电子元器件领域建立了卓
    贞光科技 2025-04-14 16:18 94浏览
  • 你知道精益管理中的“看板”真正的意思吗?在很多人眼中,它不过是车间墙上的一块卡片、一张单子,甚至只是个用来控制物料的工具。但如果你读过大野耐一的《丰田生产方式》,你就会发现,看板的意义远不止于此。它其实是丰田精益思想的核心之一,是让工厂动起来的“神经系统”。这篇文章,我们就带你一起从这本书出发,重新认识“看板”的深层含义。一、使“看板”和台车结合使用  所谓“看板”就是指纸卡片。“看板”的重要作用之一,就是连接生产现场上道工序和下道工序的信息工具。  “看板”是“准时化”生产的重要手段,它总是要
    优思学院 2025-04-14 15:02 81浏览
  • 软瓦格化 RISC-V 处理器集群可加速设计并降低风险作者:John Min John Min是Arteris的客户成功副总裁。他拥有丰富的架构专业知识,能够成功管理可定制和标准处理器在功耗、尺寸和性能方面的设计权衡。他的背景包括利用 ARC、MIPS、x86 和定制媒体处理器来设计 CPU SoC,尤其擅长基于微处理器的 SoC。RISC-V 指令集架构 (ISA) 以其强大的功能、灵活性、低采用成本和开源基础而闻名,正在经历各个细分市场的快速增长。这种多功能 ISA 支持汽车、航空航天、国防
    ArterisIP 2025-04-14 10:52 66浏览
  • 一、磁场发生设备‌电磁铁‌:由铁芯和线圈组成,通过调节电流大小可产生3T以下的磁场,广泛应用于工业及实验室场景(如电磁起重机)。‌亥姆霍兹线圈‌:由一对平行共轴线圈组成,可在线圈间产生均匀磁场(几高斯至几百高斯),适用于物理实验中的磁场效应研究。‌螺线管‌:通过螺旋线圈产生长圆柱形均匀磁场,电流与磁场呈线性关系,常用于磁性材料研究及电子束聚焦。‌超导磁体‌:采用超导材料线圈,在低温下可产生3-20T的强磁场,用于核磁共振研究等高精度科研领域。‌多极电磁铁‌:支持四极、六极、八极等多极磁场,适用于
    锦正茂科技 2025-04-14 13:29 53浏览
  • 时源芯微 专业EMC解决方案提供商  为EMC创造可能(适用于高频时钟电路,提升EMC性能与信号稳定性)一、设计目标抑制电源噪声:阻断高频干扰(如DC-DC开关噪声)传入晶振电源。降低时钟抖动:确保晶振输出信号纯净,减少相位噪声。通过EMC测试:减少晶振谐波辐射(如30MHz~1GHz频段)。二、滤波电路架构典型拓扑:电源输入 → 磁珠(FB) → 大电容(C1) + 高频电容(C2) → 晶振VDD1. 磁珠(Ferrite Bead)选型阻抗特性:在目标频段(如100MHz~1GH
    时源芯微 2025-04-14 14:53 58浏览
  •   高空 SAR 目标智能成像系统软件:多领域应用的前沿利器   高空 SAR(合成孔径雷达)目标智能成像系统软件,专门针对卫星、无人机等高空平台搭载的 SAR传感器数据,融合人工智能与图像处理技术,打造出的高效目标检测、识别及成像系统。此软件借助智能算法,显著提升 SAR图像分辨率、目标特征提取能力以及实时处理效率,为军事侦察、灾害监测、资源勘探等领域,提供关键技术支撑。   应用案例系统软件供应可以来这里,这个首肌开始是幺伍扒,中间是幺幺叁叁,最后一个是泗柒泗泗,按照数字顺序组合
    华盛恒辉l58ll334744 2025-04-14 16:09 96浏览
  •   电磁干扰测试系统:电子设备电磁兼容性保障利器   北京华盛恒辉电磁干扰测试系统作为评估电子设备在电磁环境中电磁兼容性(EMC)的关键工具,主要用于检测与分析设备在电磁干扰环境下的性能表现,确保其符合相关标准,能够在实际应用中稳定运行。   应用案例   目前,已有多个电磁干扰测试系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁干扰测试系统。这些成功案例为电磁干扰测试系统的推广和应用提供了有力支持。   系统组成   电磁干扰测试系统一般由以下核心部分构成:  
    华盛恒辉l58ll334744 2025-04-14 10:40 37浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦