图书介绍
嵌入式Linux应用开发完全手册PDF|Epub|txt|kindle电子书版本下载
![嵌入式Linux应用开发完全手册](https://www.shukui.net/cover/58/31295614.jpg)
- 韦东山编著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115182623
- 出版时间:2008
- 标注页数:579页
- 文件大小:174MB
- 文件页数:595页
- 主题词:Linux操作系统-程序设计-技术手册
PDF下载
下载说明
嵌入式Linux应用开发完全手册PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1篇 嵌入式Linux开发环境构建篇第1章 嵌入式Linux开发概述2
1.1 嵌入式系统介绍2
1.1.1 嵌入式系统的定义和特点2
1.1.2 嵌入式技术的发展历史3
1.2 基于ARM处理器的嵌入式Linux系统5
1.2.1 ARM处理器介绍5
1.2.2 在嵌入式系统中选择嵌入式Linux的理由8
第2章 嵌入式Linux开发环境构建10
2.1 硬件环境构建10
2.1.1 主机与目标板结合的交叉开发模式10
2.1.2 硬件要求11
2.2 软件环境构建12
2.2.1 主机Linux操作系统的安装12
2.2.2 主机Linux操作系统上网络服务的配置与启动18
2.2.3 在主机Linux操作系统中安装基本的开发环境23
2.2.4 光盘的内容结构及安装23
2.2.5 安装交叉编译工具链25
2.2.6 书中写作风格的约定28
第3章 嵌入式编程基础知识29
3.1 交叉编译工具选项说明29
3.1.1 arm-linux-gcc选项29
3.1.2 arm-linux-ld选项38
3.1.3 arm-linux-objcopy选项41
3.1.4 arm-linux-objdump选项43
3.1.5 汇编代码、机器码和存储器的关系以及数据的表示44
3.2 Makefile介绍45
3.2.1 Makefile规则45
3.2.2 Makefile文件里的赋值方法46
3.2.3 Makefile常用函数46
3.3 常用ARM汇编指令及ATPCS规则52
3.3.1 本书使用的所有汇编指令52
3.3.2 ARM-THUMB子程序调用规则ATPCS55
第4章 Windows、Linux环境下相关工具、命令的使用58
4.1 Windows环境下的工具介绍58
4.1.1 代码阅读、编辑工具Source Insight58
4.1.2 文件传输工具Cuteftp63
4.1.3 远程登录工具SecureCRT63
4.1.4 TFTP服务器软件Tftpd3264
4.2 Linux环境下的工具、命令介绍65
4.2.1 代码阅读、编辑工具KScope65
4.2.2 远程登录工具C-kermit69
4.2.3 编辑命令vi69
4.2.4 查找命令grep、find命令71
4.2.5 在线手册查看命令man72
4.2.6 其他命令:tar、diff、patch73
第2篇 ARM9嵌入式系统基础实例篇76
第5章 GPIO接口76
5.1 GPIO硬件介绍76
5.1.1 通过寄存器来操作GPIO引脚76
5.1.2 怎样使用软件来访问硬件77
5.2 GPIO操作实例:LED和按键80
5.2.1 硬件设计80
5.2.2 程序设计及代码详解80
5.2.3 实例测试86
第6章 存储器控制87
6.1 使用存储控制器访问外设的原理87
6.1.1 S3C2410/S3C2440的地址空间87
6.1.2 存储控制器与外设的关系89
6.1.3 存储控制器的寄存器使用方法91
6.2 存储控制器操作实例:使用SDRAM94
6.2.1 代码详解及程序的复制、跳转过程94
6.2.2 实例测试97
第7章 内存管理单元MMU98
7.1 内存管理单元MMU介绍98
7.1.1 S3C2410/S3C2440 MMU特性98
7.1.2 S3C2410/S3C2440 MMU地址变换过程99
7.1.3 内存的访问权限检查107
7.1.4 TLB的作用109
7.1.5 Cache的作用110
7.1.6 S3C2410/S3C2440 MMU、TLB、Cache的控制指令113
7.2 MMU使用实例:地址映射113
7.2.1 程序设计113
7.2.2 代码详解114
7.2.3 实例测试124
第8章 NAND Flash控制器125
8.1 NAND Flash介绍和NAND Flash控制器使用125
8.1.1 Flash介绍125
8.1.2 NAND Flash的物理结构127
8.1.3 NAND Flash访问方法128
8.1.4 S3C2410/S3C2440 NAND Flash控制器介绍134
8.2 NAND Flash控制器操作实例:读Flash135
8.2.1 读NAND Flash的步骤135
8.2.2 代码详解137
第9章 中断体系结构143
9.1 S3C2410/S3C2440中断体系结构143
9.1.1 ARM体系CPU的7种工作模式143
9.1.2 S3C2410/S3C2440中断控制器146
9.1.3 中断控制器寄存器149
9.2 中断控制器操作实例:外部中断151
9.2.1 按键中断代码详解151
9.2.2 实例测试158
第10章 系统时钟和定时器159
10.1 时钟体系及各类时钟部件159
10.1.1 S3C2410/S3C2440时钟体系159
10.1.2 PWM定时器161
10.1.3 WATCHDOG定时器164
10.2 MPLL和定时器操作实例166
10.2.1 程序设计166
10.2.2 代码详解166
10.2.3 实例测试170
第11章 通用异步收发器UART171
11.1 UART原理及UART部件使用方法171
11.1.1 UART原理说明171
11.1.2 S3C2410/S3C2440 UART的特性172
11.1.3 S3C2410/S3C2440 UART的使用173
11.2 UART操作实例177
11.2.1 代码详解177
11.2.2 实例测试180
第12章 I2C接口181
12.1 I2C总线协议及硬件介绍181
12.1.1 I2C总线协议181
12.1.2 S3C2410/S3C2440 I2C总线控制器184
12.2 I2C总线操作实例187
12.2.1 I2C接口RTC芯片M41t11的操作方法187
12.2.2 程序设计188
12.2.3 设置/读取M41t11的源码详解188
12.2.4 I2C实例的连接脚本195
12.2.5 实例测试196
第13章 LCD控制器197
13.1 LCD和LCD控制器197
13.1.1 LCD显示器197
13.1.2 S3C2410/S3C2440 LCD控制器介绍199
13.2 TFT LCD显示实例210
13.2.1 程序设计210
13.2.2 代码详解210
13.2.3 实例测试221
第14章 ADC和触摸屏接口222
14.1 ADC和触摸屏硬件介绍及使用222
14.1.1 S3C2410/S3C2440 ADC和触摸屏接口概述222
14.1.2 S3C3410/S3C2440 ADC接口的使用方法224
14.1.3 触摸屏原理及接口226
14.2 ADC和触摸屏操作实例230
14.2.1 硬件设计230
14.2.2 程序设计230
14.2.3 测试ADC的代码详解230
14.2.4 测试触摸屏的代码详解232
14.2.5 实例测试237
第3篇 嵌入式Linux系统移植篇240
第15章 移植U-Boot240
15.1 Bootloader简介240
15.1.1 Bootloader的概念240
15.1.2 Bootloader的结构和启动过程241
15.1.3 常用Bootloader介绍246
15.2 U-Boot分析与移植246
15.2.1 U-Boot工程简介246
15.2.2 U-Boot源码结构247
15.2.3 U-Boot的配置、编译、连接过程249
15.2.4 U-Boot的启动过程源码分析257
15.2.5 U-Boot的移植264
15.2.6 U-Boot的常用命令288
15.2.7 使用U-Boot来执行程序292
第16章 移植Linux内核293
16.1 Linux版本及特点293
16.2 Linux移植准备294
16.2.1 获取内核源码294
16.2.2 内核源码结构及Makefile分析295
16.2.3 内核的Kconfig分析304
16.2.4 Linux内核配置选项309
16.3 Linux内核移植313
16.3.1 Linux内核启动过程概述313
16.3.2 修改内核以支持S3C2410/S3C2440开发板314
16.3.3 修改MTD分区327
16.3.4 移植YAFFS文件系统330
16.3.5 编译、烧写、启动内核333
第17章 构建Linux根文件系统335
17.1 Linux文件系统概述335
17.1.1 Linux文件系统的特点335
17.1.2 Linux根文件系统目录结构336
17.1.3 Linux文件属性介绍340
17.2 移植Busybox341
17.2.1 Busybox概述341
17.2.2 init进程介绍及用户程序启动过程342
17.2.3 编译/安装Busybox346
17.3 使用glibc库350
17.3.1 glibc库的组成350
17.3.2 安装glibc库&351
17.4 构建根文件系统352
17.4.1 构建etc目录352
17.4.2 构建dev目录354
17.4.3 构建其他目录356
17.4.4 制作/使用yaffs文件系统映象文件356
17.4.5 制作/使用jffs2文件系统映象文件360
第18章 Linux内核调试技术362
18.1 内核打印函数printk362
18.1.1 printk的使用362
18.1.2 串口控制台364
18.2 内核源码级别的调试方法366
18.2.1 内核调试工具KGDB的作用与原理366
18.2.2 给内核添加KGDB功能支持S3C2410/S3C2440367
18.2.3 结合可视化图形前端DDD和gdb来调试内核372
18.3 Oops信息及栈回溯375
18.3.1 Oops信息来源及格式375
18.3.2 配置内核使Oops信息的栈回溯信息更直观376
18.3.3 使用Oops信息调试内核的实例376
18.3.4 使用Oops的栈信息手工进行栈回溯380
第4篇 嵌入式Linux设备驱动开发篇第19章 字符设备驱动程序384
19.1 Linux驱动程序开发概述384
19.1.1 应用程序、库、内核、驱动程序的关系384
19.1.2 Linux驱动程序的分类和开发步骤385
19.1.3 驱动程序的加载和卸载387
19.2 字符设备驱动程序开发387
19.2.1 字符设备驱动程序中重要的数据结构和函数387
19.2.2 LED驱动程序源码分析389
第20章 Linux异常处理体系结构396
20.1 Linux异常处理体系结构概述396
20.1.1 Linux异常处理的层次结构396
20.1.2 常见的异常400
20.2 Linux中断处理体系结构401
20.2.1 中断处理体系结构的初始化401
20.2.2 用户注册中断处理函数的过程404
20.2.3 中断的处理过程406
20.2.4 卸载中断处理函数409
20.3 使用中断的驱动程序示例410
20.3.1 按键驱动程序源码分析410
20.3.2 测试程序情景分析415
第21章 扩展串口驱动程序移植419
21.1 串口驱动程序框架概述419
21.1.1 串口驱动程序术语介绍419
21.1.2 串口驱动程序的4层结构420
21.2 扩展串口驱动程序移植423
21.2.1 串口驱动程序低层代码分析423
21.2.2 修改代码以支持扩展串口425
21.2.3 测试扩展串口429
第22章 网卡驱动程序移植431
22.1 CS8900A网卡驱动程序移植431
22.1.1 CS8900A网卡特性431
22.1.2 CS8900A网卡驱动程序修改432
22.2 DM9000网卡驱动程序移植441
22.2.1 DM9000网卡特性441
22.2.2 DM9000网卡驱动程序修改442
第23章 IDE接口和SD卡驱动程序移植450
23.1 IDE接口驱动程序移植450
23.1.1 IDE接口相关概念介绍450
23.1.2 IDE接口驱动程序移植452
23.1.3 IDE接口驱动程序测试461
23.2 SD卡驱动程序移植464
23.2.1 SD卡相关概念介绍464
23.2.2 SD卡驱动程序移植465
23.2.3 SD卡驱动程序测试472
23.2.4 磁盘分区表473
第24章 LCD和USB驱动程序移植475
24.1 LCD驱动程序移植475
24.1.1 LCD和USB键盘驱动程序框架475
24.1.2 S3C2410/S3C2440 LCD控制器驱动程序移植479
24.2 USB驱动程序移植489
24.2.1 USB驱动程序概述489
24.2.2 配置内核支持USB键盘、USB鼠标和USB硬盘491
24.2.3 USB设备的使用492
第5篇 嵌入式Linux系统应用开发篇第25章 基于Qtopia的GUI开发496
25.1 嵌入式GUI介绍496
25.1.1 Linux桌面GUI系统的发展496
25.1.2 嵌入式Linux中的几种GUI499
25.2 Qtopia移植501
25.2.1 主机开发环境的搭建501
25.2.2 交叉编译、安装Qtopia 2.2.0502
25.2.3 开发自己的Qt GUI程序514
25.2.4 在主机上使用模拟软件开发、调试嵌入式Qt GUI程序518
第26章 基于X的GUI开发524
26.1 X Window概述524
26.1.1 X协议介绍524
26.1.2 窗口管理器(Window manager)526
26.1.3 桌面环境(Desktop environment)526
26.2 交叉编译工具包Scratchbox526
26.2.1 Scratchbox介绍527
26.2.2 安装Scratchbox及编译工具528
26.2.3 在Scratchbox里安装交叉编译工具链529
26.2.4 安装其他开发工具535
26.3 移植X536
26.3.1 编译软件的基本知识536
26.3.2 编译X的依赖软件539
26.3.3 编译Xorg542
26.4 移植Matchbox547
26.4.1 下载源代码548
26.4.2 编译Matchbox548
26.4.3 运行、试验Matchbox550
26.5 移植GTK+553
26.5.1 GTK+介绍553
26.5.2 GTK+移植553
26.6 移植基于GTK+/X的GUI程序555
26.6.1 xterm移植556
26.6.2 gtkboard移植557
26.6.3 裁剪文件系统560
第27章 Linux应用程序调试技术564
27.1 使用strace工具跟踪系统调用和信号564
27.1.1 strace介绍及移植564
27.1.2 使用strace来调试程序565
27.2 内存调试工具568
27.2.1 使用memwatch进行内存调试568
27.2.2 其他内存工具介绍:mtrace、dmalloc、yamd571
27.3 段错误的调试方法573
27.3.1 使用库函数backtrace和backtrace_symbols定位段错误573
27.3.2 段错误调试实例574
参考文献578