关注、星标公众号,直达精彩内容
来源:技术让梦想更伟大
作者:李肖遥
真正有所发现的旅程不是指找到一片新大陆,而是拥有一双新的眼睛。
大牛Mira Samek
就有这么一双新的眼睛。《嵌入式系统的微模块化程序设计-实用状态图C/C++实现》是他的结晶,是一种使用建模反应式系统而不使用重量级的工具。这本书的英文原版在美国被评为十年来嵌入式软件最有价值的书籍
。
他将UML状态机和事件驱动模式结合到一起做了一个编程框架(QP framework)
,把状态机和事件驱动两个合到一块,用面向对象的设计方法,用C语言实现一种新的范型。
目录
嵌入式系统的微模块化程序设计:实用状态图C/C++实现的目录如下
内容简介
本书分为2部分加上一些附录,还包括了量子框架的全部源代码以及一个RTOS32的评估板——X86处理器的32位实时操作系统。
1. 状态图
在第1部分,主要是量子编程、状态机状态图以及实现、实现行为继承、状态模式和继承状态模型等相关知识。不但概念上有清晰而明确的叙述,读者也可以通过给出的代码进行实际编译来学习量子编程。
这里重点是可以通过实操学到状态嵌套是如何导致行为继承的以及如何通过按差异编程而实现重用,相信这从理论到实践可以帮助我们理解状态图。
2. 量子框架
在第2部分完整地叙述了量子框架概念和设计以及实现,最后通过应用实例说明如何在应用中使用它,并移植到所选用的RTOS。
小结
总的来说,这本书适于嵌入式系统、实时系统及UML状态图的相关人员使用,对于我们在嵌入式开发中想进阶学习的或者相关项目中用到这个框架的帮助极大。
聊聊QP
QP 是一个轻量级的、开源的、基于状态机的、事件驱动型的应用程序框架。主要用来构建响应式和模块化的实时嵌入式应用,作为系统整合和事件驱动的活动对象,QP的设计思维有两个要点:
1. 实现控制反转和依赖倒置的事件驱动型系统
控制反转和依赖倒置是指一种直到现代才被大量应用的古老智慧,是事件驱动型编程的指导性原则。
原来实现一些裸机功能的时候,可能使用一些超级循环或者使用任务调度的方法,但事件驱动型不同,它将功能实现分解到应用程序的事件处理函数里,由应用程序处理事件,而框架是事件的分发和监督者,通过这样的方式,控制就被反转了。
由此,程序的运行是由事件驱动框架来控制了,而不由应用程序控制,主动权也就掌握起来了。
2. 可协作的层次式状态机
层次状态机可以说是有限状态机的升级版本,它体现一种行为继承的设计思想,并且可减少大量重复的状态转换。
QP框架通过用事件作为状态之间的转换事件这样的方式,使应用程序变成了一种可合作的层次状态机模型,实现各模块之间高内聚低耦合,使得实现很容易理解。
模块内部使用状态机封装操作,模块外部使用事件触发活动,这样就使原来高耦合的系统变成了一种低耦合的系统。
小结
QP框架为方便移植做了大量考虑,通过用C语言实现了这两个设计思路,这样就提供了一个轻量级的类似MVC的嵌入式开发框架,即用面向对象的设计方式来设计开发嵌入式系统,完全是一个可重用的设计方法,清晰易懂。
怎么获取?
这本书的中文版翻译得一塌糊涂(当然我没资格评价了,只是网上都这么说,哈哈见谅)。现在有了英文第二版,主体也采用C语言,并且更加实用,增加了大量例程讲解,更有利于学习(我没找到,但是网上可以买,支持正版吧)。
这里我有中文版第一版的,毕竟英文大家都不是很容易看懂,需要的可以在公众号后台回复:嵌入式系统的微模块化程序设计
。我只是推荐好书,并且认为好的思想给大家,不是也不会有任何商业用途,希望大家理解支持。
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
扫描下方微信,加作者微信进技术交流群,请先自我介绍喔。
推荐阅读:
-
嵌入式编程专辑Linux 学习专辑C/C++编程专辑
-
Qt进阶学习专辑关注微信公众号『技术让梦想更伟大』,后台回复“m”查看更多内容。
-
长按前往图中包含的公众号关注
转载:https://blog.csdn.net/u012846795/article/details/115154117