《嵌入式Linux开发技术及实践》是2015年西安电子科技大学出版社出版的图书,作者是青岛东合信息技术有限公司。
基本介绍
- 书名:嵌入式Linux开发技术及实践
- 作者:青岛东合信息技术有限公司
- ISBN:978-7-5606-3313-8
- 定价:57.8元
- 出版社:西安电子科技大学出版社
- 出版时间:2015-05
内容简介
本书从嵌入式系统的基本概念出发,以ARM9系列处理器S3C2440为基础,配合开发板硬体平台,深入浅出地讲解了基于ARM的嵌入式Linux开发的各个环节。
本书分为两篇——理论篇和实践篇。理论篇介绍了嵌入式系统的基本概念和组成、ARM基础开发、ARM进阶开发、系统构建、驱动移植、套用编程以及GUI程式设计。实践篇与理论篇相对应,以如何实现一个物联网网关为案例,将理论与实践相结合,使读者加深对嵌入式Linux开发技术的理解并掌握基于ARM的嵌入式Linux开发知识,全面提高动手能力。
本书重点突出,偏重套用,适用面广,可作为本科计算机科学与技术、通信电子,高职高专计算机软体、计算机网路专业的嵌入式Linux课程的教材。
目录
理 论 篇
第1章 概述 2
1.1 嵌入式系统 2
1.1.1 嵌入式系统概述 2
1.1.2 嵌入式系统发展 3
1.2 嵌入式处理器 4
1.2.1 处理器分类 4
1.2.2 ARM处理器 5
1.2.3 ARM处理器系列 7
1.3 嵌入式作业系统 9
1.4 嵌入式系统开发 10
1.4.1 嵌入式系统开发流程 10
1.4.2 嵌入式系统开发环境 11
小结 14
习题 15
第2章 ARM基础开发 16
2.1 S3C2440概述 17
2.2 编程基础 19
2.2.1 S3C2440体系结构 19
2.2.2 彙编指令集 24
2.2.3 彙编与C语言的互动编程 31
2.3 时钟与电源 35
2.3.1 时钟体系 35
2.3.2 电源模式 39
2.4 GPIO 40
2.4.1 概述 40
2.4.2 GPIO暂存器 40
2.4.3 GPIO编程 42
2.5 存储器控制器 45
2.5.1 概述 45
2.5.2 存储器控制器暂存器 46
2.5.3 存储器控制器编程 48
2.6 异常系统 53
2.6.1 异常 53
2.6.2 中断机制 55
2.6.3 中断控制器暂存器 58
2.6.4 中断编程 61
2.7 定时器 66
2.7.1 概述 66
2.7.2 定时器暂存器 67
2.7.3 定时器编程 69
2.8 ADC和触控萤幕 70
2.8.1 ADC概述 71
2.8.2 触控萤幕 72
2.8.3 ADC暂存器 72
2.8.4 ADC编程 74
小结 77
习题 77
第3章 ARM进阶开发 79
3.1 Flash编程 80
3.1.1 概述 80
3.1.2 NAND Flash控制器 82
3.1.3 NAND Flash控制器暂存器 83
3.1.4 NAND Flash实例 85
3.2 UART 98
3.2.1 概述 98
3.2.2 S3C2440 UART 99
3.2.3 UART编程 104
3.3 USB 110
3.3.1 概述 110
3.3.2 USB主机控制器 117
3.3.3 USB设备控制器 128
3.3.4 USB设备编程 129
3.4 DMA 138
3.4.1 概述 138
3.4.2 DMA控制器 139
3.4.3 DMA控制器暂存器 140
3.4.4 DMA编程 143
3.5 LCD 144
3.5.1 概述 144
3.5.2 LCD控制器 146
3.5.3 LCD控制器暂存器 149
3.5.4 LCD编程 150
3.6 MMU 159
3.6.1 概述 159
3.6.2 MMU记忆体访问机制 164
3.6.3 Cache 165
3.6.4 ARM协处理器 166
3.6.5 MMU编程 168
小结 170
习题 170
第4章 系统构建 172
4.1 概述 173
4.2 交叉编译环境 173
4.3 Linux核心 174
4.3.1 Linux核心特点 175
4.3.2 核心结构 176
4.4 核心编译配置 177
4.4.1 配置工具 177
4.4.2 核心Makefile 177
4.4.3 配置档案Kconfig 179
4.4.4 配置选项 180
4.5 核心移植 182
4.5.1 移植示例 184
4.5.2 核心映像 187
4.6 构建根档案系统 188
4.6.1 档案系统概述 188
4.6.2 根档案系统 190
4.6.3 Busybox 191
4.6.4 构建根档案系统 195
4.7 Linux核心启动分析 198
小结 205
习题 206
第5章 驱动移植 207
5.1 概述 208
5.1.1 设备驱动程式 208
5.1.2 设备类型与设备号 208
5.1.3 驱动模组 209
5.1.4 驱动程式结构 211
5.1.5 驱动程式开发 211
5.2 字元设备驱动程式 211
5.2.1 字元设备特点 211
5.2.2 相关数据结构与函式 212
5.2.3 驱动程式模型 217
5.2.4 驱动程式实例 218
5.3 块设备驱动程式 224
5.3.1 块设备特点 224
5.3.2 相关的数据结构和函式 225
5.4 网路设备驱动程式 228
5.4.1 网路设备特点 228
5.4.2 相关数据结构和函式 230
5.4.3 DM9000模组 234
5.4.4 DM9000驱动程式 235
5.4.5 移植实例 248
小结 248
习题 249
第6章 套用编程 250
6.1 概述 251
6.1.1 应用程式 251
6.1.2 API 251
6.1.3 系统调用 252
6.1.4 API与系统调用 253
6.2 档案I/O编程 254
6.2.1 概述 254
6.2.2 基本I/O函式 255
6.2.3 标準I/O函式 265
6.3 进程 269
6.3.1 概述 269
6.3.2 基本函式 271
6.3.3 信号 276
6.3.4 管道 282
6.3.5 信号量 288
6.3.6 共享记忆体 293
6.3.7 讯息伫列 298
6.4 执行绪 304
6.4.1 概述 304
6.4.2 基本函式 305
6.4.3 同步与互斥 310
6.5 网路编程 315
6.5.1 TCP/IP协定 315
6.5.2 socket套接字 317
6.5.3 socket编程实例 323
小结 326
习题 327
第7章 GUI程式设计 328
7.1 图形用户界面 329
7.1.1 图形用户界面的特徵 329
7.1.2 嵌入式系统图形用户界面特点 329
7.1.3 几种流行的GUI 329
7.1.4 Qt及Qt/Embedded 330
7.2 Qt/Embedded开发平台的搭建 331
7.2.1 Qt Creator集成开发环境的搭建 331
7.2.2 编译安装触控萤幕校验库tslib 332
7.2.3 搭建Qt/Embedded开发环境 334
7.3 Qt Creator程式开发流程 335
7.3.1 Qt Creator启动界面简介 335
7.3.2 创建“Hello World”GUI应用程式 337
7.3.3 纯代码编写程式 340
7.4 程式框架类 341
7.4.1 QApplication类 342
7.4.2 QMainWindow类 343
7.4.3 QWidget类 346
7.4.4 QDialog类 349
7.4.5 QObject类 351
7.5 信号与槽机制 352
7.5.1 信号与槽机制概述 352
7.5.2 信号与槽的关联 353
7.5.3 元对象工具 355
7.5.4 信号/槽使用示例 355
7.6 常用视窗部件 357
7.6.1 QFrame类族 357
7.6.2 按钮部件 358
7.6.3 行编辑控制项 359
7.6.4 滑块部件 361
小结 361
习题 362
实 践 篇
实践1 概述 364
实践指导 364
实践1.G.1 364
实践1.G.2 367
实践1.G.3 369
实践1.G.4 371
实践2 ARM基础开发 377
实践指导 377
实践2.G.1 377
实践2.G.2 381
实践3 ARM进阶开发 394
实践指导 394
实践3.G.1 394
实践3.G.2 395
实践3.G.3 396
实践3.G.4 398
实践4 系统构建 428
实践指导 428
实践4.G.1 428
实践4.G.2 430
实践4.G.3 433
实践4.G.4 437
实践5 驱动移植 440
实践指导 440
实践5.G.1 440
知识拓展 444
实践6 套用编程 448
实践指导 448
实践6.G.1 448
实践6.G.2 451
实践7 GUI程式设计 462
实践指导 462
实践7.G.1 462
实践7.G.2 464
实践7.G.3 468
实践7.G.4 469