搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
ARM嵌入式Linux系统开发详解
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787302207290
  • 作      者:
    弓雷等编著
  • 出 版 社 :
    清华大学出版社
  • 出版日期:
    2010
收藏
编辑推荐
  一线技术人员全力打造,分享嵌入式开发技术盛宴!
  《ARM嵌入式Linux系统开发详解》以主流的ARM 9硬件平台为基础,结合大量的应用实例,从初学者的角度出发,全面、系统也阐述了嵌入式Linux统开发所涉及的方方面面知识。
  《ARM嵌入式Linux系统开发详解》先对嵌入式系统开发的基本概念和软硬件平台进行了必要介绍,然后进一步分析了ARM处哩器的体系结构及功能特点
  《ARM嵌入式Linux系统开发详解》比较详细地介绍了Linux系统的文件操作、内存管理、网络通信、串口通信、多进程与多线程开发,Qt编程等内容另外,《ARM嵌入式Linux系统开发详解》对Linux系统的软件管理也作了必要介绍。
  《ARM嵌入式Linux系统开发详解》结合典型实例,深入剖析了Bootloader功能及移植方法、Linux文件系统工作原理、嵌入式Linux启动流程、Linux内核结构及移植方法等内容,《ARM嵌入式Linux系统开发详解》结合字符设备驱动开发、DM9000网络适配器驱动开发、NOR FIash设备驱动开发、NANDFlash设备驱动开发、USB驱动开发5个典型案例,介绍了Linux嵌入式驱动开发的相关技术。
  《ARM嵌入式Linux系统开发详解》作者长期致力于嵌入式Linux系统的开发和研究,有丰富的开发经验和独到见解。《ARM嵌入式Linux系统开发详解》总结了他多年的嵌入式Linux系统开发的经验
  特别提示
  《ARM嵌入式Linux系统开发详解》适合培训机构和大中专院校作为教材使用  为了方便教学,《ARM嵌入式Linux系统开发详解》专门配备了教学PPT。需
  要的老师诘发电子邮件至bookservice2008@163 com索取索取时请提供身份信息
  超值、大容量DVD光盘
  9小时多媒体语音教学视频
  《ARM嵌入式Linux系统开发详解》源文件
  Ubuntu安装光盘的镜像文件(赠送)
  34.5小时inux专题讲座视频(赠送)
  由浅入深:从嵌入式系统的软硬件开始讲解,逐步深入到实际开发
  内容全面:涵盖嵌入式Linux系统开发的大部分知识点和典型应用
  注重原理:对每个知识点都从概念和基本原理进行详细、透彻的分析
  实践性强:结合实际应用,讲解时列举了大量典型示例和应用实例
  重点突出:着重介绍了Bootloader功能及移植、Linux内核及移植等内容
  兼顾难度:结合5个典型案例,介绍了Linux嵌入式驱动开发技术
  视频讲解:专门录制了9小时多媒体教学视频讲鳃书中的重点内容
  由浅入深,全面解析基于ARM体系结构的嵌入式Linux系统开发.
  抽丝剥茧,采用典型实例,剖析嵌入式开发的技术原理及开发过程
  9小时多媒体语音教学视频
  赠送Ubuntu光盘安装文件
  赠送34.5小时Linux专题讲座视频
  感谢ChjnaUnix.net技术社区对本系列图书的支持!
  ChinaUnix.net是一个以讨论操作系统、软件开发、数据库技术、网络技术及服务器存储等技术为主的大型IT技术社区网站。ChjnaUnix.net的宗旨是给所有爱好IT技术、开源技术的朋友提供一个自由、开放和免费的交流空间。ChinaUniX.net的目标是建成中国最好的开源技术共享社区,为宣传和推动开源技术及自由软件在中国的应用发展做出贡献。
