新書推薦:
《
从天下到世界——国际法与晚清中国的主权意识
》
售價:HK$
76.2
《
血色帝国:近代英国社会与美洲移民
》
售價:HK$
58.2
《
海外中国研究·王羲之:六朝贵族的世界(艺术系列)
》
售價:HK$
178.1
《
唐宋绘画史 全彩插图版
》
售價:HK$
98.6
《
海洋、岛屿和革命:当南方遭遇帝国(文明的另一种声音)
》
售價:HK$
106.4
《
铝合金先进成型技术
》
售價:HK$
266.6
《
英雄之旅:把人生活成一个好故事
》
售價:HK$
87.4
《
分析性一体的涌现:进入精神分析的核心
》
售價:HK$
122.1
|
內容簡介: |
重点讨论复杂嵌入式系统的软件分析设计问题。首先本书从系统的角度出发,介绍在系统分析设计中的系统思想,以及嵌入式系统的软硬件协同设计方法。然后,针对嵌入式软件开发,按照软件开发的过程介绍嵌入式软件需求分析、系统设计和详细设计。书中全面介绍了嵌入式软件设计可能涉及的各种问题及解决方法,如BSP、可靠性、资源管理、界面等的设计以及开发环境选择等。本书力图结合嵌入式系统的特点,将软件工程领域成熟的分析设计方法引入到嵌入式软件的分析设计中。由于嵌入式软件设计领域现有的研究成果较少,因而本书希望向读者传授一种能够全面考虑问题,尽可能利用各个学科已有的设计思想解决问题的思维方式。
|
關於作者: |
康一梅,博士,目前任北京航空航天大学软件学院嵌入式软件专业主任。1994年于中国科学院自动化研究所获得工学博士学位,曾任北京首创前锋信息科技有限公司技术总监、北京成康科技发展有限公司总经理、亚讯数码电子有限公司研发部经理、北京金益康新技术术有限公司技术总监兼研发中心总经理等职务,负责设计开发过二十多个产品,还参与了多个大中型软件项目的研发,拥有两项软件知识产权。
|
目錄:
|
前言第1章 嵌入式系统的基础知识11.1 嵌入式系统概述11.1.1 嵌入式系统的组成21.1.2 嵌入式系统的特点41.1.3 嵌入式系统的分类51.1.4 学习嵌入式系统应具备的基础知识61.2 嵌入式系统硬件基础知识71.2.1 输入/输出接口71.2.2 时钟振荡电路和时钟单元81.2.3 存储器81.2.4 中断控制器91.2.5 嵌入式微处理器101.3 嵌入式系统总线131.3.1 片级总线131.3.2 板级总线191.3.3 系统级总线221.3.4 实例:UART串口通信开发251.4 分布式嵌入式系统331.4.1 分布式嵌入式系统结构331.4.2 嵌入式系统广域网络的无线接入方式341.4.3 分布式工业控制嵌入式系统结构351.4.4 无线传感器网络技术401.4.5 边缘计算43第2章 嵌入式系统软硬件协同设计462.1 系统思想462.1.1 系统的定义及组成472.1.2 重要的系统概念482.2 系统工程思想492.2.1 系统分析492.2.2 系统设计502.2.3 系统评价522.2.4 工程系统建模522.2.5 系统生存周期建模与优化532.3 系统需求定义542.3.1 嵌入式系统问题定义552.3.2 需求定义的概念572.3.3 联合应用设计582.3.4 嵌入式系统需求定义中常见的问题582.4 软硬件协同设计602.4.1 软硬件分开设计602.4.2 软硬件协同设计模型622.4.3 软硬件协同的嵌入式系统分析与设计632.4.4 软硬件任务划分与软硬件接口设计662.4.5 仿真验证692.4.6 集成调试与综合实现69第3章 实时软件分析设计方法723.1 实时软件分析设计概述723.1.1 实时系统的性能要求733.1.2 实时系统的设计要素733.1.3 嵌入式实时软件系统的生存周期743.2 结构化需求分析建模753.2.1 数据流分析763.2.2 控制流分析803.2.3 状态迁移动态模型823.2.4 实例833.3 DARTS系统设计853.3.1 划分任务863.3.2 定义任务接口883.3.3 人员进出房间系统设计实例893.4 简单嵌入式软件架构设计933.4.1 单线程系统933.4.2 事件驱动系统953.5 任务设计983.5.1 任务设计概述983.5.2 人员进出房间系统任务设计实例993.6 模块设计1033.6.1 模块设计概述1033.6.2 人员进出房间系统模块设计实例1043.7 任务与系统集成1043.8 实时软件分析设计方法—CODARTS104第4章 复杂嵌入式软件分析设计1064.1 面向对象需求分析1064.1.1 面向对象需求定义1064.1.2 面向对象需求分析建模1134.1.3 面向对象需求规格说明书1224.2 确定系统设计目标1244.3 复杂嵌入式软件架构设计1274.3.1 系统分解1274.3.2 子系统到软硬件的映射1304.3.3 开发环境和已有组件的选择1314.3.4 并发1344.3.5 持续数据管理1364.3.6 访问控制策略1364.3.7 全局控制流机制1364.3.8 边界条件的处理1374.4 人机交互设计1374.5 预期变化1394.5.1 设计模式概述1404.5.2 适配器设计模式1414.5.3 中断设计模式1434.5.4 设计模式的应用1464.6 嵌入式软件设计中应注意的问题148第5章 嵌入式操作系统与移植1495.1 嵌入式操作系统的特点1495.2 嵌入式操作系统的分类1505.3 几种代表性的嵌入式操作系统1515.4 常见的嵌入式操作系统结构1545.4.1 单块结构1545.4.2 层次结构1545.4.3 客户/服务器结构(微内核结构)1555.5 FreeRTOS移植1565.5.1 FreeRTOS简介1565.5.2 FreeRTOS源码目录结构1575.5.3 FreeRTOS移植实例158第6章 板级支持包与设备驱动1616.1 BSP技术概述1616.1.1 什么是BSP1616.1.2 BSP的作用与功能1626.1.3 常见的BSP实现方式和开发方法1626.1.4 主流嵌入式操作系统及其BSP技术1646.2 嵌入式系统的硬件初始化技术1676.2.1 嵌入式系统的硬件初始化1676.2.2 BSP与PC中BIOS硬件初始化的比较1686.3 嵌入式系统的引导技术1696.3.1 Boot Loader概述1696.3.2 嵌入式Linux的Boot Loader设计思想1706.4 嵌入式系统的设备驱动程序1716.4.1 驱动程序的重要性1716.4.2 机制与策略的问题1726.4.3 设备驱动的分层管理1736.4.4 设备类型和设备号1736.4.5 模块化编程1746.4.6 设备文件接口1756.4.7 字符驱动程序编写实例1756.5 实例:STM32设备驱动程序1796.5.1 时钟系统1796.5.2 GPIO1806.5.3 中断1826.5.4 定时器1866.5.5 ADC189第7章 嵌入式数据库1927.1 嵌入式数据库概述1927.1.1 嵌入式数据库的特点1927.1.2 嵌入式数据库的体系结构1937.2 嵌入式数据库的分类1957.3 数据库应用设计1967.4 基于SQLite的嵌入式软件持续数据管理 1987.4.1 SQLite简介1987.4.2 SQLite应用2017.4.3 SQLite开发环境移植207第8章 嵌入式软件图形用户界面设计2118.1 人机交互界面设计概述2118.1.1 人机交互技术2118.1.2 用户界面设计原则2128.1.3 界面设计活动2128.1.4 界面评价2138.2 图形用户界面概述2138.2.1 图形用户界面的基本特征2148.2.2 图形用户界面的结构模型2148.2.3 图形用户界面的实现2158.3 图形用户界面与嵌入式系统2168.3.1 嵌入式图形用户界面的特点2168.3.2 嵌入式系统的图形用户界面开发方案2168.3.3 嵌入式图形用户界面的体系结构层次2178.3.4 嵌入式图形用户界面主要技术分析2198.4 使用Qt/Embedded实现图形化界面设计2228.4.1 Qt/Embedded的架构2228.4.2 搭建Qt/Embedded开发环境2238.4.3 编写Qt/Embedded程序2258.5 C语言图形界面编程2278.5.1 帧缓冲区2278.5.2 Framebuffer2278.5.3 Framebuffer核心函数2298.5.4 Framebuffer编程230第9章 嵌入式软件可靠性设计2329.1 可靠性概述2329.2 可靠性涉及的性能指标2339.3 嵌入式系统的可靠性设计2349.3.1 嵌入式系统硬件可靠性设计2359.3.2 常用元器件的可靠性分析2369.3.3 提高嵌入式系统可靠性的具体措施2379.4 嵌入式软件的可靠性设计2389.4.1 软件可靠性与硬件可靠性的区别2389.4.2 影响软件可靠性的因素 2399.4.3 提高软件可靠性的方法和技术2399.4.4 软件产品可靠性的评估2429.4.5 嵌入式软件的可靠性设计2439.5 可靠性的管理245第10章 资源管理24710.1 功耗24710.1.1 功耗简介24710.1.2 基于硬件的低功耗设计24910.1.3 基于软件的低功耗设计25110.1.4 嵌入式低功耗的软硬件协同设计25410.2 电源25410.2.1 电源基础知识25410.2.2 电源管理技术25510.2.3 常用的节电方法25810.3 内存管理25910.3.1 内存管理概述25910.3.2 基本内存管理方案26210.3.3 常见实时系统的内存管理模式26310.3.4 内存泄漏26810.3.5 内存保护269第11章 嵌入式软件开发环境27011.1 嵌入式软件开发环境概述27011.2 嵌入式软件调试方法概述27211.2.1 驻留监控软件调试方法27211.2.2 基于JTAG方式的调试代理27311.2.3 指令集模拟器27311.2.4 在线仿真器 27311.2.5 ARM中基于JTAG的调试系统 27411.3 Linux 嵌入式系统开发环境27511.3.1 嵌入式Linux概述27511.3.2 嵌入式Linux开发环境架构27611.3.3 Linux开发工具27811.3.4 实例:建立嵌入式Linux-ARM开发环境28511.3.5 实例:实现“Hello World”程序28611.4 FreeRTOS嵌入式系统开发环境287参考文献293
|
內容試閱:
|
工业软件是我国新时期发展战略中的重点攻关方向之一。嵌入式软件是工业软件的核心分支。嵌入式软件是面向应用的,工业控制软件、5G通信设备软件、自动驾驶控制软件、航天飞行器控制软件等都是嵌入式软件。随着技术的发展,各个应用领域的需求不断扩展,嵌入式软件的规模越来越大、复杂性越来越高、对性能的要求越来越高。因此,嵌入式软件开发需要更专业的软件设计,以保证在技术与需求快速变化的情况下,软件满足稳定性、可靠性、扩展性、复用性等非功能性要求。这就要求嵌入式软件设计人员不仅要掌握具体的开发技术,更要掌握系统化的嵌入式软件设计方法。2007年,我们编写了《嵌入式软件设计》第1版,中国科学院与中国工程院两院院士王越教授为这本书作了序,同年这本书还被评为北京市精品教材。十多年来,虽然技术在不断发展,但是嵌入式软件设计的方法论相对稳定,这本教材从撰写之初就将重点放在基础理论与方法论上,因此一直没有修订。这次修订在结构上做了很大的调整,系统、完整地介绍实时软件与复杂嵌入式软件的分析、建模方法和软件设计方法,并分别以开源实时操作系统FreeRTOS、嵌入式Linux作为实时软件与复杂嵌入式软件的系统软件平台介绍相关软件开发实例。除了第9章、第10章沿用上一版第11章、第12章的内容并删除了上一版第15章之外,其他章节的内容都做了较大的调整。本书第1章介绍嵌入式系统的基础知识,对上一版内容的调整主要有三个方面。1)将“嵌入式系统软件基础知识”拆分并调整,移到其他章节中。2)将嵌入式系统总线按照片级总线、板级总线、系统级总线进行分类和详细介绍,并增加了基于Arduino的串口总线实例。选择Arduino的串口总线作为实例,是因为Arduino的封装性非常好,学生不需要对硬件有深入的了解,可以将所有注意力都集中在对串口总线的理解与应用设计上。3)将上一版中第13章调整后移到第1章,重点介绍工业应用中分布式嵌入式系统的架构。第2章介绍嵌入式系统的软硬件协同设计。嵌入式系统软硬件协同设计是系统工程思想在嵌入式系统设计中的具体体现,因此,我们合并了上一版第2章和第3章的内容并对其做了相应的调整。第3章介绍实时软件的分析设计方法。由于大多数实时软件都是用结构化的程序设计语言—C语言或是用汇编语言与C语言混合开发的,我们期望给出完整的实时软件分析建模方法与设计方法,因此增加了结构化分析建模方法,详细介绍了数据流图、控制流图、状态图的建模方法,完整地构建了一个实时系统的功能模型、控制模型与动态模型。然后介绍用DARTS方法中的任务划分原则与接口设计方法进行系统的分解。接下来介绍实时软件常用的软件架构,基于这些架构及其组合来组织任务。最后,在此基础上介绍了任务设计、模块设计、任务与系统集成。第4章介绍复杂嵌入式软件的分析设计方法,主要介绍面向对象的复杂嵌入式软件分析设计方法。目前,一些复杂的实时软件是用面向对象程序设计语言C++开发的,或是用汇编语言、C语言、C++语言混合开发的,大多数非实时嵌入式软件都是用面向对象程序设计语言开发的,因此,针对复杂嵌入式软件,我们系统地介绍了面向对象的嵌入式软件分析设计方法。对于实时软件,这一章介绍的方法要与第3章介绍的任务划分原则与接口设计方法结合使用;对于非实时嵌入式软件,仍然可以借鉴第3章的设计原则。为了复杂嵌入式软件分析设计方法的内容完整性,我们将上一版的第10章移至4.5节。第5章介绍嵌入式操作系统与移植,嵌入式操作系统的选型与移植在嵌入式软件开发中是基础,也是难点。我们在上一版1.3.2节的基础上增加了嵌入式操作系统架构的内容,并以开源实时操作系统FreeRTOS在STM32硬件平台上的移植作为实例,介绍了实时操作系统的移植与硬件平台的关系。第6章介绍板级支持包与设备驱动,在上一版第7章的基础上增加了STM32硬件平台上的FreeRTOS设备驱动程序开发实例,介绍了基于ARM MPU硬件平台的Linux操作系统的设备驱动开发。第7章介绍嵌入式数据库,对上一版第9章的内容进行了调整,删除了一些关于设计数据库、不常用嵌入式数据库的内容,增加了目前最常用的嵌入式数据库SQLite的持续数据管理应用设计的内容。第8章介绍嵌入式软件图形用户界面设计,对上一版第8章中目前不常用的技术进行了删减,并增加了目前常用的GUI设计中间件QT的介绍。此外,还增加了不用第三方GUI设计中间件而用C语言设计图形化界面的方法。第11章介绍嵌入式软件开发环境。这一版我们以实时操作系统FreeRTOS作为实时软件的系统软件平台的实例,以嵌入式Linux操作系统作为复杂嵌入式软件的系统软件平台的实例,因此,在上一版第14章的基础上,删掉了“Windows CE应用开发环境”,增加了“FreeRTOS嵌入式系统开发环境”。在本书修订过程中,刘亚楠提供了STM32硬件平台上的FreeRTOS移植与驱动开发实例,张博华提供了Arduino串口应用、SQLite数据库应用的开发实例,并整理了QT、C语言设计图形化界面方法的相关内容,邱世同根据课件整理了结构化分析建模方法等内容,在此感谢他们的辛勤
|
|