图书目录

目录

上篇原 理 部 分

第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实验设计