展开
作者简介
  弓雷 在电信行业从事嵌入式系统软件开发5年。致力于计算机操作系统内核及底层技术的研究。技术涉猎广泛,擅长计算机通信技术。熟悉Intel IXA架构网络处理器、ARM体系结构、MIPS体系结构、TCP/IP网络协议栈。曾经移植过Linux 2.6内核到嵌入式设备。曾经参与研发某部队火控武器通信系统、无人驾驶汽车项目通信系统及10GE/POS骨干网流量管理系统。目前担任嵌入式软件研发工程师和微码软件研发工程师,从事某公司骨干网P2P流量管理设备的研发。
展开
内容介绍
  嵌入式系统是目前最流行的计算机应用技术之一。《ARM嵌入式Linux系统开发详解》由浅入深地讲解基于ARM体系结构的嵌入式Linux系统开发,内容包括嵌入式系统的基本概念、应用领域等基础知识;ARM处理器的体系结构和功能特点;Linux系统内核结构和移植方法、Bootloader功能和移植;Linux应用程序开发,包括如何操作文件、管理内存、访问串口、多线程和多进程技术,并且剖析了应用程序的结构和工作流程;Linux系统设备驱动程序开发,包括如何编写内核模块、驱动程序分类和功能特点,并且给出了网络设备驱动、Flash设备驱动和USB设备驱动的实例分析。
  《ARM嵌入式Linux系统开发详解》附带1张DVD光盘,内容为专门为《ARM嵌入式Linux系统开发详解》录制的9小时视频、《ARM嵌入式Linux系统开发详解》涉及的源代码、Ubuntu安装光盘的镜像文件和另外赠送的35小时Linux专题学习视频。
  《ARM嵌入式Linux系统开发详解》适合广大从事嵌入式Linux系统开发人员、对嵌入式Linux系统开发有兴趣的计算机爱好者,以及大中专院校学生阅读。
展开
精彩书摘
  计算机是由硬件系统和软件系统两大部分组成。按照功能又可以划分为指令系统、存储系统、输入输出系统等。计算机体系结构简单地说就是研究计算机各系统和组成部分结构的一门学问。计算机从诞生到现在的时间仅有半个世纪,但是计算机体系结构却有很大的发展,出现了许多的体系结构设计思想和设计方法。从存储结构来说可以把计算机体系分成冯诺依曼结构和哈佛结构。
  冯·诺依曼结构是以数学家John Von Neumann的名字命名的,他最早提出了该构想。该结构把计算机分成了运算器、控制器、存储器、输入设备和输出设备5个部分。它的工作原理是把让计算机工作的指令(也可理解为程序)存储在存储器内,工作的流程是从存储器取出指令,由运算器运算指令,控制器负责处理输入设备和输出设备。
  冯·诺依曼结构奠定了现代计算机的基础,但是其自身也存在许多缺点。最突出的表现是,数据和指令存放在一起,运算器在取指令的时候不能同时取数据,造成工作流程上的延迟,运算效率不高。为了解决这个问题,出现了哈佛结构。
  哈佛结构最大的特点就是把指令和数据分开存储。控制器可以先读取指令,然后交给运算器解码,得到数据地址后,控制器读取数据交给运算器;在运算器运算的时候,控制器可以读取下一条指令或者数据。这种把指令和数据分开存储的方式可以获得较高的执行效率。另外,分开存储可以使指令和数据使用不同的数据宽度,方便了芯片的设计。在嵌入式系统中,大多数的处理器都使用哈佛结构,如常见的ARM处理器以及一些单片机等。
展开
目录
第1篇 Linux嵌入式开发基础篇.
第1章 嵌入式系统入门 2
1.1 什么是嵌入式系统 2
1.2 嵌入式系统应用领域 2
1.2.1 家用电器 2
1.2.2 交通工具 3
1.2.3 公共电子设施 3
1.3 嵌入式系统发展 4
1.3.1 嵌入式微控制器 4
1.3.2 嵌入式微处理器 5
1.3.3 未来嵌入式系统发展的方向 6
1.4 典型的嵌入式系统组成 6
1.5 小结 7

