前言
第1章 嵌入式系统的定制及配置使用
1.1 嵌入式系统开发综述
1.1.1 嵌入式系统的定义
1.1.2 嵌入式Linux基础
1.2 Linux安装与配置
1.2.1 Linux定制安装
1.2.2 服务器配置
1.3 Linux常用命令
1.3.1 用户系统相关命令
1.3.2 文件操作相关命令
1.3.3 压缩打包相关命令
1.3.4 网络相关命令
1.3.5 其他常用命令
1.4 思考与练习
第2章 嵌入式开发软件工具的使用
2.1 Windows平台下软件工具的使用
2.1.1 Source Insight
2.1.2 SecureCRT
2.1.3 Notepad++
2.2 Linux平台下软件工具的使用
2.2.1 vi
2.2.2 gcc程序编译
2.2.3 gdb程序调试
2.3 思考与练习
第3章 Linux脚本编程
3.1 常用shell命令
3.2 脚本编写基础
3.2.1 特殊字符
3.2.2 变量和参数
3.2.3 退出和退出状态
3.3 流程控制
3.3.1 条件测试
3.3.2 操作符相关主题
3.3.3 循环控制
3.3.4 测试与分支
3.3.5 实例进阶
3.4 思考与练习
第4章 ARM11综述
4.1 ARM概述
4.1.1 ARM11主要功能
4.1.2 ARM11处理器比较
4.2 ARM指令与系统
4.2.1 ARM寄存器结构
4.2.2 ARM指令集
4.2.3 ARM伪指令
4.3 ARM中断体系结构
4.3.1 ARM中断系统结构
4.3.2 ARM中断系统操作
4.4 思考题
第5章 GPIO接口
5.1 GPIO接口介绍
5.1.1 GPIO结构
5.1.2 GPIO寄存器
5.2 GPIO操作实例
5.2.1 硬件设计
5.2.2 软件设计
5.3 思考与练习
第6章 IIC接口
6.1 IIC接口介绍
6.1.1 IIC结构及寄存器
6.1.2 软件访问方法
6.2 IIC操作实例
6.2.1 硬件设计
6.2.2 软件设计
6.3 思考与练习
第7章 UART接口
7.1 UART接口介绍
7.1.1 UART结构及操作
7.1.2 寄存器
7.2 UART操作实例
7.2.1 RS232原理
7.2.2 硬件设计
7.2.3 软件设计
7.3 思考题
第8章 ADC接口
8.1 ADC接口介绍
8.1.1 ADC基本原理
8.1.2 S3C6410ADC接口
8.1.3 ADC寄存器
8.2 ADC操作实例
8.2.1 硬件设计
8.2.2 软件设计
8.3 思考与练习
第9章 内核开发基础
9.1 构建嵌入式Linux系统基础
9.1.1 嵌入式开发环境搭建
9.1.2 嵌入式Linux内核
9.1.3 根文件系统
9.1.4 BootLoader
9.2 嵌入式Linux内核简介
9.2.1 内核架构
9.2.2 内核源代码
9.2.3 内核模块化
9.3 思考与练习
第10章 内核的配置与编译
10.1 内核的配置
10.1.1 内核配置系统
10.1.2 内核配置项
10.2 内核的编译与安装
10.2.1 内核编译命令
10.2.2 内核编译与安装
10.3 思考与练习
第11章 嵌入式文件系统
11.1 Linux文件系统概述
11.1.1 Linux文件系统的结构
11.1.2 Linux文件系统的特征
11.2 嵌入式文件系统简介
11.2.1 JFFS文件系统简介
11.2.2 YAFFS文件系统简介
11.3 构建根文件系统
11.3.1 Busybox简介
11.3.2 构建RAMdisk文件系统
11.4 思考与练习
第12章 BootLoader技术
12.1 BootLoader简介
12.1.1 BootLoader的基本概念
12.1.2 BootLoader的启动过程
12.1.3 BootLoader与主机之间的通信方式
12.2 BootLoader的工作流程
12.2.1 stage1阶段
12.2.2 stage
12.3 思考与练习
第13章 U-Boot分析和移植
13.1 U-Boot简介
13.1.1 U-Boot 源代码结构
13.1.2 U-Boot主要功能
13.1.3 U-Boot的工具
13.1.4 U-Boot的编译
13.1.5 U-boot命令
13.2 U-Boot的移植
13.3 思考与练习
第14章 Linux驱动开发基础与调试
14.1 设备驱动简介
14.1.1 设备类型分类
14.1.2 内核空间和用户空间
14.1.3 驱动程序层次结构
14.1.4 驱动程序与外界接口
14.1.5 驱动模块的特点
14.2 字符设备驱动程序基础
14.2.1 关键数据结构
14.2.2 设备驱动开发的基本函数
14.2.3 设备文件和设备号
14.2.4 加载和卸载驱动程序
14.2.5 打印调试
14.3 思考与练习
第15章 字符设备驱动
15.1 并发和竞态
15.1.1 并发及其管理
15.1.2 信号量和互斥体
15.1.3 自旋锁
15.2 ioctl and llseek
15.2.1 ioctl
15.2.2 定位设备(llseek实现)
15.3 阻塞型I/O和休眠
15.3.1 休眠
15.3.2 阻塞和非阻塞操作
15.3.3 高级休眠
15.3.4 poll和select
15.4 思考与练习
第16章 块设备驱动
16.1 块设备驱动程序开发基础
16.1.1 块设备的I/O操作特点
16.1.2 块设备主要数据结构
16.1.3 块设备的操作
16.2 实例进阶:IDE硬盘设备
16.2.1 IDE硬盘设备原理
16.2.2 S3C2440与IDE接口电路
16.3 实例进阶:IDE硬盘设备驱动
16.3.1 block_device_operations及成员函数
16.3.2 I/O请求处理
16.3.3 在内核中增加对新系统IDE设备的支持
16.4 思考与练习
第17章 网络设备驱动
17.1 网络设备驱动简介
17.1.1 驱动程序体系结构
17.1.2 主要数据结构
17.1.3 基本函数
17.2 DM9000网卡设备
17.2.1 DM9000简介
17.2.2 DM9000网卡接口电路
17.3 实例进阶:DM9000设备驱动程序
17.3.1 初始化网络设备
17.3.2 打开网络设备
17.3.3 关闭网络设备
17.3.4 中断处理
17.3.5 发送数据
17.3.6 接收数据
17.4 思考与练习
参考文献