Quantum LeaPs(QP)介绍

原文链接:

  1. Quantum LeaPs(QP)的资料
  2. QP™ 实时嵌入式框架 (RTEF)

书籍:C/C++ 中的实用 UML 状态图,第 2 版


QP官方网站

QP对比RTOS有什么好处?

QP/C的SDK手册  介绍QPC的框架、Getting Started、API和参考例程。

QM的软件手册  QP的UML建模软件,可以自动生成基于QP框架的代码。

QP官方的交流论坛  是获取QP使用帮助最好的方式。


Quantum Leaps logo

Quantum LeaPs(QP)介绍_第1张图片

QP™ 实时嵌入式框架 (RTEF)


QP™(量子平台)是一系列轻量级实时嵌入式框架 ( RTEF ),用于基于活动对象设计模式构建 事件驱动的 嵌入式软件。QP 系列由 QP/C 和 QP/C++ 框架组成,它们受到严格的质量控制、完整的文档,并在灵活的双重许可模式下可用。

MCU 的实时嵌入式框架


QP/C 和 QP/C++ 实时嵌入式框架 (RTEF) 提供轻量级、可重用的软件架构,该架构将事件驱动的并发模型(称为 活动对象 (actor))与 有限状态机相结合 。这种架构本质上支持并自动执行并发编程的最佳实践。这导致应用程序比传统实时操作系统 (RTOS) 的裸线程和无数阻塞机制 更安全 、响应更快且更易于管理。QP 框架还提供了足够 高的抽象级别, 可以有效地将图形建模和代码生成应用于深度嵌入式系统,例如基于 ARM Cortex-M 的微控制器。

QP/C 在线手册
GitHub 上的 QP/C
下载 QP/C/C++™ 作为 QP-Bundle 的一部分
QP/C++ 在线手册
GitHub 上的 QP/C++
Quantum LeaPs(QP)介绍_第2张图片 框图显示了 QP™ 框架的组件及其与硬件和应用程序的关系

QP™ 亮点

由事件驱动的活动对象组成的 QP™ 应用程序比基于传统 RTOS 线程的等效解决方案消耗 更少的内存, 尤其是 RAM。
QP™ RTEF 与基于优先级的抢占式内核相结合,适用于硬实时应用。事实上, 非阻塞 活动对象比传统阻塞 RTOS 线程更适合 RMS/RMA 方法。
经过 15 多年的不断改进,QP™ 框架是嵌入式软件市场上同类产品中最成熟和最受欢迎的产品。

支持现代状态机

活动对象的行为通过现代 有限状态机 (UML 状态图)在 QP/C 和 QP/C++ 中指定。QP 框架支持使用 C (QP/C) 或 C++ (QP/C++) 以及基于模型的设计 (MBD) 手动编码 UML 状态机,并通过 免费的 QM™ 基于模型的设计工具 自动生成代码.

独立(裸机)操作

QP™ RTEF 可以 独立 运行,完全取代传统的 RTOS。这些框架包含一系列内置实时内核,例如协作 QV 内核、抢占式非阻塞 QK 内核和独特的抢占式双模式(阻塞/非阻塞)QXK 内核。为 ARM Cortex-M (M0-M7) 以及其他 CPU提供了独立的 QP 端口和即用型示例。

您不需要使用传统的 RTOS 来通过 QP 实现抢占式多任务处理。内置的抢占式QK 和 QXK 内核支持基于优先级的抢占式多任务处理,与速率单调调度完全兼容, 以实现有保证的硬实时性能。这些抢占式内核与活动对象的从运行到完成的执行语义完美匹配,而且比传统的阻塞式 RTOS 内核更简单、更快、更高效。

QP/C 本地端口
QP/C++ 本地端口

示例评估板

传统 RTOS 支持

Quantum LeaPs(QP)介绍_第3张图片

QP™ RTEF 还可以与许多传统的第三方 RTOS 配合使用。为多个 RTOS(例如 embOS、ThreadX、MicroC/OS、FreeRTOS 等)提供了 QP 端口和即用型示例

您可能考虑使用传统 RTOS 内核来执行事件驱动 QP™ 应用程序的最重要原因是与现有软件的兼容性。例如,许多通信栈(TCP/IP、USB、CAN 等)是为传统的阻塞内核设计的。此外,许多遗留代码需要阻塞机制,例如信号量或时间延迟。传统的 RTOS 允许您将现有软件组件作为与事件驱动 QP™ 活动对象并行的常规“阻塞”线程运行。

QP/C RTOS 端口
QP/C++ RTOS 端口

通用操作系统支持

QP™ RTEF 还可以与通用操作系统一起使用,例如 Linux (POSIX)、Windows 和 macOS。