第2章 嵌入式软硬件系统 8
2.1 电路基本知识 8
2.1.1 什么是模拟电路 8
2.1.2 什么是数字电路 8
2.1.3 数制转换 9
2.2 计算机组成原理 10
2.2.1 计算机体系的发展 10
2.2.2 中央处理器 10
2.2.3 存储系统 11
2.2.4 总线系统 12
2.2.5 输入输出系统 12
2.3 软件基础知识 12
2.3.1 什么是软件 13
2.3.2 软件开发流程 13
2.3.3 常见的软件开发模型 14
2.3.4 计算机编程语言 14
2.3.5 数据结构 15
2.4 操作系统知识 15
2.4.1 什么是操作系统 16
2.4.2 操作系统的发展历史 16
2.4.3 操作系统由什么组成 16
2.4.4 几种操作系统的设计思路 17
2.4.5 操作系统分类 17
2.5 小结 18

第3章 ARM处理器 19
3.1 微处理器和微控制器 19
3.2 ARM处理器介绍 19
3.2.1 ARM微处理器的应用领域 20
3.2.2 ARM的功能特点 20
3.3 ARM指令集 21
3.3.1 算术运算指令 21
3.3.2 逻辑运算指令 22
3.3.3 分支指令 23
3.3.4 数据传送指令 23
3.4 ARM的结构 24
3.4.1 ARM体系结构的命名方法 24
3.4.2 处理器系列划分 25
3.4.3 处理器工作模式 25
3.4.4 存储系统 26
3.4.5 寻址方式 27
3.5 ARM的功能选型 29
3.5.1 ARM的选型原则 29
3.5.2 几种常见的ARM核处理器选型参考 32
3.6 小结 32

第4章 嵌入式Linux 33
4.1 常见的嵌入式操作系统 33
4.1.1 VxWorks 33
4.1.2 Windows CE 34
4.1.3 PalmOS 34
4.1.4 Symbian 34
4.2 嵌入式Linux操作系统 34
4.2.1 什么是Linux 35
4.2.2 Linux与UNIX的不同——GPL版权协议介绍 35
4.2.3 Linux发行版 36
4.2.4 常见的嵌入式Linux系统 37
4.3 小结 37

第5章 建立软件开发环境 38
5.1 独立的Linux系统 38
5.1.1 安装Ubuntu Linux 38
5.1.2 关键一步——系统的网络设置 46
5.1.3 其他必要的设置 46
5.1.4 怎样安装卸载软件 48
5.1.5 怎样配置系统服务 48
5.1.6 安装主要的开发工具 48
5.1.7 安装其他的开发工具和文档 49
5.2 运行在Windows上的Linux系统 50
5.2.1 什么是Cygwin 50
5.2.2 如何安装Cygwin 50
5.2.3 安装开发环境 54
5.3 Linux常用工具 54
5.3.1 Linux shell和常用命令 55
5.3.2 文本编辑工具vi 56
5.3.3 搜索工具find和grep 57
5.3.4 FTP工具 61
5.3.5 串口工具minicom 63
5.4 Windows常用工具 65
5.4.1 代码编辑管理工具Source Insight 65
5.4.2 串口工具XShell 71
5.5 ARM集成开发环境ADS 72
5.5.1 ADS集成开发环境介绍 73
5.5.2 配置ADS调试环境 73
5.5.3 建立自己的工程 75
5.6 小结 78

第6章 第一个Linux应用程序 79
6.1 向世界问好——Hello,World! 79
6.1.1 用vi编辑源代码文件 79
6.1.2 用gcc编译程序 80
6.1.3 执行程序 80
6.2 程序背后做了什么 80
6.2.1 程序执行的过程 81
6.2.2 窥视程序执行中的秘密 82
6.2.3 动态库的作用 83
6.3 程序如何来的——编译的全部过程 84
6.3.1 编译源代码 84
6.3.2 连接目标文件到指定的库 85
6.4 更简单的办法——用Makefile管理工程 86
6.4.1 什么是Makefile 87
6.4.2 它是如何工作的 87
6.4.3 如何使用Makefile 87
6.4.4 好的源代码管理习惯 88
6.5 小结 88

