C嵌入式编程设计模式
2012-4
机械工业出版社
道格拉斯
353
刘旭东
无
译者序 随着电子技术、通信技术等的飞速发展,嵌入式系统已经广泛地应用在工业控制、通信、航空航天、消费电子产品等领域,其所带来的效益不可估量。随着时间推移,嵌入式系统的需求量呈现指数增长,并且应用范围不断扩大,同时对系统的复杂性、稳定性、安全性以及关键性的要求也日益提高。嵌入式系统如何满足这种需求,怎样提高嵌入式软件的生产率,怎样以最短的时间开发出最令人满意的、高效可靠的嵌入式软件成为了摆在人们面前的问题。 本书以面向对象的视角,重新审视嵌入式系统,全面总结了嵌入式系统中常见的以及关键的设计模式。这些模式广泛应用于嵌入式系统或嵌入式软件中。本书还提出了很多新颖的设计模式,为使用C语言编程的嵌入式系统开发者提供了强有力的工具。 通过这些模式,开发者可以用最短的时间设计出性能好、稳定性强、安全性高的嵌入式系统或软件,而且也能为系统日后的升级维护打下坚实的设计基础。读者能够从本书中系统地掌握嵌入式系统的设计模式,使用C语言以面向对象的视角设计系统、开发系统。本书针对嵌入式系统中从内存访问到事件调度,从状态机设计到安全性、可靠性保证,对系统设计以及性能表现的方方面面进行了详细阐述,也提出了很好的设计规则。 本书的作者拥有30年的嵌入式系统设计和开发经验,本书是他对嵌入式系统设计模式的一次详细的总结。本书的组织条理清晰,不仅是一本关于嵌入式系统设计模式的优秀书籍,更是一个针对嵌入式软件工程的工具箱。读者可以从这个工具箱中找到应用到工作中的经典模式,通过在开发设计过程中使用这些模式能极大地提高嵌入式系统或软件的功能和稳定性。此外,所有的模式都使用UML来图形化解释,读者可以更直观地了解模式,并且配有详细的C代码实现,极大地方便了工作中的使用。可以说本书是一本不可多得的嵌入式系统设计方面的好书。 本书在翻译的过程中得到了很多人的帮助和鼓励,在此感谢机械工业出版社编辑在本书翻译过程中给予的帮助,还要感谢Kourosh Farrokhzadi对本书部分内容理解方面给予的指导。由于时间关系,虽然尽最大的努力翻译,但是译文中难免有疏漏和错误之处,恳请读者批评指正。
本书介绍如何使用设计模式为嵌入式系统创建高效且优化的C语言设计,这些设计方法已经过实践证明非常有效。
针对嵌入式系统中发生的问题,本书的设计模式给出了模式化的解决方案。通过学习本书,你将获得嵌入式领域专家来之不易的经验。
Bruce Powel
Douglass在俄勒冈大学获得运动生理学硕士学位,并在USD医学院获得神经生理学博士学位。在USD医学院时,他开创了一个叫做自相关因子分析的新数学分支,用于研究多细胞生物神经系统中的信息处理。
Bruce拥有30余年的实时系统领域软件开发工作经验,并且是实时系统领域和系统工程领域知名的演说家、作家和咨询顾问。他是嵌入式系统大会顾问委员会的成员之一,并且教授软件估算和调度、项目管理、面向对象分析和设计、通信协议、有限状态机、设计模式、安全关键系统的设计等相关课程。他在实时面向对象分析和设计、项目管理领域有很多年的开发、讲课和咨询经验。他为许多刊物撰写文章,特别是在实时领域。
他是IBM Rational的首席技术宣传官,IBM
Rational是实时系统开发工具的主要生产商,产品包括广泛使用的建模工具Rhapsody。Bruce与其他UML伙伴合作共同制定了UML标准。他是对象管理组织的实时分析与设计工作组的前联合主席。他还著有一些与其他软件相关的书籍,包括:
《Doing Hard Time:Developing Real-Time Systems
with UML,Objects,Frameworks,and
Patterns》(Addison-Wesley,1999)
《Real-Time Design Patterns:Robust Scalable
Architecture for Real-Time Systems》(Addison-Wesley,2002)
《Real-Time UML Third Edition:Advances in the UML
for Real-Time Systems》(Addison-Wesley,2004)
《Real-Time UML Workshop for Embedded
Systems》(Elsevier,2007)
《Real-Time Agility》(Addison-Wesley,2009)
译者序
前言
作者简介
第1章 什么是嵌入式编程
1.1 嵌入式系统有何特殊之处
1.2 面向对象还是结构化
1.3 小结
第2章 嵌入式实时过程Harmony的嵌入式编程
2.1 Harmony过程的基本原理
2.2 方法
2.3 接下来是什么
第3章 访问硬件的设计模式
3.1 基本的硬件访问概念
3.2 硬件代理模式
3.3 硬件适配器模式
3.4 中介者模式
3.5 观察者模式
3.6 去抖动模式
3.7 中断模式
3.8 轮询模式
3.9 小结
第4章 嵌入并发和资源管理的设计模式
4.1 并发基本概念
4.2 循环执行模式
4.3 静态优先级模式
4.4 临界区模式
4.5 守卫调用模式
4.6 队列模式
4.7 汇合模式
4.8 同时锁定模式
4.9 排序锁定
4.10 小结
第5章 状态机的设计模式
5.1 哦,行为
5.2 基本状态机概念
5.3 单事件接收器模式
5.4 多事件接收器模式
5.5 状态表模式
5.6 状态模式
5.7 与状态
5.8 分解与状态模式
5.9 小结
第6章 安全性和可靠性模式
6.1 关于安全性和可靠性的一些事
6.2 二进制反码模式
6.3 CRC模式
6.4 智能数据模式
6.5 通道模式
6.6 保护单通道模式
6.7 双通道模式
6.8 小结
附录A UML表示法
第1章 什么是嵌入式编程 我们将学到: ·嵌入式系统的基础知识 ·面向对象编程与结构化编程 ·使用C语言实现类、继承、状态机 1.1嵌入式系统有何特殊之处 本书完全着眼于嵌入式系统的开发。为此,需要区分嵌入式系统和其他系统。在深入讨论之前,我们需要理解这种区别,这样才能领会用来开发嵌入式系统的那些模式和技术的真谛。 嵌入式系统可以定义为:不提供通用的计算环境,而是致力于完成现实世界中具体功能的计算系统。显然,这样定义的嵌入式系统非常宽泛,它包括了心脏起搏器中的微型8位嵌入式计算机,与控制航天设备相关的32位计算机,交通设施、飞行器的消防控制,以及C4ISR(Command,Control,Communications,Computers,Intelligence,Surveillance,and Reconnaissance,指挥、控制、通信、计算机、情报、监视和侦察)系统的广域网中用于战场管理的数以百计的强大计算机系统。很多嵌入式系统没有磁盘,没有人机交互,并且仅有很少的存储空间,但是嵌入式系统的市场空间却远比这些简单设备更宽广。 嵌入式系统无处不在: ·在医药领域,嵌入式系统包括植入设备(如心脏起搏器、去纤颤器、胰岛素泵)、监测设备(如心电图(ECG/EKG)监视器、血气监测仪、血压计、肌电图(EMG)显示器)、成像系统(如CT、SPECT、PET、TEM和X射线成像仪),以及治疗输送装置(如病人呼吸机、药物汽化器和输液泵)。 ·在电信行业,涵盖了手机、交换设备、路由器、调制解调器和卫星等设备。 ·在汽车制造领域,嵌入式系统优化发动机燃烧,管理变速器中的能量传输,监控传感器数据,控制防抱死系统,提供安全保障并且提供咨询娱乐服务,例如:CD和DVD播放器、GPS导航(在一些地方,它可以提供雷达和激光探测甚至是主动雷达和激光探测应对系统)。 ·在办公领域,嵌入式系统管理电话、打印机、复印机、传真机、照明设备、数字投影仪、安保系统、防火系统和灭火系统。 ·在家中,例子包括微波炉、电视机、收音机、洗衣机,甚至包括真空吸尘器。 嵌入式系统已经能控制、增强、监控和管理几乎所有高科技设备,从电视机到火车,再到工厂自动化系统,而且其应用呈上升趋势。 嵌入式系统有个重要的子集即实时系统。很多人错误地认为“实时”就是“很快”,这种理解是不正确的。实时系统是一种在系统中必须满足实时性约束才能正确运行的系统。通常来看,可以将实时系统简单地分为两类:其中的一类是“硬”实时系统,它以系统实时性约束中的最后期限作为建模依据,在最后期限到来之前,指定的活动必须完成;“软”实时系统则是相对于“硬”实时系统而言的?,它加入时间期限以外的标准(经常是随机的)来满足系统的实时性约束。这些标准包括平均吞吐量、平均执行时间、最大脉冲长度或其他的衡量标准。所有的系统都可以建模为硬实时系统,但是这样做经常造成“过度设计”,过度设计造成系统运行速度过快且拥有更多可用资源(实际上这些都是不需要的),同时也提高了系统的续生成本(recurring cost,近似于“制造成本”)。 尽管所有的系统都以硬实时系统作为建模模型,但事实上很多系统并不是真正的硬实时系统。如果系统响应偶尔延迟,甚至整个输入事件丢失,大多数系统将继续正常工作。把实时系统建模为“硬”实时的主要原因是,可以通过数学分析简化系统的实时性约束。 ……
无
早就看过java的设计模式。嵌入式的设计模式确实没有看过。这本书填补了这个空白。
看到这本书,没有犹豫就买了。看到目录就不错。
作者也是相当的有30年经验。值得好好拜读。
UML图形分析很清晰。看来UML分析也是嵌入式开发的趋势了。
期待更多的嵌入式的相关类似图书出现。
是一本关于嵌入式系统设计模式的优秀书籍
其实书是很好的,就是翻译得不好,关于C语言模式的书就已经不多,C语言嵌入式编程的就更少了,有些人说里面有些东西比较旧,设计模式是一种程序设计思想,跟新旧没关;事实上最好就是看英文原版,但本人英文水平有限,翻译得不好没所谓,明白其中的知识就够了。
下载了英文原版的电子书,配套的买了翻译版,关于嵌入式开发的设计模式书籍少之又少,先入手再说吧
关于设计模式的书很多,但关于嵌入式设计模式的书很少。对于学习嵌入式开发的人来说,本书应该备一本!
从设计模式角度,读者需要开发经验才能深入体会.好书!
非常难得的一本关于嵌入式C的好书
关于这本书,前言中提到本书面向的读者要具有一定C语言基础的*不过我觉得,本书要具有一定C++语言基础的人才能看得懂*本书使用的语言虽然是C语言,可本书使用的思想,基本是C++的思想!不过还算本好书!
还没看不知道有没有用,大概就是讲一些模式的
现在还是有点看不懂大师的思路,买回来慢慢研究!
我个人认为这本书的内容很不错!可以学到很多有意义的东西。
好书,不过读这本书需要一定的基础。
书很不错的说,值得大家看一下~~~~
不错 。。。物流挺快
这里买书相当实惠。我都为朋友亲戚代买了不少了
一本很难得的关于C的总结书,值得细细阅读。
有些有点深奥,没事看还可以!
在书店里看到了,觉得不错.回来就买了.
书也就300多页的样子不过里面的内容还算丰富!嵌入式的都涉及了,我公司让我做CRC校验这书里面也有的好好看看!
如题所述,大概浏览了一下还没有细看,书很好
内容不错,用语有些严肃
比**贵很多啊,怎么回事
干这行,整好用的着
就是翻译不太好
书是本好书 但翻译得很不流畅
内容比较广,讲解概括性强,不够深入、印装好有书香味
境界没到,还没感觉
内容还没仔细看,但是书的纸张不好
C语言,做嵌入式的必须啊
书很差!!
关于嵌入式编程的好书
正是自己需要的,
老公觉得还行!