从ARM9到Linux系统设计与开发直通车

出版日期:2014-8
ISBN:978712123839X
作者:赵健雄
页数:588页

作者简介

本书由浅入深、全面、系统地介绍了ARM技术与嵌入式Linux的系统设计与开发。全书共18章,讲解了ARM微处理器的片上资源、ARM的指令集、Windows的最常用的嵌入式集成开发环境ADS、上位机嵌入式系统的构建、Boot-Loader的介绍和使用、对Linux内核的移植、嵌入式文件系统移植、Linux的多任务程序开发、设备的驱动开发等内容。书中的每章都提供了大量有针对性的实例,对每个知识点也给出了较详细的解释。

书籍目录

第1篇  ARM微处理器讲解篇
第1章 走进嵌入式系统世界
1
1.1 让我们一起来认识嵌入式系统
1
1.1.1 嵌入式硬件系统的发展进程
2
1.1.2 嵌入式系统的发展趋势
3
1.1.3 嵌入式系统的主要特征
4
1.2 嵌入式处理器的简单概述
6
1.2.1 嵌入式微处理器简介
6
1.2.2 嵌入式微控制器简介
7
1.2.3 数字信号处理器(DSP)简介
7
1.2.4 嵌入式片上系统(SoC)简介
8
1.3 嵌入式软件系统的简单概述
9
1.3.1 嵌入式软件系统简介
9
1.3.2 嵌入式软件开发简介
10
1.4 嵌入式目标平台的介绍
11
1.4.1 嵌入式硬件平台简介
11
1.4.2 如何构建嵌入式系统开发平台
12
1.4.3 如何向嵌入式硬件平台上烧写映像
14
1.5 本章小结
17
第2章 ARM体系微处理器的基础介绍
18
2.1 ARM体系微处理器简介
18
2.2 ARM体系微处理器的类型
18
2.3 实际项目中对ARM微处理器的选择
21
2.3.1 ARM微处理器应用方案的成熟度考虑
21
2.3.2 ARM内核的选择
21
2.3.3 ARM微处理器的性能考虑
22
2.3.4 ARM微处理器的片内资源考虑
22
2.4 ARM微处理器的工作体系
22
2.4.1 工作模式介绍
23
2.4.2 寄存器体系
23
2.4.3 指令体系
24
2.5 ARM微处理器的基础架构介绍
24
2.5.1 计算机体系结构的介绍
25
2.5.2 ARM微处理器的技术特征
26
2.6 本章小结
29
第3章 S3C2410的内部结构及外围电路
30
3.1 S3C2410整体资源简介
30
3.1.1 性能介绍
30
3.1.2 资源模块介绍
31
3.1.3 内部结构
31
3.1.4 五大体系结构
34
3.1.5 存储系统
34
3.2 S3C2410内部资源功能介绍
38
3.2.1 时钟与电源管理
38
3.2.2 中断控制器
41
3.2.3 LCD控制器
42
3.2.4 Nand Flash控制器
43
3.2.5 UART控制器
44
3.2.6 DMA控制器
44
3.2.7 TIMER控制器
44
3.2.8 I/O接口
45
3.2.9 RTC控制器
46
3.2.10 触摸控制器
46
3.2.11 IIC控制器
47
3.2.12 IIS控制器
47
3.2.13 看门狗定时器
47
3.2.14 USB控制器
47
3.2.15 SPI接口
48
3.2.16 SD接口
48
3.2.17 ADC控制器
49
3.3 S3C2410微处理器的外围电路设计
49
3.3.1 时钟电路
50
3.3.2 复位电路
50
3.3.3 启动电路
51
3.3.4 电源电路
51
3.3.5 Flash电路
52
3.3.6 SDRAM电路
54
3.3.7 UART电路
57
3.3.8 IrDA电路
58
3.3.9 USB电路
58
3.3.10 以太网电路
59
3.3.11 音频电路
61
3.3.12 SD/MMC电路
62
3.3.13 LCD电路
62
3.4 本章小结
63
第4章 ARM微处理器的寻址方式及指令集介绍
64
4.1 ARM指令集概述及寻址方式
64
4.1.1 指令结构简介
64
4.1.2 指令分类
65
4.1.3 指令格式与条件域
66
4.1.4 寻址方式
67
4.2 ARM微处理器的指令集介绍
73
4.2.1 跳转指令
73
4.2.2 数据处理指令
74
4.2.3 乘法指令与乘加指令
79
4.2.4 程序状态寄存器访问指令
81
4.2.5 加载/存储指令
82
4.2.6 批量数据加载/存储指令
84
4.2.7 数据交换指令
85
4.2.8 移位指令
86
4.2.9 协处理器指令
87
4.2.10 异常产生指令
89
4.3 本章小结
90
第5章 ADS集成开发环境的应用基础
91
5.1 ADS1.2集成开发环境简介
91
5.1.1 ADS软件中的ARM运行时库
92
5.1.2 CodeWarrior集成开发环境介绍
93
5.1.3 ADS集成开发软件的调试器介绍
94
5.1.4 ADS集成开发环境中的实用工具
94
5.2 ADS软件的命令行下的开发方式
95
5.2.1 ADS软件中的命令行工具介绍
95
5.2.2 编译器与链接器的使用
97
5.3 ADS软件的图形界面下的开发方式
100
5.3.1 如何创建ADS工程
100
5.3.2 工程源代码的编写实现
104
5.3.3 对工程进行编译和链接操作
106
5.4 使用AXD调试工具进行代码调试
110
5.4.1 AXD软件加载可执行文件
110
5.4.2 AXD软件中运行映像文件
110
5.4.3 代码调试时添加断点
110
5.4.4 代码调试时的存储器操作
111
5.4.5 代码调试时的寄存器操作
111
5.4.6 代码调试时的变量操作
112
5.5 本章小结
112
第6章 基于ADS平台的实验开发
113
6.1 汇编之LED灯实验
113
6.2 Hello World之串口实验
115
6.2.1 S3C2410的UART介绍
115
6.2.2 UART的数据发送操作
115
6.2.3 UART的数据接收操作
115
6.2.4 UART的波特率发生器
116
6.2.5 UART与PC通信编程实现
116
6.3 外部中断编程操作
118
6.3.1 中断响应过程和返回过程
118
6.3.2 外部中断编程实现
118
6.4 看门狗测试代码的编写
120
6.4.1 看门狗的工作原理
120
6.4.2 S3C2410微处理器的看门狗
121
6.4.3 S3C2410微处理器的看门狗编程实现
121
6.5 利用定时器产生PWM编程实验
123
6.6 S3C2410微处理器的启动代码实验
124
6.7 S3C2410微处理器的RTC编程实验
134
6.7.1 RTC的简单介绍
134
6.7.2 RTC的相关功能
134
6.7.3 RTC编程实现
135
6.8 S3C2410微处理器的IIC总线实验
136
6.8.1 IIC总线实现原理
137
6.8.2 IIC总线编程实现
137
6.9 Nor Flash驱动编程实现
140
6.9.1 SST39VF160的操作原理
141
6.9.2 SST39VF160编程实现
143
6.10 Nand Flash驱动编程实现
145
6.10.1 K9F1208U0M的指令
145
6.10.2 K9F1208U0M的工作原理
145
6.10.3 Nand Flash编程实现
146
6.11 本章小结
149
第2篇 嵌入式Linux系统讲解篇
第7章 嵌入式操作系统的整体介绍
150
7.1 嵌入式操作系统简介
150
7.1.1 嵌入式操作系统的发展阶段
150
7.1.2 嵌入式操作系统的优势
151
7.1.3 嵌入式操作系统的分类
151
7.2 常见的嵌入式操作系统
152
7.2.1 VxWorks嵌入式操作系统
152
7.2.2 pSOS嵌入式操作系统
153
7.2.3 Palm OS嵌入式操作系统
153
7.2.4 QNX嵌入式操作系统
154
7.2.5 Windows CE嵌入式操作系统
154
7.2.6 uC/OS-II嵌入式操作系统
155
7.2.7 Linux嵌入式操作系统
155
7.3 嵌入式操作系统的结构
157
7.4 嵌入式操作系统的功能
158
7.4.1 进程管理功能
158
7.4.2 内存管理功能
160
7.4.3 文件管理功能
162
7.4.4 设备管理功能
163
7.5 本章小结
164
第8章 走进Linux操作系统
165
8.1 Ubuntu操作系统的安装
165
8.1.1 Ubuntu系统的简介
165
8.1.2 虚拟机向导的配置
165
8.1.3 Ubuntu系统的安装
169
8.2 Ubuntu操作系统的相关操作命令
172
8.2.1 Ubuntu系统的root用户
172
8.2.2 Ubuntu系统的常用命令
173
8.3 本章小结
203
第9章 Linux系统中构建交叉开发环境
204
9.1 交叉开发环境简介
204
9.1.1 交叉开发环境模型
204
9.1.2 上位机与下位机的连接方式
205
9.2 交叉开发环境的搭建
207
9.2.1 Linux系统的网络配置
207
9.2.2 关于apt-get工具软件的介绍
209
9.2.3 Minicom的安装与配置
209
9.2.4 FTP服务的安装、配置与启动
213
9.2.5 SSH服务的安装、配置与启动
213
9.2.6 NFS服务的安装、配置与启动
214
9.2.7 交叉工具链的安装与配置
215
9.3 Windows系统的实用软件介绍
220
9.3.1 远程登录Linux系统工具SecureCRT
220
9.3.2 Windows与Linux之间的文件传输软件CuteFTP
222
9.3.3 Windows系统的代码阅读/编辑工具SI
223
9.3.4 Windows系统的TFTP服务器软件TFTP32
226
9.3.5 Windows系统的DNW软件
226
9.4 Linux系统的实用软件介绍
228
9.4.1 VI编辑器
228
9.4.2 gedit编辑器
230
9.4.3 Eclipse软件的安装
230
9.4.4 Eclipse CDT开发C程序
232
9.5 本章小结
234
第10章 Linux系统的裸机程序开发
235
10.1 Linux系统的裸机程序开发简介
235
10.1.1 代码的编译方式
235
10.1.2 make工程管理器简介
235
10.2 Linux系统的编译器
236
10.2.1 gcc与arm-linux-gcc简介
236
10.2.2 gcc工具的实例操作
237
10.2.3 gcc工具的编译细节分析
240
10.2.4 arm-linux-gcc及相关工具的应用
241
10.3 Makefile工程文件的应用
246
10.3.1 Makefile文件的简单介绍
246
10.3.2 如何编写Makefile文件
247
10.3.3 如何执行Makefile文件
250
10.4 Linux系统的裸机程序开发示例
251
10.5 本章小结
257
第11章 Bootloader的移植
258
11.1 Bootloader的简单介绍
258
11.1.1 Bootloader的认识
258
11.1.2 Bootloader的通信方式
259
11.1.3 Bootloader的结构介绍
259
11.1.4 常见的Bootloader
267
11.2 Vivi进行Linux引导
267
11.2.1 Vivi的结构介绍
268
11.2.2 Vivi的工作流程
269
11.2.3 Vivi的移植操作
280
11.2.4 Vivi的常用操作命令
284
11.3 U-Boot源代码分析与移植操作
286
11.3.1 U-Boot的特性介绍
286
11.3.2 U-Boot的源代码结构分析
287
11.3.3 U-Boot的启动过程
288
11.3.4 U-Boot的移植
295
11.3.5 U-Boot的编译操作
308
11.3.6 U-Boot的命令操作
312
11.4 本章小结
315
第12章 Linux内核的裁剪与移植
316
12.1 Linux内核的版本号与内核结构
316
12.1.1 Linux内核的版本号
316
12.1.2 Linux内核结构
317
12.2 Linux2.6内核的特点
318
12.3 Linux2.6内核的源代码结构
318
12.3.1 Linux源代码的准备工作
319
12.3.2 Linux源代码结构的分析
319
12.3.3 Linux源代码中的Makefile文件
320
12.4 Linux2.6内核的移植
328
12.4.1 Linux内核的启动过程
329
12.4.2 Linux内核启动代码的分析
330
12.4.3 Linux内核源代码的修改
342
12.4.4 Linux内核的配置
346
12.4.5 Linux内核的编译、烧写与启动
357
12.5 YAFFS文件系统的移植
358
12.6 本章小结
361
第13章 Linux内核调试技术的实现
362
13.1 内核态下的打印函数printk()
362
13.1.1 printk()函数的简介及使用方法
362
13.1.2 printk()函数的源代码分析
364
13.1.3 控制台的相关源代码分析
367
13.1.4 命令行参数
368
13.2 利用printk()打印信息调试内核
369
13.3 利用Linux的/proc文件系统调试内核
371
13.4 利用Oops消息调试内核
375
13.4.1 Oops消息的内容
375
13.4.2 栈回溯信息的直观显示
376
13.4.3 对Linux内核进行调试
377
13.4.4 Oops消息中的栈信息分析
380
13.5 利用KGDB远程调试内核
382
13.5.1 KGDB的介绍
382
13.5.2 向内核中增加KGDB调试器
384
13.5.3 在开发机上利用DDD与GDB调试内核
388
13.6 本章小结
391
第14章 Linux系统的文件系统
392
14.1 Nand/Nor Flash存储设备
392
14.1.1 Nand Flash存储设备
392
14.1.2 Nor Flash存储设备
394
14.1.3 Nand Flash和Nor Flash的区别
394
14.1.4 MTD技术简介
395
14.2 Linux系统的文件系统概述及分类
395
14.2.1 文件系统概述
396
14.2.2 文件系统分类
396
14.3 Linux系统的根文件系统
406
14.3.1 根文件系统的目录结构概述
406
14.3.2 文件属性分析
411
14.4 Busybox的移植操作
413
14.4.1 Busybox的简单概述
413
14.4.2 内核和Busybox的init进程
413
14.4.3 Busybox的配置
417
14.4.4 Busybox的编译与安装
422
14.5 构建Linux系统的根文件系统
422
14.5.1 glibc库文件的安装
423
14.5.2 完善根文件系统的构建
423
14.5.3 根文件系统其他目录的构建
426
14.5.4 YAFFS文件系统的制作
426
14.5.5 JFFS2文件系统的制作
430
14.6 本章小结
431
第15章 Linux系统的系统管理
432
15.1 存储系统管理
432
15.1.1 进程的虚拟内存空间
432
15.1.2 虚拟内存空间的映射与地址转换实现
434
15.1.3 虚拟内存空间的管理方式与Zone区域
435
15.1.4 分配/回收内存页面与slab分配器
438
15.1.5 申请/释放虚拟内存
438
15.2 中断与系统调用
439
15.2.1 中断与系统调用概述
440
15.2.2 tasklet机制的介绍
441
15.2.3 系统调用机制的实现
447
15.2.4 fork()系统调用介绍
449
15.3 文件系统管理
451
15.3.1 文件与目录简单概述
452
15.3.2 虚拟文件系统
453
15.3.3 VFS的4个主要数据结构
454
15.4 设备管理
463
15.4.1 设备与设备的管理功能
463
15.4.2 I/O设备管理
464
15.5 本章小结
470
第16章 Linux系统的Shell编程实现
471
16.1 Linux系统的Shell编程规则简介
471
16.2 Linux系统的Shell编程实现
472
16.2.1 Shell程序中的变量赋值和引用
472
16.2.2 Shell程序中的键盘输入实现
474
16.2.3 使用VI编辑器编写Shell脚本
476
16.2.4 如何修改脚本文件的访问权限
477
16.2.5 Shell脚本程序的执行方式
477
16.3 Shell脚本程序中的参数及函数
478
16.3.1 位置参数
478
16.3.2 内部参数
479
16.3.3 特殊符号
480
16.3.4 帮助命令
481
16.4 Shell脚本程序中的表达式
482
16.4.1 字符串操作符
483
16.4.2 数字的比较
484
16.4.3 逻辑操作符
484
16.4.4 文件操作符
485
16.5 Shell脚本程序中的循环结构
486
16.5.1 for循环语句的使用
486
16.5.2 while循环语句的使用
487
16.5.3 until循环语句的使用
488
16.6 Shell脚本程序中的条件结构
488
16.6.1 if条件语句的使用
488
16.6.2 case条件语句的使用
489
16.7 Shell程序中函数与脚本的调用
490
16.7.1 函数的编写与调用
490
16.7.2 脚本的调用
491
16.8 本章小结
491
第3篇 Linux系统的实验篇
第17章 Linux系统的设备驱动开发基础
492
17.1 Linux系统的驱动程序概述
492
17.1.1 驱动程序的调用关系
492
17.1.2 驱动程序的分类及作用
493
17.1.3 硬件设备的识别与驱动代码的开发流程
494
17.1.4 硬件设备的控制方式
495
17.2 Linux系统的硬件设备驱动开发流程及示例
495
17.2.1 构建一个简单的驱动代码模块
495
17.2.2 虚拟字符设备驱动的测试
498
17.2.3 LED驱动开发
504
17.3 Linux系统的硬件设备驱动开发相关技术
510
17.3.1 并发控制原理
510
17.3.2 并发控制的相关函数
510
17.3.3 并发控制示例
513
17.3.4 设备驱动程序中的阻塞与非阻塞
516
17.3.5 设备驱动程序中的poll函数应用
520
17.3.6 设备驱动程序中的中断处理应用
522
17.3.7 设备驱动代码中关于内存与I/O操作的应用
524
17.4 Linux系统的块设备的驱动程序编写
529
17.4.1 块设备的I/O操作
529
17.4.2 与块设备相关的结构体及函数
530
17.4.3 块设备驱动代码编写的相关技术
535
17.5 本章小结
541
第18章 Linux系统的硬件设备驱动编写实验
542
18.1 按键设备的驱动开发
542
18.2 虚拟块设备的驱动开发
550
18.3 网口设备的驱动开发
560
18.4 LCD设备的驱动开发
565
18.5 SD卡设备的驱动开发
568
18.6 USB设备的驱动开发
570
18.7 本章小结
572


 从ARM9到Linux系统设计与开发直通车下载



发布书评

 
 


 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024