前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个轻量级事件驱动嵌入式系统应用框架Quantum Platform

一个轻量级事件驱动嵌入式系统应用框架Quantum Platform

作者头像
杨源鑫
发布2020-12-29 15:37:49
1.7K0
发布2020-12-29 15:37:49
举报
文章被收录于专栏:嵌入式开发圈嵌入式开发圈

QP(Quantum Platform)是一个轻量级的、开源的、基于状态机的、事件驱动型应用程序框架。这个框架包括四部分:

  • 事件处理器(QEP);
  • 轻量级的事件驱动框架(QF);
  • 任务调度微内核(QV、QK、QXK);
  • 实时跟踪调试器(QS)。

(1)QEP

  • Quantum Event Processor是一个通用的,可移植的,可重用的状态机引擎。
  • QEP允许你直接把UML样式的状态图映射为代码。
  • QEP提供了传统的简单平面状态机和层次式状态机。QEP可以直接操作事队列和事件分发机制。

(2)QF

  • QF是一个通用的,事件驱动的应用框架,是一个实时框架,面向嵌入式系统。
  • QF被设计成和QEP,RTOS协同工作。
  • QF包含了事件队列,活动对象,事件遍历等。

(3)QK

  • QK是一个轻量级可抢占型实时内核
  • QK是一个极小的,按RTC习惯的,执行独立任务的内核。
  • QK必须和QF版本相匹配。

(4)QS

  • 一个强大的调试工具
QEP (Hierarchical Event Processor)

事件处理器,也可以理解为一个状态机引擎,当有事件需要处理时,调用当前状态的状态函数处理这个事件,并处理调用状态函数的返回值,根据返回值进行相应的状态变换(如转移到父状态)。而且状态引擎也处理某状态的进入(ENTER)、退出(EXIT)、初始伪状态(INIT)。

QF (Active-Object Framework)

QF是轻量级的、事件驱动、active objects框架。这个框架的主要任务是保证每个active object的线程安全,运行-到-完成(run-to-completion )的事件处理。它包含了直接的事件传送,发布-订阅(publish-subscribe)的事件转发,事件队列,时间事件(延时传送时间事件)。

QV (Cooperative Kernel)

协作内核(Vanilla内核),它只在time to completion的时候处理event,并在处理所有event后,对active object执行基于priority-based的调度器。它是隐式合作(implicitly-cooperative),因为活跃定时器不需要明确的放弃CPU。代替的是在完成事件处理后,简单的return到QV调度器中。

QK (Preemptive Non-Blocking Kernel)

QK是一个超快速的抢占式,基于优先级的,单stack,实时内核专门为执行active objects而设计的。它总是会处理event queued中的高优先级的active objects,但它将event当作一次性的函数来调用(而不是像传统内核那样的endless循环)。尽管如此,如果新的事件优先级比当前处理的事件优先级高,QK内核依然提供了抢占式的一次性的event处理功能(像抢占式中断处理器允许中断彼此抢占)。这意味着,QK可以使用单stack来保存所有active objects的context。

QXK (Preemptive Blocking Kernel)

QXK是一个简单的抢占,基于优先级的,阻塞,实时内核专门为传统的阻塞代码的主动对象,如商用中间件(TCP / IP协议栈,UDP协议栈,嵌入式文件系统等)或遗留代码混合设计。

QS (Software Tracing System)

QS是软件追踪系统,使开发人员能够以最少的系统资源监控目标,并没有停止或显著放缓代码直播事件驱动QP的应用程序。QS是用于测试,故障排除和优化QP应用的理想工具。QS甚至可以用于支持产品制造验收测试。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式云IOT技术圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • QEP (Hierarchical Event Processor)
  • QF (Active-Object Framework)
  • QV (Cooperative Kernel)
  • QK (Preemptive Non-Blocking Kernel)
  • QXK (Preemptive Blocking Kernel)
  • QS (Software Tracing System)
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档