通用操作系统的 QP™ 端口本身就很有趣。例如,QP 到 POSIX 的端口支持实时扩展,可以与嵌入式 Linux以及 QNX、INTEGRITY、VxWorks 等 RTOS 的 POSIX 子系统配合使用。同样,QP 到 Windows 的端口可以与 Windows IoT 或 Windows Embedded Compact 配合使用。

但是操作系统支持对于在桌面工作站上开发深度嵌入的代码也很有趣,这被称为“双目标”。

Quantum LeaPs(QP)介绍_第4张图片 树莓派零 WiFi(嵌入式 Linux)
Quantum LeaPs(QP)介绍_第5张图片
QP/C 操作系统端口
QP/C++ 操作系统端口

QP/C 和 QP/C++ 特性比较

特征 质检/质控 QP/C++
最新版本(修订历史)
最新发布日期
6.9.3
2021-04-12
6.9.3
2021-04-12
预期目标系统
(代表性硬件)
32 位/16 位 MCU
(ARM Cortex-M)
32 位/16 位 MCU
(ARM Cortex-M)
由免费的QM™ 基于模型的设计工具支持
活动对象的最大数量 64 64
具有任意参数的动态事件
自动事件回收
直接事件发布 (FIFO)
直接事件发布 (LIFO)
发布订阅事件传递
事件延期
系统时钟滴答率数 可配置 (0..15) 可配置 (0..15)
每个活动对象的时间事件数 无限 无限
----------------------------------------------- 状态机 - ----------------------------------------------
分层状态机(QHsm-strategy)
分层状态机(QMsm-strategy)
子机和子机状态
----------------------------------------------- 内置内核 -----------------------------------------------
抢占式非阻塞内核 (QK)
抢占式阻塞双模内核(QXK)
----------------------------------------------- 第三方实时操作系统/操作系统 -----------------------------------------------
可移植到第 3 方 RTOS 内核
POSIX 的可用端口(Linux、QNX、INTEGRITY 等)
Windows 的可用端口
----------------------------------------------- 测试/分析-----------------------------------------------
QP/Spy™ 软件追踪
QUTest™ 单元测试工具
MISRA 合规性 MISRA-C:2004
AUTOSAR-C++ 合规性 AUTOSAR-C++ 14
PC-Lint-Plus 支持包
-----------------------------------------------授权许可 -- ---------------------------------------------
开源许可 (GPL)
闭源(商业)许可
Quantum LeaPs(QP)介绍_第6张图片

传统 QP™ 开发套件 (QDK)

QP 开发套件 (QDK) 是用于各种嵌入式处理器、工具集和电路板的单独 QP 端口和示例。

为什么是“遗产”?

从 QP 5.4.0 版开始,所有官方支持的端口和示例都捆绑在 QP 下载中,而不是作为单独的 QP 开发套件 (QDK) 分发。为早期 QP 版本发布的 QDK 称为“legacy-QDK”,可从 SourceForge 下载。

查看/下载可用的旧版 QDK

建议将“legacy-QDKs”用于新项目。“legacy-QDKs”没有来自 Quantum Leaps 的商业支持,尽管在免费 QP 支持论坛上欢迎关于“legacy-QDKs”的问题

如何找到您想要的 QDK?

所有“遗留 QDK”都分布在根据以下一般约定命名的 ZIP 档案中:

qdkxxx_--_.zip
  • qdkxxx表示 QP 框架类型,而qdkcQDK 代表 QP/C、qdkcppQP/C++ 和qdknQP-nano
  • 表示给定嵌入式 CPU 类型(例如 AVR、M16C、R8C 等)的独立 QP 的 QDK。
  • 表示运行在给定 RTOS 之上的 QP 的 QDK,例如 eCos、VxWorks 等。
  • 表示特定工具集的端口,例如 IAR、GNU、Renesas 等。
  • 表示示例针对指定板卡,例如 SKP3607、YRDKRX62N 等。
  • 表示 QP 框架的兼容版本。

所有 QDK 均已根据 QP 框架的规定进行开发和测试。QDK 也可能适用于较新的 QP 版本,但可能需要进行一些修改。

QDK安装

大多数“遗留 QDK”的安装过程如下:

  1. 下载您喜欢的 QDK 并检查其编号。
  2. 下载并安装(解压)相应的 QP 。例如,如果您的 QDK 文件以 开头qdkcpp_和结尾_4.5.02,则应下载并安装 QP/C++ 4.5.02 版。
  3. 将 QDK 解压缩到临时目录。
  4. 将QDK目录的内容复制到QP安装目录下。例如,如果您的 QDK 解压到 目录qdkcpp_avr-iar_4.5.02,您应该将该目录的内容复制到 QP/C++ 安装文件夹中(通常在 里面C:/qp/qpcpp/)。请注意,您需要同意覆盖现有目录examples/ports/.

QDK 文档

每个“遗留 QDK”在 ZIP 存档的主目录中都包含 PDF 格式的“QDK 手册”。

你可能感兴趣的:(Quantum,LeaPs,quantum)