第2篇 Linux嵌入式开发应用篇
第7章 Linux应用程序编程基础 90
7.1 内存管理和使用 90
7.1.1 堆和栈的区别 90
7.1.2 内存管理函数malloc()和free() 93
7.1.3 实用的内存分配函数calloc()和realloc() 93
7.1.4 内存管理编程实例 94
7.2 ANSI C文件管理 97
7.2.1 文件指针和流 97
7.2.2 存储方式 98
7.2.3 标准输入、标准输出和标准错误 98
7.2.4 缓冲 98
7.2.5 打开关闭文件 99
7.2.6 读写文件 100
7.2.7 文件流定位 103
7.2.8 ANSI C文件编程实例 103
7.3 POSIX文件I/O编程 104
7.3.1 底层的文件I/O操作 104
7.3.2 文件描述符 104
7.3.3 创建/打开/关闭文件 105
7.3.4 读写文件内容 108
7.3.5 文件内容定位 109
7.3.6 修改已打开文件的属性 110
7.3.7 POSIX文件编程实例 110
7.4 小结 112

第8章 开发多进程/线程程序 113
8.1 多进程开发 113
8.1.1 什么是进程 113
8.1.2 进程环境和属性 114
8.1.3 创建进程 115
8.1.4 等待进程结束 117
8.1.5 退出进程 118
8.1.6 常用进程间通信的方法 120
8.1.7 进程编程实例 124
8.2 多线程开发 125
8.2.1 线程的概念 126
8.2.2 进程和线程对比 126
8.2.3 创建线程 127
8.2.4 取消线程 128
8.2.5 等待线程 129
8.2.6 使用pthread库线程操作实例 129
8.3 小结 131

第9章 网络通信应用 132
9.1 网络通信基础 132
9.1.1 TCP/IP协议族 132
9.1.2 IP协议 133
9.1.3 TCP协议 135
9.1.4 UDP协议 135
9.1.5 学习分析协议的方法 135
9.2 Socket通信基本概念 137
9.2.1 创建socket对象 138
9.2.2 面向连接的Socket通信实现 138
9.2.3 面向连接的Echo服务编程实例 140
9.2.4 无连接的Socket通信实现 144
9.2.5 无连接的时间服务编程实例 145
9.3 Socket高级应用 148
9.3.1 Socket超时处理 148
9.3.2 使用Select机制处理多连接 149
9.3.3 使用Poll机制处理多连接 151
9.3.4 多线程环境Socket编程 152
9.4 小结 152

第10章 串行口通信编程 154
10.1 串口介绍 154
10.1.1 什么是串口 154
10.1.2 串口工作原理 154
10.1.3 串口流量控制 155
10.2 开发串口应用程序 156
10.2.1 操作串口需要用到的头文件 156
10.2.2 串口操作方法 157
10.2.3 串口属性设置 157
10.2.4 与Windows串口终端通信 161
10.3 串口应用实例——手机短信发送 163
10.3.1 PC与手机连接发送短信的物理结构 164
10.3.2 AT指令介绍 164
10.3.3 GSM AT指令集 165
10.3.4 PDU编码方式 165
10.3.5 建立与手机的连接 167
10.3.6 使用AT指令发送短信 167
10.4 小结 171

第11章 嵌入式GUI程序开发 172
11.1 Linux GUI介绍 172
11.1.1 Linux GUI的发展 172
11.1.2 常见的嵌入式GUI 173
11.2 开发图形界面程序 174
11.2.1 安装Qt开发环境 174
11.2.2 建立简单的Qt程序 176
11.2.3 Qt库编程结构 178
11.3 深入Qt编程 179
11.3.1 使用Widget 179
11.3.2 对话框程序设计 181
11.3.3 信号与槽系统 185
11.4 移植Qtopia到ARM开发板 186
11.4.1 需要的资源 186
11.4.2 准备工作 187
11.4.3 编译主机Qt工具 187
11.4.4 交叉编译qtopia 189
11.5 小结 190

