
本书是一本全面介绍嵌入式系统的教材,内容包括系统概述到硬件系统、软件系统、操作系统以及嵌入式系统的实现,覆盖面广,系统深入,并重点介绍了嵌入式Linux。全书共分为12章,分别为嵌入式系统概述,嵌入式系统设计的系统工程方法,嵌入式处理器,嵌入式系统的I/O模块,嵌入式系统的软件,嵌入式网络与协议栈,嵌入式操作系统,嵌入式Linux的开发环境,嵌入式Linux系统的组成和构建,嵌入式Linux系统内核原理和移植,嵌入式Linux系统的驱动程序,嵌入式系统的实现和调试。
本书结构合理,内容系统、全面,可作为高等院校计算机专业、电类专业、自动化以及机电一体化专业本科生“嵌入式系统”、“嵌入式系统体系结构”、“嵌入式系统原理及应用”及“嵌入式系统设计”等课程的教材和参考书,也可供希望了解和掌握嵌入式系统的技术人员参考阅读。
本书是普通高等教育“十一五”国家级规划教材。适用于计算机专业及相关专业本科生或研究生,可作为嵌入式系统相关课程的教材和参考书。
随着计算机技术的飞速发展,嵌入式技术已经是继网络技术之后,又一个得到广泛应用的新的技术发展方向,已成为IT领域的基础技术之一。嵌入式系统是计算机软件与硬件的完美结合,近年来已广泛地应用于军事、家庭、工业、商业、办公、医疗等社会各个方面。
本书系统地介绍了嵌入式系统,从系统概述到硬件系统、软件系统、操作系统以及嵌入式系统的实现,并重点介绍了嵌入式Linux。本书详细介绍了嵌入式系统各组成部分的功能与设计,由浅入深地对嵌入式系统的基本理论知识和技巧进行详细分析和论述,帮助学生掌握嵌入式系统的基本概念,学会使用系统开发工具,学习系统开发方法和开发流程。本书不仅注意介绍技术和方法,而且注重对经典的结构和思想等的论述和分析。
本教材具有如下主要特点。
(1) 取材先进,体系完整,覆盖面广,深度与广度相结合。
(2) 重点突出,可读性好,语言简练,通俗易懂。
(3) 结构合理,内容系统,主题安排逻辑性强。
(4) 表达明晰,突出强调示例。
全书共有12章。第1章为“嵌入式系统概述”,简单介绍了嵌入式系统的概念以及嵌入式系统的发展,并介绍了嵌入式系统的应用。第2章从工程设计的角度,介绍了嵌入式系统的设计方法。第3章为“嵌入式处理器”,讲述了嵌入式系统的硬件组成,介绍了嵌入式处理器的发展,并详细讲述了几种典型的嵌入式处理器,特别是ARM系列的嵌入式处理器。第4章介绍了嵌入式系统的I/O模块的基本结构,包括通信接口、通用并行接口、中断接口等I/O接口的内部结构和基本操作,并以实例说明了接口的实现方式。第5章讲述了嵌入式系统软件的开发方式、嵌入式系统软件的结构,介绍了嵌入式Linux中的常用软件。第6章为“嵌入式网络与协议栈”,讲述了嵌入式网络及嵌入式系统的联网,介绍了嵌入式Internet技术、蓝牙技术。第7章为“嵌入式操作系统”,讲述了嵌入式操作系统及实时系统的基本概念和功能,介绍了几种常用的嵌入式操作系统,并介绍了一个嵌入式操作系统的实例——μC/OSⅡ操作系统。第8章和第9章分别讲述了嵌入式Linux的开发环境和系统组成及构建。第8章介绍程序生成工具GCC工具链、工程管理工具Make和Makefile、GDB调试工具以及主机开发环境设置。第9章介绍嵌入式Linux系统的结构、嵌入式Linux的BootLoader、嵌入式Linux内核的构建、根文件系统等。第10章为“嵌入式Linux系统内核原理和移植”,讲述了嵌入式Linux内核的工作原理,介绍了Linux内核的移植工作,并以基于S3C2410 嵌入式系统的Linux 2.6的移植为例,介绍了嵌入式Linux操作系统移植的基本步骤。第11章为“嵌入式Linux系统的驱动程序”,讲述了Linux系统的内核编写及驱动程序的编写基础,介绍了嵌入式Linux中的几种驱动程序。第12章为“嵌入式系统的实现和调试”,讲述嵌入式系统的软件测试流程,介绍了嵌入式系统的调试和嵌入式系统的集成开发环境,并分析了嵌入式系统设计中的功耗、电磁兼容性等问题。
本书借鉴了国内外经典的相关教材,吸取了它们各自的优点,并将其内容有机地结合在一起。本书按层次和模块化结构组织教学内容,授课老师可以根据需要及课时的多少,对内容进行灵活的取舍。教学课时可以安排为48~64学时。
本书由同济大学的张晨曦教授、清华大学的韩超、国防科技大学的沈立、同济大学的李江峰以及清华大学的陈渝编写。张晨曦教授对全书进行了统稿。
本书直接或间接地引用了许多专家和学者的文献或著作,在此向他们表示衷心的感谢。
由于作者水平有限,书中难免有疏漏和不妥之处,敬请读者批评指正。请把相关的信息发送到xzhang2000@sohu.com。
欢迎访问张晨曦教授的微博和个人网站: weibo.com/FotoSky,www.FotoSky.com
编者
2012年2月于上海
第1章嵌入式系统概述
1.1嵌入式系统的概念
1.2嵌入式系统的发展
1.2.1嵌入式系统的产生
1.2.2嵌入式系统的发展历史
1.2.3嵌入式系统的发展趋势
1.3嵌入式系统的特点
1.4嵌入式系统的组成
1.4.1嵌入式系统的硬件
1.4.2嵌入式系统的软件
1.5嵌入式系统的分类
1.6嵌入式系统的应用
习题
第2章嵌入式系统设计的系统工程方法
2.1嵌入式系统设计模型和设计步骤
2.2系统需求分析
2.2.1需求描述阶段
2.2.2规格说明阶段
2.3系统设计
2.3.1体系结构设计
2.3.2硬件平台的选择
2.3.3软件平台的选择
2.3.4硬件和软件的划分
2.3.5嵌入式系统设计方法
2.4系统集成与调试
2.4.1系统集成
2.4.2系统调试
2.5系统测试
2.5.1嵌入式系统的测试方法
2.5.2嵌入式系统的测试工具
2.5.3嵌入式系统的测试策略
2.6系统维护
习题
第3章嵌入式处理器
3.1嵌入式系统的硬件组成
3.1.1处理器
3.1.2存储器
3.1.3附属电路与I/O模块
3.1.4调试接口
3.2嵌入式处理器
3.2.1嵌入式微处理器
3.2.2嵌入式微控制器
3.2.3数字信号处理器
3.2.4如何选择嵌入式处理器
3.2.5嵌入式处理器的发展
3.3SoC嵌入式处理器
3.4典型的嵌入式处理器
3.4.1ARM系列
3.4.2PowerPC系列
3.4.3MC68HC12系列
3.4.4ColdFire系列
3.4.5x86系列
3.4.6Intel 8051系列微控制器
3.4.7Microchip系列微控制器
3.4.8TI公司TMS320系列DSP
3.5ARM体系结构
3.5.1ARM处理器的运行模式
3.5.2ARM微处理器的工作状态
3.5.3ARM支持的数据类型
3.5.4ARM微处理器的寄存器组织
3.5.5ARM微处理器的异常处理机制
3.5.6ARM处理器的应用选型
习题
第4章嵌入式系统的I/O模块
4.1I/O接口的基本结构
4.1.1I/O接口电路的组成
4.1.2I/O接口电路的编址方式
4.1.3I/O接口电路的数据传送方式
4.2定时器/计数器
4.2.1内部结构
4.2.2基本操作
4.2.3应用实例
4.3LCD接口
4.3.1内部结构
4.3.2基本操作
4.3.3应用实例
4.4通信接口
4.4.1UART异步串行接口
4.4.2串行外设接口
4.4.3USB接口
4.4.4以太网接口
4.4.5I2C总线接口
4.4.6CAN总线接口
4.5通用并行接口
4.5.1S3C44B0X I/O功能概述
4.5.2应用实例
4.5.3并行接口标准
4.6中断接口
4.6.1中断源
4.6.2特殊功能寄存器
4.6.3中断优先级判断
4.6.4应用实例
4.7DMA控制器
4.7.1简要说明
4.7.2BDMA的寄存器
4.7.3BDMA的结构
4.7.4BDMA自动重装模式
4.8A/D和D/A转换器
4.8.1内部结构
4.8.2基本操作
4.8.3应用实例
4.9其他接口
习题
第5章嵌入式系统的软件
5.1嵌入式系统软件的开发方式
5.1.1嵌入式系统的软件
5.1.2软硬件结合的方式
5.2嵌入式系统软件的结构
5.2.1软件的层次结构
5.2.2嵌入式软件的分类
5.3嵌入式Linux系统的软件
5.3.1Linux操作系统、中间件、应用层程序的关系
5.3.2嵌入式Linux中的中间件
习题
第6章嵌入式网络与协议栈
6.1嵌入式网络
6.2嵌入式系统的联网
6.2.1网络连接方式
6.2.2开放式系统互连模型
6.2.3通信方式
6.3基于网络的嵌入式系统设计
6.3.1通信分析
6.3.2系统性能分析
6.3.3网络分配与调度
6.4嵌入式Internet
6.4.1嵌入式Internet概述
6.4.2嵌入式Internet的应用
6.4.3嵌入式Internet的原理
6.4.4嵌入式TCP/IP
6.5蓝牙技术
6.5.1蓝牙技术及特点
6.5.2蓝牙协议栈
习题
第7章嵌入式操作系统
7.1操作系统简介
7.2嵌入式操作系统和实时系统
7.2.1嵌入式系统的概念
7.2.2实时操作系统的基本概念
7.2.3嵌入式实时系统
7.2.4嵌入式操作系统的功能
7.3常用的嵌入式操作系统
7.3.1嵌入式Linux
7.3.2VxWorks
7.3.3Windows CE
7.3.4Nucleus PLUS
7.3.5μC/OSⅡ
7.3.6Symbian OS
7.3.7QNX
7.4μC/OSⅡ操作系统介绍
7.4.1μC/OSⅡ操作系统的组织结构
7.4.2μC/OSⅡ内核
7.4.3μC/OSⅡ任务管理
7.4.4μC/OSⅡ时间管理
7.4.5μC/OSⅡ内存管理
7.4.6μC/OSⅡ任务之间的通信与同步
习题
第8章嵌入式Linux的开发环境
8.1嵌入式Linux开发环境综述
8.2程序生成工具GCC工具链
8.2.1GNU 工具
8.2.2GCC交叉编译工具集合的使用
8.2.3C语言库
8.2.4ELF文件格式
8.3工程管理工具make和Makefile
8.3.1make工具和Makefile
8.3.2Makefile的实例
8.3.3自动生成Makefile
8.4GDB调试工具
8.4.1GDB调试在嵌入式系统中的应用
8.4.2远程GDB调试
8.4.3GDB的安装与使用
8.4.4使用gdbstub实现调试用户程序
8.4.5使用gdbserver调试
8.5主机开发环境设置
8.5.1串口终端工具
8.5.2TFTP
8.5.3NFS
习题
第9章嵌入式Linux系统的组成和构建
9.1嵌入式Linux系统的结构
9.1.1嵌入式Linux系统的组成
9.1.2嵌入式Linux构建的基本工作
9.2嵌入式Linux的BootLoader
9.2.1BootLoader的开发要点
9.2.2BootLoader的结构
9.2.3UBoot概述
9.2.4UBoot的结构和使用
9.2.5UBoot的生成和使用
9.2.6UBoot的启动流程
9.2.7UBoot的扩展
9.3嵌入式Linux内核的构建
9.4根文件系统
9.4.1Linux下的文件系统
9.4.2嵌入式Linux的文件系统介绍
9.4.3Linux的根文件系统
习题
第10章嵌入式Linux系统内核原理和移植
10.1Linux内核概述
10.1.1Linux内核的结构
10.1.2ARM处理器上运行的Linux系统
10.2Linux内核的移植工作
10.2.1ARMLinux系统的移植
10.2.2ARMLinux系统的初始化过程
10.2.3压缩内核的入口
10.2.4非压缩内核的入口
10.3基于S3C2410的移植工作
10.3.1移植的内容
10.3.2处理器类型支持
10.3.3中断系统的移植
10.3.4定时器的移植
10.3.5编译和配置选项
习题
第11章嵌入式Linux系统的驱动程序
11.1Linux驱动程序的概念
11.1.1Linux驱动程序的种类
11.1.2Linux设备文件
11.2Linux内核编程
11.2.1内存访问接口
11.2.2内核模块编写的注意事项
11.2.3内核模块的作用
11.2.4内核模块的编写
11.3Linux驱动程序的编写基础
11.3.1驱动程序的框架
11.3.2驱动程序的基本操作
11.3.3驱动程序中使用中断
11.3.4竞态处理
11.3.5阻塞操作
11.3.6异步操作
11.4嵌入式Linux中的几种驱动程序
11.4.1内存设备驱动程序
11.4.2Misc驱动程序框架
11.4.3帧缓冲驱动程序
11.4.4TTY驱动程序
11.4.5回环块设备驱动程序
11.4.6MTD驱动程序
11.4.7回环网络设备驱动
习题
第12章嵌入式系统的实现和调试
12.1嵌入式系统的实现
12.2嵌入式系统的软件测试
12.2.1测试的目的
12.2.2何时开始测试
12.2.3测试内容和测试方法
12.2.4测试实例的选择
12.2.5何时停止测试
12.2.6测试和维护
12.2.7评估测试的覆盖率
12.2.8性能测试
12.3嵌入式系统的调试
12.3.1模拟调试
12.3.2远程调试器与调试内核
12.3.3ROM仿真器
12.3.4在线仿真器
12.3.5BDM
12.3.6示波器、存储示波器和逻辑分析仪
12.4嵌入式系统设计中的若干问题
12.4.1功耗问题
12.4.2电磁兼容性问题
习题
加入时,请写明:“学校+姓名”,并写明“加入教师群”,只限教师。