嵌入式Linux的灵活性,为嵌入式计算而设计的高效、节能的处理器的可用性,以及新处理器的低成本,使许多工业公司在嵌入式处理器的基础上开发新的产品成为可能。现在的工程师虽然可以用强大的工具开发以前无法想象的应用程序,但是他们不一定十分了解Linux提供的丰富特性。
今天为大家介绍《嵌入式Linux设备驱动程序开发指南(原书第2版)》,本书将告诉你如何为设备树嵌入式Linux系统开发设备驱动程序。你将学会如何编写不同类型的Linux驱动程序,以及如何使用适当的API(应用程序接口)实现与内核和用户态的交互。本书内容以实用为主,但也提供重要的理论基础知识。
本书编写了近30个驱动程序,并将其移植到三种不同的处理器上。你可以选择NXPi.MX7D、MicrochipSAMA5D2和BroadcomBCM2837三种处理器来开发和测试这些驱动程序,本书的实验部分详细介绍了这些驱动程序的实现。在你开始阅读之前,建议你使用一个开发板,这个开发板需要有一些GPIO,以及至少一个SPI和I2C控制器。本书详细介绍了用于开发驱动程序的不同评估板的硬件配置,其中用于实现驱动程序的单板包括著名的Raspberry Pi 3 Model B。
你将学习如何开发驱动程序,从最简单的不与任何外部硬件交互的驱动程序,到管理不同类型设备(如加速度计、DAC、ADC、RGB LED、多显LED控制器、I/O扩展器、按钮和USB HID设备)的驱动程序。你还将学习如何开发DMA驱动程序、管理中断的驱动程序,以及读/写处理器内部寄存器用以控制外部设备的驱动程序。为了简化这些驱动程序的开发,本书将使用不同种类的开发框架:杂项框架、LED框架、UIO框架、输入框架和IIO工业框架。本书第2版已经支持到内核v4.9的LTS版本。
本书亮点
从0到1的嵌入式Linux驱动开发指南,由Linux系统构建开始,理解驱动模型,逐步深入学习驱动程序开发
理论结合实践,通过近30个驱动开发实例和代码,详述主流ARM微处理器开发板上Linux子系统驱动程序开发,可下载书中实例代码。
读者对象
本书适合嵌入式系统开发者、Linux应用开发者,以及想要学习Linux处理嵌入式平台底层硬件的学生和爱好者阅读参考。
编辑推荐
本书基于三种主流开发板(包括Raspberry Pi 3 Model B)编写了近30个驱动程序的实验,帮助读者学习和掌握在嵌入式Linux系统中开发驱动程序的技巧和方法,这些驱动程序支持NXP i.MX7D、Microchip SAMA5D2和BroadcomBCM2837微处理器。
本书作者在嵌入式系统方面有超过15年的丰富工程实践经验,他通过技术研讨会、实践讲习班和本书的方式,将他在嵌入式Linux与Linux设备驱动程序开发的技巧和方法传播和分享。本书中文版译者也是相关领域的专家和爱好者,通过他们的专业翻译,也让读者原汁原味地理解和体会该书的精华。
本书配套的开发工具和实验代码都可以从网上获得,或者通过书中作者提供的访问链接下载,方便读者阅读实践。
作者简介
Alberto Liberty是Arrow Electronics的现场应用工程师,在嵌入式系统方面有超过15年的经验。在过去的几年里,他一直在Arrow公司支持高端处理器和FPGA产品。Alberto也是Linux爱好者,在过去的几年里,他举办了多场关于嵌入式Linux与Linux设备驱动程序的技术研讨会和实践讲习班。Alberto的专业技能还包括多媒体芯片(SoC)和嵌入式实时操作系统(RTOS)。他目前居住在西班牙马德里,他最大的爱好是和女儿一起在马德里市中心散步,他还喜欢阅读电影杂志和观看科幻电影。
主要译者简介
谢宝友,目前就职于阿里集团基础系统稳定性团队,曾任中兴嵌入式实时操作系统技术总工。在Linux系统方面有深度积累和贡献,包括DIM-SUM自研操作系统发起者和创始人、Linux ZTE架构维护者。曾获得第四届中国工业大奖、中兴通讯2010年度金银奖、阿里集团2019年度安全生产之星金奖、2018年和2019年阿里集团“双11”卓越贡献奖。出版多部技术专著,包括自己撰写的《自研操作系统:DIM-SUM设计与实现》和翻译了《深入理解并行编程》。
李唯杰,目前就职于阿里集团高性能网络团队,参与阿里云数据中心网络稳定性和网络性能提升。长期从事底层软件的开发,熟悉操作系统、驱动开发和网络系统,曾就职于华北计算机系统工程研究所,华为技术有限公司。
文洋,目前就职于阿里集团基础系统稳定性团队,参与关键生产应用的稳定性建设,保障数以万计的线上生产服务器的稳定性。在内核、systemd和设备驱动领域有丰富的实践经验,曾就职于华为技术有限公司、中兴通讯股份有限公司。
专家推荐
本书由谢宝友及其他6位Linux爱好者一起合作,对原书进行认真、专业地翻译,出版其中文版。该书通过近三十个驱动程序实例,让你学会编写不同类型微处理器的嵌入式Linux设备驱动程序。从最简单的不与任何外部硬件交互的驱动程序开始,到管理不同类型设备的驱动程序,读者将学会使用不同种类的的开发框架。
——陈莉君西安邮电大学
非常欣慰地看到谢宝友老师联合数位Linux一线开发者翻译了一本嵌入式Linux设备驱动方面的专业参考书。写书和译书的过程都异常艰辛,坚持下来需要很强的毅力,本书译者群体的付出是巨大的。本书与其他同类相关书籍相比,更加接近当前嵌入式Linux设备驱动开发的工程实践,非常适合一线开发者阅读。
——宋宝华知名Linux开发者、海思高级顾问
学习Linux驱动程序的设计是熟悉和理解Linux内核的最佳途径。本书从零开始,以常见的iMX7D、SAMA5D2和BCM2837微处理器为核心的开发平台,通过三十多个有趣的实验,让读者快速了解和熟悉嵌入式Linux驱动开发的常用技术框架和技巧。通过学与练的方式,相信读者会很快入门并且应用到实际工作中。
—— 笨叔《奔跑吧Linux内核》作者
点击链接了解详情并购买
扫码关注【华章计算机】视频号
每天来听华章哥讲书
更多精彩回顾
书讯 | 7月书讯(下)| 读书开启下半年
书讯 | 7月书讯(上)| 读书开启下半年
资讯 | 《数据安全法》表决通过!最新解读来了
书单 | 8本书助你零基础转行数据分析岗
干货 | 当机器学习遇上隐私保护,聊聊联邦学习和分布式机器学习
收藏 | 终于有人把卷积神经网络(CNN)讲明白了
上新 | 【新书速递】打通数据科学三要素——数据科学实战性手册
赠书 | 【第62期】学会数据分析,抢占职场风口机遇
点击阅读全文购买