为了创建一个可用的软件,你不得不和每个修改,每个特征,每个微小的调节做斗争,直到别人满意为止。没有捷径可走。有运气的成分,但你的成功不是幸运,而是由于你的尽力争取。
-- Dave Winer
不知道标题是否合适,或者说符合现实情况,但是从最近的反应情况来看,我们对qp的了解确实是较少,在工作上应用方面就更少了。
国外已经应用的很多了,霍尼韦尔等很多大厂都应用了,国内大牛
anymcu
翻译有中文版,源码核心代码不多。不过我看到他的网站有勘误表已经不能访问了,不知道邮箱有没有机会被翻牌,如果实在有搞不懂的可以试试。
那为什么我国读者并不熟悉呢?我们来了解一下QP框架或者说是量子程序设计到底是什么,有什么作用和特别之处,写的不好勿喷,多多交流。
它是什么?
QP框架诞生于硅谷,是个量子力学博士创立的,非常好的实现了层次式状态机,得到了近二十年来嵌入式领域最大突破的称号。
QP是一种轻量级的实时嵌入式框架
Real-Time Embedded Framework (RTEF)
,提供架构复用和并发编程,可以完成更高概念性完整性的安全代码,并显着提高软件质量,说白了就是用好了就很好用。
而且QP通过分层状态机(UML状态图)指定了活动对象的行为
(Don’t call me; I’ll call you.)
。该框架使用C语言对UML状态机进行手动编码,并且可以通过基于QM模型的免费设计工具自动生成代码。
围绕着实时嵌入式框架(RTEF)这一个独特的平台,如下图所示,可以完成更完整更严格的代码质量控制。
作用是什么?
QP框架的主要目标有以下几点。
提供基于活动对象的可重用事件驱动的体系结构,与基于传统实时操作系统的常规共享状态并发相比,它实际上更加安全,可扩展,并且易于理解,如下。
保持数据隔离并绑定到线程。
通过消息(事件对象)异步在线程之间进行通信。
线程应该花费生命周期来响应传入的事件。
为分层状态机提供一种易于使用的编码技术,以实现活动对象的行为。
通常,这些动作由两个因素决定:
事件的性质
和
当前的上下文
,即涉及系统的过去事件的顺序。
提供事件驱动的计时服务(时间事件)。
提供一些用于运行QP应用程序的内置实时内核,例如协作QV内核,抢先式非阻塞QK内核和抢先式阻塞QXK内核。
QP实时嵌入式框架将面向对象与特定的并发模型结合在一起,有很多优势,如下几点。
尽管它是用ANSI-C编写的,但QP/C基本上是一个面向对象的框架,该框架本身和从该框架派生的应用程序基本上由类组成,并且只有类可以具有状态机,与他们相关联。当然这里也需要了解一下C语言的面向对象编程了。
QP框架占用空间非常小,尤其是在RAM中,与最小的实时操作系统(RTOS)内核相比,QP所需的资源更少,整个QP代码要求少于5KB的代码和数据,这也降低了实现抽象概念的困难程度。
同时,QP还提供了比常规RTOS高得多的抽象级别。使用QP,可以在活动对象,状态机和事件级别上进行工作,而不是RTOS的“裸”线程。
分层状态机
活动对象的行为在QP中通过分层状态机(UML状态图)进行指定。该框架支持使用C/C++对UML状态机进行手动编码,以及通过基于QM的图形化设计(MBD)工具进行全自动代码生成,状态机就像没有道路基础设施的汽车。
QP框架可以在裸机单芯片微控制器上运行,完全替代了传统的RTOS内核获得的所有功能,并且专门设计用于将事件驱动的活动对象与传统的代码混合。
以
STM32F4-Discovery board
为示例,演示的内置内核对比如下:
与ARM-Keil,GNU-ARM和IAR-ARM工具链的合作QV
具有ARM-Keil,GNU-ARM和IAR-ARM工具链的抢占式,运行完成QK
具有ARM-Keil,GNU-ARM和IAR-ARM工具链的双模式(运行至完成/阻止)QXK
QP还可以与许多传统的RTOS和桌面OS,例如Windows和Linux一起使用。这样就能够集成各种通信堆栈
TCP/IP,USB,CAN等
,而且可以阻止任务代码的其他中间件。
本文需要了解一下uml建模的知识,经过15年的持续开发,QP也渐渐的成为了嵌入式软件市场上最成熟,最受欢迎的此类解决方案。
并且广泛用于医疗设备,消费电子产品,有线和无线电信,工业自动化,运输,航空航天,机器人技术等领域。
而且对于复杂的逻辑处理能极大的简化代码,官方指导书中给了几个例子,由浅入深,带领大家设计出完备的状态机,框架有c和cpp多个版本,完全开源,其中c语言版本也是采用面向对象思想设计的。
总之,不论是不是搞嵌入式的,这种思想都值得深入学习。
1.其实,机器人的发展与嵌入式系统密不可分~
2.HarmonyOS到底是不是Android套皮?
3.代码防御性编程的十条技巧~
4.几种基于RTOS的实用工具
5.单片机编程如何查看版本之间代码的不同?
6.从硬件转向软件设计,请牢记这十大技巧!
免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证
明材料确认版权并支付稿酬或者删除内容。
返回搜狐,查看更多
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。