登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』Linux设备驱动开发

書城自編碼: 3601620
分類: 簡體書→大陸圖書→計算機/網絡操作系統/系統開發
作者: [法]约翰·马迪厄[John,Madieu]
國際書號(ISBN): 9787115555557
出版社: 人民邮电出版社
出版日期: 2021-03-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 864

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
抗癌饮食指导
《 抗癌饮食指导 》

售價:NT$ 442.0
编织大花园.7,趣味十足的时尚编织
《 编织大花园.7,趣味十足的时尚编织 》

售價:NT$ 386.0
游戏三部曲:游戏改变未来+游戏改变世界+游戏改变人生(套装共3册)
《 游戏三部曲:游戏改变未来+游戏改变世界+游戏改变人生(套装共3册) 》

售價:NT$ 1622.0
修昔底德与政治秩序
《 修昔底德与政治秩序 》

售價:NT$ 386.0
大学问·魏晋清谈史
《 大学问·魏晋清谈史 》

售價:NT$ 549.0
区域经济与产业发展研究
《 区域经济与产业发展研究 》

售價:NT$ 381.0
正念心理学:全面开启自我觉察与接纳的疗愈之旅
《 正念心理学:全面开启自我觉察与接纳的疗愈之旅 》

售價:NT$ 391.0
车用锂离子动力电池碰撞安全
《 车用锂离子动力电池碰撞安全 》

售價:NT$ 885.0

建議一齊購買:

+

NT$ 739
《 Linux设备驱动开发详解:基于最新的Linux4.0 》
+

NT$ 868
《 奔跑吧Linux内核(第2版)卷2:调试与案例分析 》
+

NT$ 347
《 中文版Animate CC 2019基础培训教程 》
+

NT$ 516
《 Altium Designer 20 电路设计与仿真从入门到精通 》
+

NT$ 405
《 零基础学Cinema 4D R20三维视觉设计 》
+

