嵌入式Linux应用开发完全手册PDF电子书下载
- 电子书积分:17 积分如何计算积分?
- 作 者:韦东山编著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2008
- ISBN:9787115182623
- 页数:579 页
第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子程序调用规则ATPCS 55
第4章 Windows、Linux环境下相关工具、命令的使用 58
4.1 Windows环境下的工具介绍 58
4.1.1 代码阅读、编辑工具Source Insight 58
4.1.2 文件传输工具Cuteftp 63
4.1.3 远程登录工具SecureCRT 63
4.1.4 TFTP服务器软件Tftpd32 64
4.2 Linux环境下的工具、命令介绍 65
4.2.1 代码阅读、编辑工具KScope 65
4.2.2 远程登录工具C-kermit 69
4.2.3 编辑命令vi 69
4.2.4 查找命令grep、find命令 71
4.2.5 在线手册查看命令man 72
4.2.6 其他命令:tar、diff、patch 73
第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 存储控制器操作实例:使用SDRAM 94
6.2.1 代码详解及程序的复制、跳转过程 94
6.2.2 实例测试 97
第7章 内存管理单元MMU 98
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控制器操作实例:读Flash 135
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章 通用异步收发器UART 171
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-Boot 240
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 移植Busybox 341
17.2.1 Busybox概述 341
17.2.2 init进程介绍及用户程序启动过程 342
17.2.3 编译/安装Busybox 346
17.3 使用glibc库 350
17.3.1 glibc库的组成 350
17.3.2 安装glibc库&35 1
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 内核打印函数printk 362
18.1.1 printk的使用 362
18.1.2 串口控制台 364
18.2 内核源码级别的调试方法 366
18.2.1 内核调试工具KGDB的作用与原理 366
18.2.2 给内核添加KGDB功能支持S3C2410/S3C2440 367
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中的几种GUI 499
25.2 Qtopia移植 501
25.2.1 主机开发环境的搭建 501
25.2.2 交叉编译、安装Qtopia 2.2.0 502
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 交叉编译工具包Scratchbox 526
26.2.1 Scratchbox介绍 527
26.2.2 安装Scratchbox及编译工具 528
26.2.3 在Scratchbox里安装交叉编译工具链 529
26.2.4 安装其他开发工具 535
26.3 移植X 536
26.3.1 编译软件的基本知识 536
26.3.2 编译X的依赖软件 539
26.3.3 编译Xorg 542
26.4 移植Matchbox 547
26.4.1 下载源代码 548
26.4.2 编译Matchbox 548
26.4.3 运行、试验Matchbox 550
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、yamd 571
27.3 段错误的调试方法 573
27.3.1 使用库函数backtrace和backtrace_symbols定位段错误 573
27.3.2 段错误调试实例 574
参考文献 578
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《英汉翻译理论的多维阐释及应用剖析》常瑞娟著 2019
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《虚拟流域环境理论技术研究与应用》冶运涛蒋云钟梁犁丽曹引等编著 2019
- 《当代翻译美学的理论诠释与应用解读》宁建庚著 2019
- 《第一性原理方法及应用》李青坤著 2019
- 《高含硫气藏开发腐蚀控制技术与实践》唐永帆,张强 2018
- 《教师教育系列教材 心理学原理与应用 第2版 视频版》郑红,倪嘉波,刘亨荣编;陈冬梅责编 2020
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《微表情密码》(波)卡西亚·韦佐夫斯基,(波)帕特里克·韦佐夫斯基著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019