图书信息
书名:《嵌入式系统原理与设计》作者:陈文智
《嵌入式系统原理与设计》封面

出版社:清华大学出版社
ISBN:9787302238591
定价:49元
印次:1-1
装帧:平装
印刷日期:2011-4-11
图书简介
本书分为上下两篇,上篇原理部分共14章,下篇实验部分共10章。
其中原理部分:
第1章介绍嵌入式系统的套用领域和发展方向。
第2章介绍ARM9处理器的架构及其记忆体管理。
第3章介绍ARM9体系结构的指令集与彙编代码的编写。
第4章介绍嵌入式Linux作业系统的基本知识。
第5章介绍常见的Boot Loader。
第6章介绍基于ARM体系结构的Linux核心。
第7章介绍嵌入式档案系统的框架。第8章介绍嵌入式设备驱动程式结构。
第9章介绍交叉开发环境模式和常用的调试技术。
第10章介绍字元设备驱动程式的框架。
第11章介绍块设备驱动程式的架构。
第12章介绍网路设备驱动架构。
第13章介绍嵌入式MiniGUI及其套用。
第14章介绍Android嵌入式系统相关的技术与套用开发。
实验部分:
第1章介绍本书实验部分採用的开发板。
第2章介绍搭建宿主机和目标机实验环境。
第3章介绍核心及核心模组的製作方法。
第4章介绍根档案系统的製作过程。
第5章介绍调试的方法。
第6章介绍了简单的字元设备驱动程式的编写方法。
第7章介绍了块设备驱动程式开发的特点和流程。
第8章介绍了网卡驱动程式的开发流程。
第9章介绍了MiniGUI的使用方法。
第10章介绍了Android平台上应用程式的开发方法和流程。
本书既可以作为各类院校嵌入式方向的本科生和研究生的嵌入式系统教材,也可以作为嵌入式系统开发工程师的参考书。
图书目录
目录
上篇原 理 部 分
第1章嵌入式系统概述
1.1嵌入式系统简介
1.1.1嵌入式系统历史与现状
1.1.2嵌入式系统体系结构
1.1.3套用领域和发展方向
1.2嵌入式微处理器
1.2.1嵌入式处理器简介
1.2.2ARM微处理器的套用领域及一般特点
1.2.3ARM微处理器系列
1.3嵌入式作业系统
1.3.1嵌入式作业系统简介
1.3.2嵌入式Linux
1.3.3Windows CE
1.3.4Symbian
1.3.5Android
1.3.6uC/OS?II
1.3.7VxWorks
1.3.8其他嵌入式作业系统
1.4嵌入式系统设计
1.4.1嵌入式系统设计过程
1.4.2硬体设计平台的选择
1.4.3软体设计平台的选择
1.4.4嵌入式套用软体开发
1.4.5测试和最佳化
1.5小结
第2章ARM处理器和架构
2.1ARM处理器概述
2.1.1ARM公司和ARM产品简介
2.1.2ARM指令集体系结构版本
2.1.3ARM微处理器系列
2.2ARM9处理器架构
2.2.1ARM9 暂存器
2.2.2流水线技术和哈佛体系结构
2.2.3CP15协处理器
2.3ARM9处理器的记忆体管理
2.3.1记忆体管理单元的作用
2.3.2ARM9记忆体管理
2.4ARM9异常处理
2.4.1ARM9异常
2.4.2ARM9异常处理向量表
2.4.3ARM9异常处理过程
2.5小结
目录
嵌入式系统原理与设计
第3章ARM9指令集和彙编
3.1ARM指令集概述
3.1.1RISC简介
3.1.2ARM状态和Thumb状态
3.1.3ARM9指令类型和指令的条件域
3.2ARM指令的定址方式
3.2.1立即定址
3.2.2暂存器定址
3.2.3暂存器偏移定址
3.2.4暂存器间接定址
3.2.5基址变址定址
3.2.6多暂存器定址
3.2.7堆叠定址
3.2.8相对定址
3.3ARM指令简介
3.3.1跳转指令
3.3.2通用数据处理指令
3.3.3乘法指令
3.3.4Load/Store记忆体访问指令
3.3.5ARM协处理器指令
3.3.6杂项指令
3.3.7饱和算术指令
3.3.8ARM伪指令
3.4Thumb指令简介
3.4.1Thumb跳转指令
3.4.2Thumb通用数据处理指令
3.4.3Thumb算术指令
3.4.4Thumb记忆体访问指令
3.4.5Thumb软中断和断电指令
3.4.6Thumb伪指令
3.5小结
第4章嵌入式Linux作业系统
4.1嵌入式Linux简介
4.1.1uCLinux
4.1.2RT?Linux
4.1.3红旗嵌入式Linux
4.2记忆体管理
4.2.1记忆体管理和MMU
4.2.2标準Linux的记忆体管理
4.2.3uCLinux的记忆体管理
4.3进程管理
4.3.1进程和进程管理
4.3.2RT?Linux的进程管理
4.3.3标準Linux的进程管理
4.3.4uCLinux的进程管理
4.4档案系统
4.4.1档案系统定义
4.4.2Linux档案系统
4.4.3嵌入式Linux档案系统
4.5小结
第5章Boot Loader技术
5.1Boot Loader基本概念
5.1.1Boot Loader所支持的硬体环境
5.1.2Boot Loader的安装地址
5.1.3Boot Loader相关的设备和基址
5.1.4Boot Loader的启动过程
5.1.5Boot Loader的操作模式
5.1.6Boot Loader与主机之间的通信设备及协定
5.2Boot Loader的典型结构
5.2.1Boot Loader阶段1介绍
5.2.2Boot Loader阶段2介绍
5.2.3关于串口终端
5.3U?Boot简介
5.3.1认识U?Boot
5.3.2U?Boot特点
5.3.3U?Boot代码结构分析
5.4vivi简介
5.4.1认识vivi
5.4.2vivi代码导读
5.5小结
第6章ARM?Linux核心
6.1ARM?Linux核心简介
6.1.1ARM?Linux核心和普通Linux核心的区别
6.1.2ARM?Linux的版本控制
6.1.3ARM?Linux的代码结构
6.2ARM?Linux记忆体管理
6.2.1影响记忆体管理的两个方面
6.2.2ARM?Linux的存储机制
6.2.3虚拟记忆体
6.3ARM?Linux进程管理和调度
6.3.1进程的表示和生命周期
6.3.2Linux进程的创建、执行和销毁
6.3.3Linux进程的调度
6.4ARM?Linux的模组机制
6.4.1Linux 模组概述
6.4.2模组代码结构
6.4.3模组的载入
6.4.4模组的卸载
6.4.5版本依赖
6.5ARM?Linux的中断管理
6.6ARM?Linux的系统调用
6.7ARM?Linux系统的启动和初始化
6.7.1使用Boot Loader将核心映像载入
6.7.2核心数据结构初始化——核心引导第一部分
6.7.3外设初始化——核心引导第二部分
6.7.4init进程和inittab脚本
6.7.5rc启动脚本
6.7.6Shell的启动
6.8小结
第7章档案系统
7.1嵌入式档案系统
7.1.1嵌入式档案系统简介
7.1.2Linux档案系统简介
7.2嵌入式Linux档案系统框架
7.3JFFS2嵌入式档案系统
7.3.1目录节点的定义
7.3.2数据节点
7.3.3可靠性支持
7.3.4记忆体使用
7.3.5垃圾收集
7.3.6写平衡
7.3.7JFFS2的不足之处
7.3.8JFFS3简介
7.4根档案系统
7.4.1什幺是根档案系统
7.4.2建立JFFS2根档案系统
7.5小结
第8章设备驱动
8.1Linux驱动程式简介
8.1.1设备的分类
8.1.2设备档案
8.1.3主设备号和次设备号
8.1.4Linux设备驱动代码的分布
8.1.5Linux设备驱动程式的特点
8.2设备驱动程式结构
8.2.1驱动程式的注册与注销
8.2.2设备的打开与释放
8.2.3设备的读写操作
8.2.4设备的控制操作
8.2.5设备的轮询和中断处理
8.3Linux核心设备模型
8.3.1设备模型建立的目的
8.3.2sysfs——设备拓扑结构的档案系统表现
8.3.3驱动模型和sysfs
8.3.4kobject
8.3.5platform汇流排
8.4同步机制
8.4.1同步锁
8.4.2信号量
8.4.3读写信号量
8.4.4原子操作
8.4.5完成事件(completion)
8.4.6时间
8.5记忆体映射和管理
8.5.1物理地址映射到虚拟地址
8.5.2核心空间映射到用户空间
8.6工作伫列
8.7异步I/O
8.8DMA
8.8.1DMA数据传输
8.8.2DMA定义
8.8.3DMA映射
8.9小结
第9章开发环境和调试技术
9.1交叉开发环境模式概述
9.2宿主机环境
9.2.1串口终端
9.2.2BOOTP协定
9.2.3TFTP协定
9.2.4交叉编译
9.2.5make工具
9.3目标板环境
9.3.1JTAG接口简介
9.3.2Boot Loader简介
9.4交叉编译工具链
9.4.1交叉编译的构建
9.4.2相关工具
9.5gdb调试器
9.6远程调试
9.6.1远程调试原理
9.6.2gdb远程调试功能
9.6.3使用gdbserver
9.7核心调试
9.7.1核心调试技术
9.7.2kgdb核心调试
9.8网路调试
9.9小结
第10章字元设备和驱动程式设计
10.1字元设备驱动框架
10.2字元设备驱动开发
10.2.1设备号
10.2.2关键数据结构
10.2.3字元设备注册和注销
10.3GPIO驱动概述
10.4串列汇流排概述
10.4.1SPI汇流排
10.4.2I2C汇流排
10.4.3SMBus汇流排
10.5I2C汇流排驱动开发
10.5.1I2C驱动架构
10.5.2关键数据结构
10.5.3I2C核心
10.5.4I2C汇流排驱动
10.5.5I2C设备驱动
10.6小结
第11章块设备和驱动程式设计
11.1块设备驱动程式设计概要
11.1.1块设备的数据交换方式
11.1.2块设备读写请求
11.2Linux块设备驱动相关数据结构与函式
11.2.1gendisk结构
11.2.2request结构
11.2.3request_queue伫列
11.2.4bio结构
11.3块设备的注册与注销
11.4块设备初始化与卸载
11.5块设备操作
11.6请求处理
11.7MMC/SD卡驱动
11.7.1MMC/SD晶片介绍
11.7.2MMC/SD卡驱动结构
11.7.3MMC/SD卡块设备驱动分析
11.7.4HSMCI接口驱动设计分析
11.8小结
第12章网路设备驱动程式开发
12.1乙太网基础知识
12.1.1CSMA/CD协定
12.1.2乙太网帧结构
12.1.3嵌入式系统中常用网路协定
12.2嵌入式网路设备驱动开发概述
12.3网路设备驱动基本数据结构
12.3.1net_device数据结构
12.3.2sk_buffer 数据结构
12.4网路设备初始化
12.5打开和关闭接口
12.6数据接收与传送
12.7查看状态与参数设定
12.8AT91SAM9G45网卡驱动
12.8.1EMAC模组简介
12.8.2模组图
12.8.3功能描述
12.8.4暂存器描述
12.8.5AT91SAM9G45晶片EMAC控制器驱动分析
12.9小结
第13章MiniGUI
13.1MiniGUI概述
13.1.1MiniGUI简介
13.1.2MiniGUI特点
13.1.3MiniGUI套用
13.2MiniGUI安装与配置
13.2.1安装GUI相关程式
13.2.2配置MiniGUI环境
13.3MiniGUI的使用
13.3.1编译应用程式
13.3.2交叉编译
13.4MiniGUI的编程
13.4.1编程环境介绍
13.4.2MiniGUI框架介绍
13.4.3基础编程
13.4.4对话框和控制项编程
13.4.5图形编程
13.5小结
第14章Android嵌入式系统及套用开发
14.1Android概述
14.1.1简介
14.1.2Android系统架构
14.1.3Android套用扩展
14.2Android开发环境搭建
14.2.1Android开发环境介绍
14.2.2环境搭建步骤
14.2.3Android SDK介绍
14.3Android套用开发
14.3.1创建Android工程
14.3.2Hello World!例程
14.4Android套用开发扩展
14.4.1基础UI设计
14.4.2扩展性设计
14.5小结
下篇实 验 部 分
第1章实验基础
第2章开发环境建立
第3章核心和模组构建
第4章档案系统构建
第5章调试技术演练
第6章字元设备驱动程式设计
第7章块设备驱动程式设计
第8章网路设备驱动程式设计
第9章MiniGUI实验设计
第10章Android实验设计