Linux设备驱动开发入门与编程实践PDF电子书下载
- 电子书积分:17 积分如何计算积分?
- 作 者:商斌编著
- 出 版 社:北京:电子工业出版社
- 出版年份:2009
- ISBN:9787121075650
- 页数:588 页
第1章 嵌入式Linux系统开发概述 1
1.1嵌入式系统概述 1
你身边的嵌入式系统 1
什么是嵌入式系统 4
嵌入式系统的发展 7
嵌入式系统市场规模 8
嵌入式系统发展趋势和面临的挑战 9
1.2嵌入式操作系统 10
嵌入式操作系统的特点 10
嵌入式操作系统发展概述 11
Linux操作系统特点 12
嵌入式Linux系统的特点 13
国外嵌入式Linux发展现状 16
国内嵌入式Linux发展现状 18
1.3 ARM处理器平台介绍 20
嵌入式处理器特点与分类 20
ARM处理器介绍 22
ARM体系结构 24
1.4嵌入式Linux的体系结构分析 27
嵌入式系统的体系结构 27
硬件抽象层的Linux 29
1.5基本编辑器vi的使用 31
进入和退出vi 31
vi的基本编辑命令 32
vi的高级编辑命令 35
1.6高级编辑器Emacs的使用 37
Emacs的启动与退出 38
Emacs的基本操作 39
Emacs的高级命令 41
1.7编译器GCC的使用 44
GCC简介 44
GCC的编译过程 45
GCC的常用模式 46
GCC的常用选项 47
GCC的警告功能 48
1.8调试器GDB的使用 50
GDB的调试过程 50
GDB的基本命令 52
GDB的高级命令 55
1.9 Make工程管理器 59
Make管理器简介 59
Makefile的描述规则 60
一个简单示例 61
Make如何工作 63
指定变量 64
自动推导规则 65
另类风格的Makefile 66
清除工作目录过程文件 67
1.10本章小结 68
第2章 嵌入式Linux内核分析与移植 69
2.1 Linux内核版本 69
日新月异的Linux内核版本 69
Linux 2.4内核特性 71
Linux 2.6内核针对嵌入式系统的改进 72
2.2 Linux操作系统内核结构分析 73
Linux核心源程序的文件组织结构 73
Linux的内核组成 75
Linux内核进程管理工作机制 78
Linux内存管理工作机制 81
Linux虚拟文件系统工作机制 82
进程间通信 83
2.3搭建嵌入式Linux系统开发环境 84
嵌入式平台介绍 85
嵌入式Linux系统的组成及设计步骤 86
嵌入式Linux开发工具链 87
2.4 Linux内核配置基础 89
Linux内核所支持的配置方式 90
make menuconfig配置方法 91
Linux 2.4内核配置文件config.in介绍 92
Linux2.6内核Kconfig文件的用法 93
Kconfig文件配置实例 95
2.5 Linux内核配置选项 96
General setup 96
Loadable modulesupport 99
Processor type andfeatures 100
Networking support 102
Device Drivers 102
2.6 Linux内核编译基础 121
Linux内核编译基本步骤 121
Rules.make文件用法 121
Makefile配置文件的用法 122
配置、编译Linux内核命令说明 124
Linux内核配置编译实例 125
2.7 Linux内核移植 128
Bootloader简介 129
引导程序原理 130
内核移植及代码分析 133
VIVI结构分析 137
VIVI移植实现 140
2.8本章小结 142
第3章 Linux设备驱动程序开发概述 143
3.1 Linux系统设备概述 143
字符设备 143
块设备 144
网络设备 144
Linux设备驱动程序的共性 144
3.2设备驱动程序的概念 145
3.3设备驱动程序与内核的接口 146
3.4内核为驱动程序提供的支持 147
内存分配函数 147
DMA 148
I/O端口 148
打印函数 148
3.5主要数据结构 149
struct device_struct 149
struct file_operations 149
struct inode 150
3.6模块化的概念 152
3.7内存管理问题 153
Linux内核对内存的管理方法 153
kmalloc()和kfree() 153
面向页的分配技术 154
vmalloc()和相关函数 154
3.8中断响应和处理 155
中断处理机制 155
中断处理的数据结构 156
中断处理中的3个重要概念 158
申请和释放中断 159
自动检测中断号 160
快/慢速中断处理 160
实现中断处理程序 160
驱动程序下半部的设计 163
安装共享的处理程序 164
3.9 I/O端口 164
3.10 DMA处理 165
3.11时间流 166
时钟的申请与释放 167
实现延迟 167
任务队列 168
3.12编写、编译和调试 169
3.13本章小结 172
第4章 Linux字符设备驱动程序开发 173
4.1 Linux字符设备驱动程序结构 173
4.2字符设备驱动的相似点 173
4.3主设备号和次设备号 174
4.4字符设备驱动程序的组成 175
4.5字符驱动程序模型 175
4.6可靠性机制 176
4.7文件操作 176
4.8字符设备驱动程序中用到的主要数据结构 177
4.9字符设备的注册和注销 181
4.10使用内存和读写I/O端口 182
4.11字符设备驱动程序中用到的主要函数 183
4.12 chardevxxx设备的驱动程序设计 186
4.13 Linux 2.6内核下的字符设备驱动介绍 188
cdev结构体 188
分配和释放设备号 190
file_operations结构体 190
字符设备驱动模块加载与卸载函数 193
字符设备驱动的file_operations结构体中成员 194
4.14 globalmem设备驱动 196
头文件、宏及设备结构体 196
加载与卸载设备驱动 197
读写函数 198
seek函数 200
globalmem的ioctl()函数 201
ioctl()命令 202
预定义命令 203
使用文件私有数据 203
globalmem驱动在用户空间的验证 211
4.15 本章小结 212
第5章 基于DSP的PCI图像采集卡驱动程序 213
5.1 PCI总线介绍 213
PCI总线概述 213
PCI局部总线概述 214
PCI局部总线的特点 215
PCI总线信号 216
PCI总线命令 218
PCI总线配置空间 218
PCI总线配置过程 221
PCI总线的传输控制 222
5.2 DSP图像卡的PCI接口设计 223
系统结构介绍 223
PCI2040的基本特点 224
PCI2040芯片的功能单元 224
PCI2040配置流程 225
PCI总线与DSP的接口实现 226
串行E2PROM的初始化 227
5.3 DSP图像卡驱动程序实例分析 228
主要的数据结构 228
驱动程序流程 229
初始化设备模块 230
打开设备模块 232
数据读写和控制信息模块 233
中断处理模块 233
释放设备模块 234
卸载设备模块 234
5.4本章小结 235
第6章 音频接口设计与Linux驱动程序 237
6.1嵌入式音频系统简介 237
S3C2410微处理器简介 237
S3C2410微处理器的结构框图及其特性 238
系统设计概述 239
系统时钟电路 242
S3C2410存储控制器介绍 242
SDRAM电路 243
Flash缓冲电路设计 245
NOR Flash电路 246
NAND Flash接口电路 247
IIS数字音频电路 247
串口电路 249
JTAG接口电路 249
LCD和触摸屏接口电路 250
6.2 UDA 1341 TS芯片设备驱动程序设计 251
UDA 1341 TS芯片介绍 251
驱动程序中file_operations数据结构 252
驱动程序的加载和卸载 253
6.3 SOUND驱动的实现 255
SOUND设备的打开和释放 255
定义SOUND设备的读写函数 258
SOUND设备的控制操作处理 262
SOUND设备驱动程序的其他部分 267
Mixer驱动的实现 268
6.4本章小结 270
第7章 显示设备接口设计与Linux驱动程序 271
7.1嵌入式显示系统简介 271
7.2显示驱动的基础与原理 272
时序信号 272
TFT LCD的驱动技术 272
TFT LCD驱动电路 273
像素值的属性 274
像素深度、像素值与颜色的映射关系 274
像素值与显示内存的映射关系 276
调色板的原理 276
调色板的作用 277
彩色LCD显示驱动的原理 277
7.3软、硬件平台简介 280
硬件开发平台 280
软件平台 281
软件开发环境 281
7.4基于PXA 255的显示功能的硬件实现 281
PXA 255处理器介绍 282
PXA 255的LCD控制器的特点 282
LCD控制器的使用 284
LCD控制寄存器配置 285
设定DMA通道 288
Sony彩屏的特性 289
LCD与处理器的硬件连接方案 291
7.5显示驱动开发介绍 292
显示驱动与字符设备的关系 292
显示驱动的发展 292
当前显示驱动的不足 294
7.6基于PXA 255的显示驱动的实现 294
显示驱动的系统分析 295
驱动上层文件的功能 295
驱动底层文件的功能 296
驱动程序底层文件实现的基础 298
7.7基于PXA 255的显示功能的软件方案 302
上层文件的实现 303
底层文件的实现方案 304
驱动底层文件的实现 304
针对XScale架构中其余处理器的移植 311
7.8本章小结 312
第8章 ARM Linux块设备驱动程序开发 313
8.1块设备驱动程序开发概述 313
块设备特点 313
块设备基于缓冲区的数据交换 314
块设备读写请求 315
块设备驱动程序模型 318
基于内存的块设备驱动程序 318
8.2 Linux块设备驱动结构 319
block_device_operations结构体 319
gendisk结构体 321
request与bio结构体 322
8.3块设备驱动主要函数 331
块设备驱动程序的注册与注销 331
Linux块设备驱动模块加载与卸载 332
块设备的打开与释放 334
块设备驱动的ioctl函数 335
块设备驱动I/O请求处理 336
8.4 RAMDISK驱动开发实例 340
RAMDISK的硬件原理 340
RAMDISK驱动模块加载与卸载 341
RAMDISK设备驱动block_device_operations及成员函数 343
8.5 IDE硬盘设备驱动开发实例 345
IDE硬盘设备原理 345
IDE硬盘设备驱动block_device_operations及成员函数 348
IDE硬盘设备驱动I/O请求处理 359
在内核中增加对新系统IDE设备的支持 368
8.6本章小结 371
第9章 嵌入式Linux网络设备驱动程序开发 373
9.1嵌入式以太网基础知识 373
以太网技术及其嵌入式应用 373
嵌入式系统中主要处理的网络协议 375
ARP(Address ResolutionProtocol)地址解析协议 376
IP(Internet Protocol)网际协议 376
TCP(Transfer ControlProtocol)传输控制协议 377
UDP(User DatagramProtocol)用户数据包协议 378
9.2基于CS8900A芯片的设备驱动设计 378
CS8900A芯片结构 379
CS8900A芯片特性 380
CS8900A芯片工作原理 380
CS8900A芯片工作模式 380
网络设备驱动程序基本结构 383
9.3基于Linux的网络设备驱动开发常用的数据结构 385
数据结构struct net_device 385
数据结构struct sk_buff 393
9.4网络驱动程序的实现模式及系统调用方法 397
网络驱动程序的实现模式与模块化 397
内存获取与释放 399
链路状态改变系统调用 400
与网络层交互数据包的函数 400
9.5网络驱动程序的基本方法 401
网络驱动程序的结构 401
初始化(Initialize) 401
打开(open) 417
关闭(close) 425
发送(hard_start_xmit) 426
接收(reception) 429
中断处理(interrupt) 434
硬件帧头(hard_header) 438
地址解析(XARP) 439
参数设置和统计数据 439
多播(set_multicast_list) 443
9.6本章小结 446
第10章 嵌入式Linux USB驱动程序设计基础 449
10.1 USB总线协议背景知识 449
USB协议的产生 449
USB的特点 450
USB的广泛应用 451
USB在嵌入式设备中的应用 453
计算机常用外部总线比较 454
10.2 USB总线技术介绍 455
USB系统拓扑结构 456
USB总线逻辑结构 457
USB总线特性介绍 458
USB总线电气机械特性 459
USB的即插即用特性 460
鲁棒性的实现 464
USB电源管理 466
总线通道 467
传输协议 468
传输类型 473
设备框架 479
USB主机协议 482
10.3 Linux USB子系统结构 484
文件系统 485
Linux中USB子系统的软件结构及实现 489
Linux USB内核的主要数据结构 490
USB内核函数接口分析 497
10.4本章小结 516
第11章 USB接口系统软件设计 517
11.1 USB系统软件设计概述 517
主机端设备驱动程序 517
主机控制器驱动程序 517
设备端驱动程序 518
数据管道和数据块结构 518
11.2 USB设备端软件的开发 519
USB设备通用模块的软件开发 519
USB设备协议模块的软件开发 520
控制端点处理程序 521
协议层程序 524
11.3 USB主机端软件开发 525
Linux内核对USB规范的支持 525
USB时序 527
主机控制器驱动程序设计 527
主机控制器的初始化和管理 539
传输执行和资源调度 541
主机控制器的中断处理 545
虚拟根集线器 546
主机控制器驱动程序的任务 551
URB在驱动软件中运作 551
主机端设备驱动程序 552
11.4本章小结 556
第12章 OTG驱动功能模块的设计与实现 557
12.1 OTG概述 557
OTG特性简介 557
A设备事件 558
B设备事件 559
状态机 560
SRP 562
HNP 563
12.2设备模块的设计与实现 563
USB设备的状态 563
OTG驱动功能模块的设计 565
ISP1761结构 565
HAL的设计和实现 567
HCD的设计和实现 569
USBD接口模块 570
ISP1761读写操作模块 578
HCD初始化模块 579
中断管理模块 580
根集线器模块 580
数据传输模块 580
设备模块的设计和实现 581
OTG FSM的设计和实现 583
12.3本章小结 588
- 《HTML5从入门到精通 第3版》(中国)明日科技 2019
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《Python3从入门到实战》董洪伟 2019
- 《语文教育教学实践探索》陈德收 2018
- 《彼得·布鲁克导演实践研究》邓小玲著 2019
- 《反思性实践》胡红梅, 2019
- 《高含硫气藏开发腐蚀控制技术与实践》唐永帆,张强 2018
- 《环境影响评价公众参与理论与实践研究》樊春燕主编 2019
- 《学校特色教育探索与实践》管升起著 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017