第12章 软件项目管理 191
12.1 源代码管理 191
12.1.1 什么是软件的版本 191
12.1.2 版本控制的概念 192
12.2 版本控制系统Subversion 193
12.2.1 在Linux系统下使用Subversion服务端 193
12.2.2 在Windows系统下使用TortoiseSVN客户端 195
12.3 开发文档管理——常见的开发文档 199
12.3.1 可行性研究报告 200
12.3.2 项目开发计划 200
12.3.3 软件需求说明书 200
12.3.4 概要设计 200
12.3.5 详细设计 200
12.3.6 用户手册 201
12.3.7 其他文档 201
12.4 使用trac管理软件开发文档 201
12.4.1 安装trac 201
12.4.2 配置trac基本设置 202
12.4.3 配置trac全局脚本 204
12.4.4 设置trac的Web界面 205
12.5 Bug跟踪系统 208
12.5.1 Bug管理的概念和作用 208
12.5.2 使用Bugzilla跟踪Bug 208
12.6 小结 211

第3篇 Liux系统篇
第13章 ARM体系结构及开发实例 214
13.1 ARM体系结构介绍 214
13.1.1 ARM体系结构 214
13.1.2 ARM指令集介绍 215
13.2 编程模型 216
13.2.1 数据类型 216
13.2.2 处理器模式 216
13.2.3 寄存器 217
13.2.4 通用寄存器 217
13.2.5 程序状态寄存器 219
13.2.6 异常处理 219
13.2.7 内存和内存I/O映射 220
13.3 内存管理单元 221
13.3.1 内存管理介绍 221
13.3.2 内存访问顺序 222
13.3.3 地址翻译过程 222
13.3.4 访问权限 223
13.4 常见接口和控制器 223
13.4.1 GPIO接口 223
13.4.2 中断控制器 224
13.4.3 RTC控制器 224
13.4.4 看门狗定时器 225
13.4.5 试验:使用GPIO点亮LED 226
13.5 小结 227

第14章 深入Bootloader 228
14.1 初识Bootloader 228
14.1.1 PC(个人电脑)上的Bootloader 228
14.1.2 什么是嵌入式系统的Bootloader 229
14.1.3 嵌入式系统常见的Bootloader 229
14.2 U-Boot分析 230
14.2.1 获取U-Boot 230
14.2.2 U-Boot工程结构分析 230
14.2.3 U-Boot总体工作流程 232
14.3 U-Boot启动流程分析 233
14.3.1 _start标号 233
14.3.2 reset标号 235
14.3.3 cpu_init_crit标号 237
14.3.4 lowlevel_init标号 238
14.3.5 relocate标号 239
14.3.6 start_armboot()函数 240
14.3.7 main_loop()函数 244
14.4 移植U-Boot到开发板 248
14.4.1 U-Boot移植的一般步骤 248
14.4.2 移植U-Boot到目标开发板 249
14.4.3 移植U-Boot的常见问题 250
14.5 小结 251

第15章 解析Linux内核 252
15.1 基本知识 252
15.1.1 什么是Linux内核 252
15.1.2 Linux内核版本 253
15.1.3 如何获取Linux内核代码 253
15.1.4 编译内核 253
15.2 Linux内核的子系统 260
15.2.1 系统调用接口 260
15.2.2 进程管理子系统 261
15.2.3 内存管理子系统 262
15.2.4 虚拟文件系统 263
15.2.5 网络堆栈 264
15.2.6 设备驱动 265
15.2.7 依赖体系结构的代码 266
15.3 Linux内核代码的工程结构 266
15.3.1 源代码目录布局 266
15.3.2 几个重要的Linux内核文件 267
15.4 内核编译系统 268
15.4.1 内核编译系统基本架构 269
15.4.2 内核顶层Makefile分析 269
15.4.3 内核编译文件分析 274
15.4.4 目标文件清除机制 278
15.4.5 编译辅助程序 279
15.4.6 KBuild变量 281
15.5 小结 282