NT$ 458
《 嵌入式Linux应用开发完全手册 》
編輯推薦:
1.本书将帮助您了解驱动程序的基础知识,并为漫长的Linux内核之旅做好准备。
2.本书介绍了基于各种Linux子系统的驱动程序开发,例如内存管理、PWM、RTC、IIO和IRQ管理。
3.本书还提供了有关直接内存访问和网络设备驱动程序的实用方法。
4.通过阅读本书,您将掌握设备驱动程序开发的概念,并将能够使用*的内核版本(编写本书时为v4.13)从头编写任何设备驱动程序。
5.提供源代码。
Linux内核是一个复杂、可移植、模块化且使用广泛的软件,其可在设备的服务器和嵌入式系统上运行。设备驱动程序在Linux系统的性能方面起着至关重要的作用。由于Linux已经成为非常受欢迎的操作系统,因此开发专有设备驱动程序的需求也在稳步增长。
您将学到以下内容:
1.本书将帮助您了解驱动程序的基础知识,并为漫长的Linux内核之旅做好准备。
2.本书介绍了基于各种Linux子系统的驱动程序开发,例如内存管理、PWM、RTC、IIO和IRQ管理。
3.本书还提供了有关直接内存访问和网络设备驱动程序的实用方法。
4.通过阅读本书,您将掌握设备驱动程序开发的概念,并将能够使用*的内核
內容簡介:
本书讲解了Linux驱动开发的基础知识以及所用到的开发环境,全书分为22章,其内容涵盖了各种Linux子系统,包含内存管理、PWM、RTC、IIO和IRQ管理等,还讲解了直接内存访问和网络设备驱动程序的实用方法。在学完本书之后,读者将掌握设备驱动开发环境的概念,并可以从零开始为任何硬件设备编写驱动程序。
阅读本书需要具备基本的C语言程序设计能力,且熟悉Linux基本命令。本书主要是为嵌入式工程师、Linux系统管理员、开发人员和内核黑客而设计的。无论是软件开发人员,还是系统架构师或制造商,只要愿意深入研究Linux驱动程序开发,阅读本书后都将有所收获。
關於作者:
John Madieu是嵌入式Linux和内核研发工程师,居住在法国巴黎。他主要为自动化、运输、医疗、能源和军事等领域的公司开发驱动程序和开发板支持包(Board Support Packages,BSP)。他目前就职于一家法国公司EXPEMB,该公司是基于模块化计算机的电子开发板设计和嵌入式Linux解决方案的先驱。同时,他还是一位开源和嵌入式系统爱好者,坚信通过知识分享能够学到更多的知识。
目錄
第 1章 内核开发简介 1
1.1 环境设置 1
1.1.1 获取源代码 2
1.1.2 内核配置 4
1.1.3 构建自己的内核 4
1.2 内核约定 6
1.2.1 编码风格 6
1.2.2 内核结构分配和初始化 7
1.2.3 类、对象、面向对象的编程 7
1.3 总结 8
第 2章 设备驱动程序基础 9
2.1 内核空间和用户空间 9
2.1.1 模块的概念 10
2.1.2 模块依赖 10
2.1.3 模块的加载和卸载 11
2.2 驱动程序框架 13
2.2.1 模块的入点和出点 14
2.2.2 模块信息 16
2.3 错误和消息打印 18
2.3.1 错误处理 19
2.3.2 处理空指针错误 21
2.3.3 消息打印 printk 22
2.4 模块参数 24
2.5 构建第 一个模块 25
2.5.1 模块的makefile 26
2.5.2 内核树内 27
2.5.3 内核树外 29
2.5.4 构建模块 29
2.6 总结 30
第3章 内核工具和辅助函数 31
3.1 理解宏container_of 31
3.2 链表 33
3.2.1 创建和初始化链表 35
3.2.2 创建链表节点 36
3.2.3 添加链表节点 36
3.2.4 删除链表节点 37
3.2.5 链表遍历 37
3.3 内核的睡眠机制 38
3.4 延迟和定时器管理 41
3.4.1 标准定时器 41
3.4.2 高精度定时器(HRT) 44
3.4.3 动态TickTickless内核 46
3.4.4 内核中的延迟和睡眠 46
3.5 内核的锁机制 47
3.5.1 互斥锁 47
3.5.2 自旋锁 49
3.6 工作延迟机制 51
3.6.1 Softirq和Ksoftirqd 51
3.6.2 Tasklet 53
3.6.3 Tasklet调度 54
3.6.4 工作队列 56
3.6.5 内核线程 62
3.7 内核中断机制 62
3.7.1 注册中断处理程序 62
3.7.2 下半部的概念 65
3.8 线程化中断 68
3.9 从内核调用用户空间应用程序 71
3.10 总结 72
第4章 字符设备驱动程序 73
4.1 主设备和次设备的概念 73
4.2 设备文件操作 76
4.3 分配和注册字符设备 77
4.4 写文件操作 79
4.4.1 内核空间和用户空间数据交换 79
4.4.2 open方法 80
4.4.3 release方法 81
4.4.4 write方法 82
4.4.5 read方法 84
4.4.6 llseek方法 86
4.4.7 poll方法 88
4.4.8 ioctl方法 91
4.4.9 填充file_operations结构 95
4.5 总结 95
第5章 平台设备驱动程序 96
5.1 平台驱动程序 97
5.2 平台设备 100
5.3 设备、驱动程序和总线匹配 105
5.4 总结 113
第6章 设备树的概念 114
6.1 设备树机制 114
6.1.1 命名约定 115
6.1.2 别名、标签和phandle 115
6.1.3 DT编译器 117
6.2 表示和寻址设备 117
6.2.1 SPI和I2C寻址 118
6.2.2 平台设备寻址 119
6.3 处理资源 120
6.3.1 命名资源的概念 121
6.3.2 访问寄存器 122
6.3.3 处理中断 123
6.3.4 提取特定应用数据 124
6.4 平台驱动程序和DT 127
6.4.1 OF匹配风格 127
6.4.2 匹配风格混合 132
6.4.3 平台数据与DT 136
6.5 总结 137
第7章 I2C客户端驱动程序 138
7.1 驱动程序架构 139
7.1.1 i2c_driver结构 139
7.1.2 驱动程序的初始化和注册 142
7.1.3 驱动程序和设备的配置 142
7.2 访问客户端 143
7.2.1 普通I2C通信 143
7.2.2 系统管理总线(SMBus)兼容函数 145
7.2.3 在开发板配置文件中实例化I2C设备(弃用的旧方式) 146
7.3 I2C和设备树 147
7.3.1 定义和注册I2C驱动程序 147
7.3.2 在设备树中实例化I2C设备新方法 149
7.3.3 小结 149
7.4 总结 150
第8章 SPI设备驱动程序 151
8.1 驱动程序架构 151
8.1.1 设备结构 152
8.1.2 spi_driver结构 154
8.1.3 驱动程序的初始化和注册 156
8.1.4 驱动程序和设备配置 157
8.2 访问和与客户端通信 161
8.3 小结 166
8.4 SPI用户模式驱动程序 166
8.5 总结 170
第9章 Regmap API 寄存器映射抽象 171
9.1 使用Regmap API编程 172
9.1.1 regmap_config结构 172
9.1.2 Regmap初始化 175
9.1.3 设备访问函数 177
9.1.4 Regmap和缓存 180
9.1.5 小结 181
9.1.6 Regmap示例 182
9.2 总结 184
第 10章 IIO框架 185
10.1 IIO数据结构 186
10.1.1 Iio_dev数据结构 186
10.1.2 iio_info结构 190
10.1.3 IIO通道 190
10.1.4 小结 196
10.2 触发缓冲区支持 199
10.2.1 IIO触发器和sysfs(用户空间) 202
10.2.2 IIO缓冲区 206
10.2.3 小结 208
10.3 IIO数据访问 214
10.3.1 单次捕获 214
10.3.2 缓冲区数据访问 214
10.4 IIO工具 216
10.5 总结 217
第 11章 内核内存管理 218
11.1 系统内存布局内核空间和用户空间 219
11.1.1 内核地址低端和高端内存概念 221
11.1.2 用户空间寻址 222
11.1.3 虚拟内存区域 225
11.2 地址转换和MMU 227
11.3 内存分配机制 232
11.3.1 页面分配器 233
11.3.2 Slab分配器 235
11.3.3 kmalloc分配系列 238
11.3.4 vmalloc分配器 240
11.3.5 后台的进程内存分配 242
11.4 使用IO内存访问硬件 244
11.4.1 PIO设备访问 244
11.4.2 MMIO设备访问 245
11.5 内存(重)映射 248
11.5.1 kmap 248
11.5.2 映射内核内存到用户空间 249
11.6 Linux缓存系统 253
11.6.1 什么是缓存 253
11.6.2 为什么数据延迟写入磁盘 255
11.7 设备管理的资源 Devres 256
11.8 总结 257
第 12章 DMA 直接内存访问 258
12.1 设置DMA映射 258
12.1.1 缓存一致性和DMA 258
12.1.2 DMA映射 259
12.2 完成的概念 263
12.3 DMA引擎API 264
12.3.1 分配DMA从通道 265
12.3.2 设置从设备和控制器指定参数 266
12.3.3 获取事务描述符 269
12.3.4 提交事务 270
12.3.5 发布待处理DMA请求并等待回调通知 271
12.4 总结 NXP SDMAi.MX6 272
12.5 DMA DT绑定 277
12.6 总结 278
第 13章 Linux设备模型 279
13.1 LDM数据结构 279
13.1.1 总线 280
13.1.2 设备驱动程序 285
13.1.3 设备 287
13.2 深入剖析LDM 289
13.2.1 kobject结构 289
13.2.2 kobj_type 291
13.2.3 内核对象集合 293
13.2.4 属性 294
13.3 设备模型和sysfs 296
13.3.1 sysfs文件和属性 297
13.3.2 允许轮询sysfs属性文件 303
13.4 总结 304
第 14章 引脚控制和GPIO子系统 305
14.1 引脚控制子系统 305
14.2 GPIO子系统 310
14.2.1 基于整数的GPIO接口:传统方法 310
14.2.2 基于描述符的GPIO接口:新的推荐方式 315
14.2.3 GPIO接口和设备树 322
14.2.4 GPIO和sysfs 327
14.3 总结 329
第 15章 GPIO控制器驱动程序 gpio_chip 330
15.1 驱动程序体系结构和数据结构 330
15.2 引脚控制器指南 334
15.3 GPIO控制器的sysfs接口 335
15.4 GPIO控制器和DT 335
15.5 总结 336
第 16章 高级IRQ管理 337
16.1 中断复用和中断控制器 339
16.2 高级外设IRQ管理 347
16.3 中断请求和传播 349
16.3.1 链接IRQ 351
16.3.2 案例研究 GPIO和IRQ芯片 351
16.4 总结 356
第 17章 输入设备驱动程序 357
17.1 输入设备结构 357
17.2 分配并注册输入设备 360
17.3 产生和报告输入事件 364
17.4 用户空间接口 366
17.5 回顾 368
17.6 总结 376
第 18章 RTC驱动程序 377
18.1 RTC框架数据结构 377
18.2 RTC和用户空间 387
18.2.1 sysfs接口 387
18.2.2 hwclock工具 388
18.3 总结 389
第 19章 PWM驱动程序 390
19.1 PWM控制器驱动程序 391
19.1.1 驱动程序示例 393
19.1.2 PWM控制器绑定 396
19.2 PWM消费者接口 397
19.3 通过sysfs接口使用PWM 401
19.4 总结 402
第 20章 调节器框架 403
20.1 PMIC生产者驱动程序接口 404
20.1.1 驱动程序数据结构 404
20.1.2 驱动程序方法 412
20.1.3 驱动程序示例 418
20.2 调节器消费者接口 421
20.2.1 调节器设备请求 422
20.2.2 控制调节器设备 423
20.3 调节器绑定 425
20.4 总结 426
第 21章 帧缓冲驱动程序 427
21.1 驱动程序数据结构 428
21.2 设备方法 431
21.3 驱动程序方法 434
21.3.1 fb_ops剖析 436
21.3.2 总结 440
21.4 用户空间的帧缓冲 440
21.5 总结 442
第 22章 网络接口卡驱动程序 443
22.1 驱动程序数据结构 443
22.1.1 套接字缓冲区结构 444
22.1.2 网络接口结构 446
22.2 设备方法 448
22.2.1 打开和关闭 449
22.2.2 数据包处理 452
22.2.3 驱动程序示例 457
22.2.4 状态和控制 460
22.3 驱动程序方法 463
22.3.1 probe函数 464
22.3.2 模块卸载 466
22.4 总结 466

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.