本书系统地介绍了嵌入式软/硬件系统的组成、工作原理、设计流程和方法。全书共10章,主要内容包括嵌入式系统设计基础、嵌入式系统的设计方法、ARM体系结构及指令系统、基于S3C2410的硬件电路设计、嵌入式Linux操作系统、嵌入式Linux系统的Boot Loader设计、嵌入式Linux程序设计基础、嵌入式Linux系统的驱动开发、嵌入式网络程序设计和嵌入式Linux图形用户界面编程等。
本书可作为高等院校电子与通信类专业的教材,也可作为电子与通信领域的科研及工程技术人员的参考书。
第1章 嵌入式系统设计基础
1.1 嵌入式系统简介
1.1.1 现代计算机的发展历程
1.1.2 嵌入式系统的定义和特点
1.1.3 嵌入式系统的组成
1.1.4 嵌入式系统的应用模式
1.1.5 嵌入式系统的现状和发展方向
1.2 嵌入式处理器
1.2.1 嵌入式处理器的分类
1.2.2 ARM微处理器
1.2.3 PowerPC. MIPS及X86架构
1.3 嵌入式操作系统
1.3.1 嵌入式操作系统的概念和分类
1.3.2 嵌入式操作系统的特点
1.3.3 典型嵌入式操作系统
练习题
第2章 嵌入式系统的设计方法
2.1 嵌入式系统的层次结构
2.1.1 硬件层
2.1.2 中间层
2.1.3 软件层
2.1.4 功能层
2.2 嵌入式系统的设计流程
2.2.1 需求分析
2.2.2 规格说明
2.2.3 体系结构设计
2.2.4 软/硬件构件设计
2.2.5 系统集成
2.3 嵌入式系统设计流程模型
2.3.1 瀑布模型
2.3.2 逐步求精模型
2.3.3 螺旋模型
2.3.4 其他模型
2.4 嵌入式系统的调试与测试
2.4.1 嵌入式系统开发的辅助工具
2.4.2 嵌入式系统的调试
2.4.3 嵌入式系统的测试
练习题
第3章 ARM体系结构及指令系统
3.1 ARM微处理器的体系结构
3.1.1 ARM指令集体系结构的版本及变种
3.1.2 ARM微处理器系列产品分类及性能
3.1.3 ARM微处理器体系结构
3.1.4 ARM体系的异常中断
3.2 指令系统
3.2.1 ARM指令编码格式与条件码
3.2.2 ARM指令集的寻址方式
3.2.3 ARM指令系统的分类
3.2.4 Thumb指令
3.3 基于ARM体系的汇编语言程序设计
3.3.1 ARM汇编器所支持的伪指令
3.3.2 汇编语言的语句格式
3.3.3 汇编语言的程序结构及子程序调用
3.3.4 ARM集成开发环境ADS的使用
练习题
第4章 基于S3C2410的硬件电路设计
4.1 基于微处理器的嵌入式系统的硬件设计
4.1.1 微处理器芯片选型的一般原则
4.1.2 多路时钟电路的设计
4.1.3 电源电路的设计
4.1.4 系统复位电路的设计
4.2 存储系统的分析与设计
4.2.1 存储器的分类
4.2.2 S3C2410存储系统的构成分析
4.2.3 S3C2410存储器系统的设计
4.3 通用I/O接口的设计
4.3.1 中断接口概述
4.3.2 RS-232-C串行接口的设计
4.3.3 USB接口电路的设计
4.3.4 JTAG接口
4.3.5 A/D转换接口
4.3.6 以太网接口
4.4 人机交互接口
4.4.1 显示接口
4.4.2 触摸屏接口
练习题
第5章 嵌入式Linux操作系统
5.1 Linux及其应用
5.1.1 Linux与Unix和GNU
5.1.2 Linux的特点
5.1.3 Linux的发展及应用
5.2 嵌入式Linux内核
5.2.1 嵌入式Linux的内核特征
5.2.2 进程管理
5.2.3 内存管理
5.2.4 文件系统管理
5.2.5 设备管理
5.2.6 进程间通信机制
5.3 嵌入式Linux文件系统
5.3.1 嵌入式文件系统介绍
5.3.2 Linux文件系统概述
5.3.3 嵌入式Linux常用文件系统
5.3.4 嵌入式Linux文件系统框架和特性
5.4 典型嵌入式Linux系统
5.4.1 霤Linux
5.4.2 RT-Linux
5.4.3 MontaVistaLinux
5.4.4 RTAI
练习题
第6章 嵌入式Linux系统的Boot Loader设计
6.1 Boot Loader的墓本概念
6.1.1 Boot Loader所支持的CPU和嵌入式板
6.1.2 Boot Loader的安装媒介
6.1.3 用于控制Boot Loader的设备或机制
6.1.4 Boot Loader的启动过程
6.1.5 Boot Loader的操作模式
6.1.6 Boot Loader与主机之间的文件传输协议
6.2 基于S3C2410开发板的Boot Loader的具体实现
6.2.1 系统启动流程的设计
6.2.2 Boot Loader的具体实现
练习题
第7章 嵌入式Linux程序设计基础
7.1 嵌入式Linux开发基础
7.1.1 嵌入式Linux开发步骤
7.1.2 嵌入式Linux的安装
7.1.3 开发工具的配置
7.2 Linux的常用工具
7.2.1 Shell编程
7.2.2 常用Shell命令
7.2.3 Shell编程实例
7.2.4 程序编辑器
7.3 嵌入式Linux操作系统的开发工具
7.3.1 编译器GCC
7.3.2 Makefile
7.3.3 调试器GDB
7.3.4 二进制代码工具
7.4 交叉开发环境
7.4.1 交叉开发环境介绍
7.4.2 应用程序的远程交叉调试
练习题
第8章 嵌入式Linux系统的驱动开发
8.1 Linux下的设备驱动程序简介
8.1.1 设备驱动程序的概念
8.1.2 驱动设备的分类
8.1.3 设备文件
8.1.4 主设备号和次设备号
8.1.5 Linux设备驱动程序结构
8.2 设备驱动程序的开发过程
8.2.1 模块化驱动程序设计
8.2.2 字符设备注册和初始化
8.2.3 中断管理
8.2.4 设备驱动开发的摹本函数
8.3 串口驱动程序设计
8.3.1 终端设备和控制台
8.3.2 Linux串口驱动程序分析
8.4 LCD驱动程序设计分析
8.4.1 LCD控制器
8.4.2 framebuffer设备驱动程序分析
8.4.3 LCD驱动开发的主要工作
8.5 中断处理
8.5.1 中断程序分析
8.5.2 一个简单的中断处理程序
练习题
第9章 嵌入式网络程序设计
9.1 嵌入式以太网基础知识
9.1.1 以太网介绍及其嵌入式应用
9.1.2 嵌入式系统中主要处理的网络协议
9.2 以太网接口设计
9.2.1 网络设备驱动程序基本结构及功能
9.2.2 以太网控制器CS8900A
9.2.3 基于CS8900A的网络驱动程序实例
9.3 Linux网络编程实现
9.3.1 socket基本函数
9.3.2 TCP编程实例
练习题
第10章 嵌入式Linux图形用户界面编程
10.1 Linux图形开发基础
10.1.1 GUI的一般架构
10.1.2 嵌入式GUI底层支持库
10.1.3 嵌入式GUI高级函数库
10.2 嵌入式Linux图形用户界面简介
10.2.1 Qt/Embedded
10.2.2 MicroWindows
10.2.3 MiniGUI
10.2.4 OpenGUI
10.3 Qt/Embedded嵌入式图形开发基础
10.3.1 Qt/Embedded概述
10.3.2 创建Qt/Embedded开发环境
10.3.3 Qt/Embedded的使用
10.3.4 开发实例:基于PC的简单程序
练习题
参考文献