第16章 嵌入式Linux启动流程 283
16.1 Linux内核初始化流程 283
16.2 PC的初始化流程 284
16.2.1 PC BIOS功能和作用 284
16.2.2 硬盘的数据结构.. 285
16.2.3 完整的初始化流程 286
16.3 嵌入式系统的初始化 286
16.4 Linux内核初始化 287
16.4.1 解压缩内核映像 287
16.4.2 进入内核代码 289
16.5 启动init内核进程 291
16.6 根文件系统初始化 292
16.6.1 根文件系统介绍 292
16.6.2 挂载虚拟文件系统 294
16.7 内核交出权限 300
16.8 init进程 300
16.9 初始化RAM Disk 301
16.9.1 RAM Disk介绍 301
16.9.2 如何使用RAM Disk 302
16.9.3 实例:使用RAM Disk作为根文件系统 302
16.10 小结 303

第17章 Linux文件系统 304
17.1 Linux文件管理 304
17.1.1 文件和目录的概念 304
17.1.2 文件的结构 305
17.1.3 文件的类型 305
17.1.4 文件系统的目录结构 307
17.1.5 文件和目录的存取权限 308
17.1.6 文件系统管理 310
17.2 Linux文件系统原理 311
17.2.1 非日志文件系统 311
17.2.2 日志文件系统 311
17.3 常见的Linux文件系统 312
17.3.1 ext2文件系统 312
17.3.2 ext3文件系统 315
17.3.3 ReiserFS文件系统 315
17.3.4 JFFS文件系统 316
17.3.5 cramfs文件系统 318
17.4 其他文件系统 319
17.4.1 网络文件系统 319
17.4.2 /proc影子文件系统 320
17.5 小结 323

第18章 建立交叉编译工具链 324
18.1 什么是交叉编译 324
18.2 需要哪些东西 325
18.3 手工创建工具链 325
18.3.1 准备工作——获取源代码 326
18.3.2 开始了——建立工作环境 326
18.3.3 建立Linux内核头文件 327
18.3.4 编译安装binutils 330
18.3.5 编译安装gcc的C编译器 331
18.3.6 编译安装glibc库 332
18.3.7 编译安装gcc的C、C++编译器 333
18.3.8 最后的工作 334
18.4 使用脚本创建工具链 334
18.5 更简便的方法——获取已编译好的交叉编译环境 336
18.6 小结 336

第19章 强大的命令系统BusyBox 337
19.1 BusyBox简介 337
19.1.1 简单易懂的BusyBox 337
19.1.2 BusyBox工作原理 338
19.1.3 安装BusyBox 339
19.2 交叉编译BusyBox 341
19.3 使用BusyBox 343
19.3.1 BusyBox初始化 344
19.3.2 目标板BusyBox安装 346
19.4 小结 348

第20章 Linux内核移植 349
20.1 Linux内核移植要点 349
20.2 平台相关代码结构 350
20.3 建立目标平台工程框架 351
20.3.1 加入编译菜单项 352
20.3.2 设置宏与代码文件的对应关系 352
20.3.3 测试工程框架 353
20.4 建立目标平台代码框架 354
20.4.1 ARM处理器相关结构 354
20.4.2 建立machine_desc结构 356
20.4.3 加入处理函数 356
20.4.4 加入定时器结构 357
20.4.5 测试代码结构 357
20.5 构建目标板代码 357
20.5.1 处理器初始化 358
20.5.2 端口映射 360
20.5.3 中断处理 361
20.5.4 定时器处理 361
20.5.5 编译最终代码 361
20.6 小结 362

第21章 内核和应用程序调试技术 363
21.1 使用GDB调试应用程序概述 363
21.2 基本的调试技术 363
21.2.1 列出源代码 366
21.2.2 断点管理 368
21.2.3 执行程序 370
21.2.4 显示程序变量 370
21.2.5 信号管理 371
21.2.6 调试实例 371
21.3 多进程调试 372
21.4 调试意外终止的程序 374
21.5 内核调试技术 376
21.5.1 printk打印调试信息 376
21.5.2 使用/proc虚拟文件系统 377
21.5.3 使用KDB调试工具 379
21.5.4 KDB调试指令 382
21.6 小结 384

