第一篇 入门篇 3
第1章 Linux 2.6内核概述 3
1.1 Linux概述 3
1.1.1 什么是Linux 3
1.1.2 Linux的发展 5
1.2 Linux内核架构 6
1.2.1 Linux内核特点 6
1.2.2 Linux内核的功能 7
1.2.3 Linux 2.6内核源码目录 8
1.2.4 Linux 2.6内核的新特性 10
1.3 Linux系统的引导 11
1.3.1 Linux引导过程 11
1.3.2 内核镜像的构建 11
1.4 Linux内核分析 14
1.4.1 Linux内存管理 14
1.4.2 中断 16
1.4.3 系统调用 17
1.4.4 内核同步机制 18
第2章 嵌入式Linux 21
2.1 嵌入式系统概述 21
2.1.1 嵌入式系统的概念 21
2.1.2 嵌入式系统的应用 23
2.1.3 嵌入式系统的组成及处理器介绍 24
2.1.4 Xscale处理器结构 26
2.2 嵌入式Linux操作系统 28
2.2.1 嵌入式Linux的特点 28
2.2.2 嵌入式Linux发展现状 30
2.3 嵌入式Linux的启动过程 32
2.3.1 Arm Linux系统概述 32
2.3.2 PXA270RP平台Boot Loader分析 32
2.3.3 压缩内核的启动 41
2.3.4 文件系统(File System) 48
第二篇 开发初探篇 53
第3章 嵌入式Linux开发入门 53
3.1 嵌入式Linux软件开发工具 53
3.1.1 使用vi编辑器 53
3.1.2 gcc编译器 56
3.1.3 编写Make File 58
3.1.4 debug工具GDB 61
3.2 嵌入式Linux驱动程序开发 64
3.2.1 嵌入式系统设备驱动 64
3.2.2 Linux设备驱动原理 66
3.2.3 Linux设备驱动架构 67
3.3 嵌入式Linux程序开发初探 67
3.3.1 第一个Linux C语言程序 67
3.3.2 第一个嵌入式系统应用层程序 69
3.3.3 第一个嵌入式系统驱动层程序 71
3.4 制作PXA270RP平台的Linux系统 75
3.4.1 定制Linux 2.6操作系统内核 75
3.4.2 制作文件系统 80
第4章 开发环境的搭建 83
4.1 安装Linux开发系统 83
4.1.1 虚拟机和Fedora Linux 7简介 83
4.1.2 安装VMware Workstation 84
4.1.3 安装Fedora Linux 7系统 92
4.2 配置Linux开发环境 108
4.2.1 安装PXA270RP—Linux光盘 108
4.2.2 配置交叉编译器 111
4.2.3 配置minieom终端 112
4.2.4 配置TFTP 113
4.2.5 配置NFS 115
4.3 建立PC机和PXA270RP的硬件连接 117
4.4 烧写Linux系统到目标机 118
4.4.1 烧写Boot Loader 118
4.4.2 烧写Linux 2.6内核和文件系统 119
第三篇 驱动程序开发篇 125
第5章 GPIO 125
5.1 PXA270 GPIO介绍 125
5.2 GPIO—LED控制 128
5.2.1 PXA270RP平台GPIO—LED硬件电路 128
5.2.2 GPIO—LED驱动程序详解 128
5.2.3 编写Makefile文件 136
5.2.4 GPIO—LED应用程序详解 138
5.2.5 GPIO—LED实验操作步骤 139
5.3 按键中断 140
5.3.1 PXA27x中断原理 140
5.3.2 PXA270RP平台按键中断硬件电路 141
5.3.3 按键中断驱动程序详解 142
5.3.4 按键中断应用程序详解 149
5.3.5 按键中断实验操作步骤 151
5.4 蜂鸣器 151
5.4.1 蜂鸣器原理 151
5.4.2 PXA270RP平台蜂鸣器硬件电路 151
5.4.3 蜂鸣器驱动程序详解 152
5.4.4 蜂鸣器应用程序详解 153
5.4.5 蜂鸣器实验操作步骤 154
5.5 继电器 155
5.5.1 继电器原理 155
5.5.2 PXA270RP平台继电器硬件电路 155
5.5.3 继电器驱动程序详解 155
5.5.4 继电器应用程序详解 156
5.5.5 继电器实验操作步骤 156
5.6 数码管 157
5.6.1 数码管工作原理 157
5.6.2 PXA270RP平台数码管硬件电路 158
5.6.3 数码管驱动程序详解 158
5.6.4 数码管应用程序详解 160
5.6.5 数码管实验操作步骤 161
第6章 I/O内存 162
6.1 Linux2.6 I/O内存 162
6.2 拨码开关 163
6.2.1 拨码开关工作原理 163
6.2.2 PXA270RP平台拨码开关硬件电路 164
6.2.3 拨码驱动程序详解 164
6.2.4 拨码开关应用程序详解 167
6.2.5 拨码开关实验操作步骤 168
6.3 LED点阵 169
6.3.1 LED点阵工作原理 169
6.3.2 PXA270RP平台LED点阵硬件电路 170
6.3.3 LED点阵驱动程序详解 170
6.3.4 LED点阵应用程序详解 172
6.3.5 LED点阵实验操作步骤 173
6.4 键盘 174
6.4.1 键盘工作原理 174
6.4.2 PXA270RP平台键盘硬件电路 176
6.4.3 键盘驱动程序详解 176
6.4.4 键盘应用程序详解 179
6.4.5 键盘实验操作步骤 180
6.5 NAND Flash 181
6.5.1 NAND Flash概述 181
6.5.2 PXA270RP NAND Flash原理 185
6.5.3 NAND Flash驱动 186
6.5.4 PXA270RP NAND Flash的挂载 188
第7章 I2C总线和驱动分析 190
7.1 I2C总线概述 190
7.2 Linux的I2C体系结构 193
7.3 16位A/D转换 202
7.3.1 ADS1110工作原理 202
7.3.2 PXA270RP平台16位A/D转换硬件电路 204
7.3.3 ADS1110应用程序详解 205
7.3.4 16位A/D转换实验操作步骤 206
7.4 8位AD/DA转换 206
7.4.1 PCF8591工作原理 206
7.4.2 PXA270RP平台8位AD/DA转换硬件电路 208
7.4.3 PCF8591应用程序详解 209
7.4.4 8位AD/DA转换实验操作步骤 214
7.5 EEPROM读/写 215
7.5.1 24C16工作原理 215
7.5.2 PXA270RP平台EEPROM硬件电路 217
7.5.3 EEPROM读/写应用程序 217
7.5.4 EEPROM实验操作步骤 219
7.6 温度传感器 220
7.6.1 LM75工作原理 220
7.6.2 PXA270RP平台温度传感器硬件电路 222
7.6.3 温度传感器应用程序详解 223
7.6.4 温度传感器实验操作步骤 224
第四篇 扩展应用篇 227
第8章 串口通信 227
8.1 串口通信概述 227
8.1.1 同步串行通信与异步串行通信 227
8.1.2 串口传输速率、流控与差错控制 229
8.1.3 RS-232串口规范 231
8.1.4 RS-485串口规范 234
8.2 PXA270串口硬件描述 236
8.3 PXA270RP串口驱动程序 239
8.4 RS-232与PC机通信 241
8.4.1 MAX3232工作原理 241
8.4.2 PXA270RP平台RS-232硬件电路 242
8.4.3 RS-232配置程序详解 243
8.4.4 RS-232应用程序详解 245
8.4.5 RS-232通信实验操作步骤 250
8.5 RS-485通信 251
8.5.1 MAX488工作原理 251
8.5.2 PXA270RP平台RS-485硬件电路 251
8.5.3 RS-485应用程序详解 252
8.5.4 RS-485通信实验操作步骤 255
第9章 USB通信 257
9.1 USB体系与通信协议 257
9.1.1 USB体系结构 257
9.1.2 USB通信协议 259
9.2 PXA27x处理器USB控制器 262
9.2.1 USB设备控制器 262
9.2.2 USB主机控制器 264
9.3 Linux USB驱动结构 267
9.3.1 USB驱动框架 267
9.3.2 USB设备的逻辑组织 268
9.3.3 USB驱动的框架程序 271
9.4 USB设备使用实例 276
9.4.1 PXA270RP平台USB硬件电路 276
9.4.2 使用USB设备 277
9.5 USB蓝牙应用 279
9.5.1 蓝牙技术概述 279
9.5.2 蓝牙通信 282
9.6 无线网卡 285
9.6.1 Wi-Fi无线通信技术 285
9.6.2 无线通信实现 286
第10章 多媒体 290
10.1 LCD设备驱动 290
10.1.1 LCD原理 290
10.1.2 PXA270 LCD控制器 293
10.1.3 Linux下LCD驱动 294
10.1.4 PXA270RP平台LCD电路 296
10.1.5 LCD控制应用程序 297
10.1.6 PXA270RP平台LCD控制实验 298
10.2 MP3音频播放 299
10.2.1 AC97音频接口 299
10.2.2 PXA270RP音频接口电路 300
10.2.3 音频播放 300
第11章 网络通信 302
11.1 嵌入式设备以太网扩展 302
11.1.1 以太网概述 302
11.1.2 嵌入式处理器扩展以太网口 305
11.2 Linux网络驱动体系结构 307
11.2.1 Linux网络设备驱动的结构 307
11.2.2 网络设备的初始化 309
11.2.3 网络数据包的发送和接收 310
11.2.4 网络连接状态 310
11.2.5 LAN91C111网卡设备驱动 310
11.2.6 PXA270RP以太网口电路 313
11.3 socket通信 314
11.3.1 socket通信原理 314
11.3.2 socket通信操作 319
11.4 Web服务器 321
11.4.1 Web服务器编程 321
11.4.2 Web服务器操作实现 327
第12章 扩展应用 330
12.1 扩展接口 330
12.2 RF射频 331
12.2.1 射频IC卡 331
12.2.2 射频扩展板电路图 333
12.2.3 射频卡测试 334
12.3 电机实验 335
12.3.1 电机原理 335
12.3.2 电机扩展模块电路图 337
12.3.3 电机测试 338
12.4 GPS 340
12.4.1 GPS原理 340
12.4.2 GPS扩展模块电路图 342
12.4.3 GPS通信测试 342
12.5 GSM/GPRS 343
12.5.1 GSM/GPRS通信原理 343
12.5.2 GSM/GPRS扩展模块电路图 350
12.5.3 GSM通信测试 350
12.6 多线程 354
12.6.1 多线程实现原理 354
12.6.2 多线程实验测试 359
参考文献 361