《基于S3C2440的嵌入式Linux开发实例》是2013年2月西安电子科技大学出版社出版的图书,作者是孙弋。
基本介绍
- 书名:基于S3C2440的嵌入式Linux开发实例
- 作者:孙弋
- ISBN:978-7-5606-2409-9/TP.1205
- 定价:35.7元
- 出版社:西安电子科技大学出版社
- 出版时间:2013-02
内容简介
本书以目前工业嵌入式领域表现出色的ARM9处理器S3C2440和源码开放的Linux作业系统为基础,系统地介绍了嵌入式系统S3C2440的开发过程及S3C2440各个接口的套用编程实例。所有代码均由作者在软体平台调试通过,大部分应用程式代码为作者在产品开发过程中所实际套用之成熟代码。本书对从事该领域产品开发的工程技术人员有较高的参考价值。
本书可作为高等院校电子、通信、自动化、计算机等专业的嵌入式系统课程的教材,也可作为从事嵌入式套用开发的工程技术人员的参考资料。
目录
第1章 嵌入式系统开发基础 1
1.1 嵌入式Linux系统开发模式 1
1.1.1 嵌入式系统设计的特点 3
1.1.2 嵌入式系统的设计流程 4
1.1.3 嵌入式系统的软硬体划分 7
1.1.4 嵌入式系统的产品硬体详细设计 7
1.2 嵌入式系统的软体设计 8
1.2.1 嵌入式软体平台的选择 9
1.2.2 嵌入式软体性能的设计 10
1.2.3 嵌入式软体开发流程 11
1.3 嵌入式开发电路基础 12
1.3.1 电路原理图设计 12
1.3.2 电路PCB设计基础 13
1.3.3 电子电路抗干扰技术 19
1.3.4 PCB设计中常用定义、符号和缩略语 22
1.3.5 PCB工艺设计考虑的基本问题 23
1.3.6 印製板常用基板设计要求 24
1.3.7 PCB製造一般技术要求 25
1.3.8 PCB设计基本工艺要求 25
1.3.9 拼板设计 29
1.3.10 元件的选用原则 32
1.3.11 组装方式 32
1.3.12 元件布局 33
1.3.13 布线要求 37
1.3.14 焊盘与线路的连线 37
1.3.15 大面积电源区和接地区的设计 38
1.3.16 通孔插装元件焊盘设计 39
1.3.17 导通孔的设计 41
1.3.18 阻焊层设计 42
1.3.19 字元图 43
1.3.20 元器件的表示方法 44
第2章 嵌入式微处理器及S3C2440处理器 48
2.1 嵌入式微处理器的结构和类型 48
2.1.1 嵌入式微处理器的分类 48
2.1.2 典型32位ARM微处理器的结构和特点 50
2.2 ARM9微处理器简介 58
2.2.1 ARM9与ARM7处理器的比较 58
2.2.2 三星S3C2440X ARM9处理器基础 59
第3章 Linux Flash驱动及套用实例 62
3.1 Flash简介 62
3.2 S3C2440 Nand Flash接口硬体及暂存器介绍 65
3.2.1 S3C2440 Nand Flash电路介绍 65
3.2.2 Nand Flash暂存器介绍 65
3.3 S3C2440 Flash控制器驱动程式分析 72
3.3.1 暂存器地址和功能定义 72
3.3.2 数据结构和变数描述 73
3.3.3 主要函式描述 77
第4章 S3C2440 SD/MMC Linux驱动及套用案例 90
4.1 SD/MMC概述 90
4.1.1 SD卡汇流排协定及工作原理 90
4.1.2 SD卡引脚及接口电路 91
4.2 S3C2440 SD/MMC接口暂存器介绍 93
4.3 Linux SD/MMC驱动程式分析 98
4.3.1 暂存器地址和功能定义 98
4.3.2 数据结构和变数描述 101
4.3.3 主要函式描述 104
第5章 S3C2440 I/O接口Linux驱动及套用实例 124
5.1 GPIO接口基础 124
5.2 S3C2440 GPIO接口硬体及暂存器 125
5.2.1 S3C2440 GPIO接口硬体 125
5.2.2 GPIO暂存器 125
5.3 S3C2440 GPIO驱动及LED应用程式分析 134
5.3.1 暂存器地址和功能定义 134
5.3.2 GPIO驱动LED程式主要函式描述 151
5.4 S3C2440 LED应用程式设计例程 153
第6章 Linux下S3C2440串口驱动及套用实例 155
6.1 串口的基本类型 155
6.1.1 RS-232串列接口标準 155
6.1.2 RS-422与RS-485串列接口标準 155
6.2 Linux串口驱动程式与分析 156
6.2.1 串列连线埠终端(/dev/ttySn) 156
6.2.2 伪终端(/dev/pty/) 157
6.2.3 控制终端(/dev/tty) 157
6.2.4 控制台终端(/dev/ttyn,/dev/console) 157
6.3 基于Linux串口设备驱动程式分析 158
6.3.1 UART驱动结构图 158
6.3.2 UART驱动中重要的数据结构及其关联 158
6.4 S3C2440 UART驱动实例分析 160
6.4.1 串口硬体 160
6.4.2 UART的暂存器 161
6.4.3 S3C2440串口驱动数据结构分析 166
6.4.4 结构体及相关变数定义 167
6.4.5 S3C2440串口驱动主要函式 169
6.5 串口GPS数据的採集例程 182
6.5.1 GPS简介 182
6.5.2 GPS原理 182
6.5.3 GPS协定分析 183
6.5.4 GPS套用的编程实例 184
6.6 小结 189
第7章 S3C2440 SPI接口驱动及CAN协定实现 190
7.1 S3C2440 SPI接口及CAN汇流排基础 190
7.1.1 SPI接口基础 190
7.1.2 CAN汇流排基础 193
7.1.3 SPI接口CAN协定实现硬体电路 195
7.2 SPI暂存器 196
7.2.1 SPI暂存器基础(SPCONn) 196
7.2.2 SPI暂存器地址和相关功能 199
7.3 SPI接口CAN协定驱动函式分析 200
7.3.1 SPI接口CAN协定驱动数据结构与相关变数 200
7.3.2 驱动程式结构与主要函式 201
第8章 LCD设备驱动与套用案例 214
8.1 LCD的基本知识 214
8.2 帧缓冲 214
8.2.1 帧缓冲的概念 214
8.2.2 Linux缓冲的相关数据结构 215
8.2.3 帧缓冲的设备驱动程式结构 215
8.2.4 帧设备缓冲的驱动模组主要函式 216
8.3 S3C2440 LCD设备驱动实例 216
8.3.1 S3C2440 LCD设备硬体 216
8.3.2 硬体暂存器定义描述 230
8.3.3 S3C2440 LCD数据结构分析 230
8.3.4 主要函式描述 234
8.4 控制台图像显示实例 243
8.4.1 程式原理 243
8.4.2 主要函式描述 244
第9章 S3C2440 USB接口Linux驱动及套用实例 248
9.1 USB接口介绍 248
9.2 Linux USB驱动结构 249
9.3 S3C2440 USB接口硬体及暂存器 250
9.3.1 S3C2440 USB硬体接口 250
9.3.2 S3C2440 USB硬体接口暂存器 250
9.4 S3C2440 USB主机驱动程式分析 251
9.4.1 暂存器地址和功能定义 252
9.4.2 结构体及相关变数定义 252
9.4.3 主要函式描述 254
9.5 ZC301 USB摄像头驱动实例 257
9.5.1 主要的数据结构与相关变数定义 257
9.5.2 主要函式分析 258
9.6 USB网路摄像头套用实例 270
9.6.1 V4L介绍 270
9.6.2 主要的数据结构 271
9.6.3 主要函式描述 272
9.6.4 参考代码 280
第10章 S3C2440 A/D接口和触控萤幕Linux驱动及套用实例 288
10.1 S3C2440 A/D接口驱动分析 288
10.1.1 S3C2440 A/D接口 288
10.1.2 S3C2440 A/D暂存器介绍 291
10.1.3 S3C2440 A/D驱动程式分析 293
10.1.4 S3C2440 A/D套用设计例程 298
10.2 触控萤幕设备驱动 300
10.2.1 触控萤幕的硬体原理 300
10.2.2 触控萤幕设备驱动分析 302
第11章 Linux下网卡驱动及套用实例 311
11.1 Linux网路设备的驱动基础 311
11.2 基于Linux的网路设备驱动程式分析 311
11.2.1 数据结构struct net_device 312
11.2.2 数据结构struct sk_buff 318
11.2.3 主要函式描述 322
11.3 基于CS8900网路设备驱动设计实例 328
11.3.1 CS8900网卡硬体描述 328
11.3.2 CS8900网卡驱动设计分析 330
11.4 网路套用 351
11.4.1 ICMP协定(Internet控制报文协定) 356
11.4.2 ICMP报文 356
11.5 Web伺服器Boa移植实例 363
11.5.1 移植步骤 364
11.5.2 Boa的配置 364
11.5.3 Boa运行 364
参考文献 365