第4篇 Linux嵌入式驱动开发篇
第22章 Linux设备驱动 386
22.1 设备驱动介绍 386
22.2 Linux内核模块 386
22.2.1 内核模块简介 387
22.2.2 内核模块的结构 387
22.2.3 内核模块的加载和卸载 388
22.2.4 编写一个基本的内核模块 389
22.2.5 编译内核模块 390
22.2.6 为内核模块添加参数 391
22.3 Linux设备驱动 392
22.3.1 PCI局部总线介绍 392
22.3.2 Linux设备驱动基本概念 393
22.3.3 字符设备 394
22.3.4 块设备 396
22.3.5 网络设备 396
22.4 字符设备驱动开发实例 396
22.4.1 开发一个基本的字符设备驱动 397
22.4.2 测试字符设备驱动 399
22.5 小结 400

第23章 网络设备驱动程序 401
23.1 网络基础知识 401
23.1.1 ISO/OSI网络参考模型 401
23.1.2 TCP/IP协议 402
23.2 以太网基础 404
23.2.1 工作原理 405
23.2.2 常见以太网标准 405
23.2.3 拓扑结构 406
23.2.4 工作模式 406
23.3 网卡工作原理 407
23.4 内核网络分层结构 408
23.4.1 内核网络结构 408
23.4.2 与网络有关的数据结构 409
23.4.3 内核网络部分的全局变量 410
23.5 内核网络设备驱动框架 411
23.5.1 net_device结构 411
23.5.2 数据包接收流程 413
23.5.3 数据包发送流程 415
23.6 实例:DM9000网卡驱动分析 416
23.6.1 DM9000芯片介绍 416
23.6.2 网卡驱动程序框架 416
23.6.3 DM9000网卡驱动主要数据结构 417
23.6.4 加载驱动程序 418
23.6.5 停止和启动网卡 423
23.6.6 发送数据包 425
23.6.7 接收数据包 427
23.6.8 中断和定时器处理 429
23.7 小结 431

第24章 Flash设备驱动 432
24.1 Linux Flash驱动结构 432
24.1.1 什么是MTD 432
24.1.2 MTD系统结构 433
24.2 Flash设备基础 434
24.2.1 存储原理 434
24.2.2 性能比较 435
24.3 内核MTD层 436
24.3.1 mtd_info结构 436
24.3.2 mtd_part结构 439
24.3.3 mtd_partition结构 440
24.3.4 map_info结构 440
24.3.5 nand_chip结构 442
24.4 Flash设备框架 443
24.4.1 NOR Flash设备驱动框架 443
24.4.2 NAND Flash设备驱动框架 444
24.5 Flash设备驱动实例——NOR Flash设备驱动剖析 445
24.5.1 数据结构 446
24.5.2 驱动初始化 446
24.5.3 驱动卸载 447
24.6 Flash设备驱动实例——NAND Flash设备驱动分析 448
24.6.1 S3C2440 NAND控制器介绍 448
24.6.2 数据结构 450
24.6.3 驱动初始化 450
24.6.4 驱动卸载 454
24.6.5 初始化NAND控制器 455
24.6.6 设置芯片操作 456
24.6.7 电源管理 458
24.7 小结 459

第25章 USB驱动开发 460
25.1 USB体系介绍 460
25.1.1 USB设计目标 460
25.1.2 USB体系概述 461
25.1.3 USB体系工作流程 462
25.2 USB驱动程序框架 462
25.2.1 Linux内核USB驱动框架 462
25.2.2 主机驱动结构 465
25.2.3 设备驱动结构 468
25.2.4 USB驱动程序框架 470
25.3 USB驱动实例剖析 473
25.3.1 USB串口驱动 473
25.3.2 USB键盘驱动 475
25.4 小结 478
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证