嵌入式Linux设备驱动程序开发指南(原书第2版)

联合创作 · 2023-09-28 17:16

本书将告诉你如何为设备树嵌入式Linux系统开发设备驱动程序。你将学会如何编写不同类型的Linux驱动程序,以及如何使用适当的API(应用程序接口)实现与内核和用户态的交互。本书内容以实用为主,但也提供重要的理论基础知识。

本书编写了近30个驱动程序,并将其移植到三种不同的处理器上。你可以选择NXP i.MX7D、Microchip SAMA5D2和Broadcom BCM2837三种处理器来开发和测试这些驱动程序,本书的实验部分详细介绍了这些驱动程序的实现。在你开始阅读之前,建议你使用一个开发板,这个开发板需要有一些GPIO,以及至少一个SPI和I2C控制器。本书详细介绍了用于开发驱动程序的不同评估板的硬件配置,其中用于实现驱动程序的单板包括著名的Raspberry Pi 3 Model B。我鼓励你在开始阅读之前,先找到一块这样的单板,因为本书的...

本书将告诉你如何为设备树嵌入式Linux系统开发设备驱动程序。你将学会如何编写不同类型的Linux驱动程序,以及如何使用适当的API(应用程序接口)实现与内核和用户态的交互。本书内容以实用为主,但也提供重要的理论基础知识。

本书编写了近30个驱动程序,并将其移植到三种不同的处理器上。你可以选择NXP i.MX7D、Microchip SAMA5D2和Broadcom BCM2837三种处理器来开发和测试这些驱动程序,本书的实验部分详细介绍了这些驱动程序的实现。在你开始阅读之前,建议你使用一个开发板,这个开发板需要有一些GPIO,以及至少一个SPI和I2C控制器。本书详细介绍了用于开发驱动程序的不同评估板的硬件配置,其中用于实现驱动程序的单板包括著名的Raspberry Pi 3 Model B。我鼓励你在开始阅读之前,先找到一块这样的单板,因为本书的内容注重实践,用单板做实验将有助于你应用贯穿全书的理论知识。

你将学习如何开发驱动程序,从最简单的不与任何外部硬件交互的驱动程序,到管理不同类型设备(如加速度计、DAC、ADC、RGB LED、多显LED控制器、I/O扩展器和按钮)的驱动程序。你还将开发DMA驱动程序、管理中断的驱动程序,以及通过写入/读取处理器内部寄存器来控制外部设备的驱动程序。为了简化这些驱动程序的开发,你将使用不同类型的框架:杂项框架、LED框架、UIO框架、输入框架和IIO工业框架。

本书是一个学习工具,可以帮助读者在没有任何领域知识的情况下开始开发驱动程序。本书的写作目的是介绍如何开发没有高度复杂性的驱动程序,这既有助于强化主要的驱动程序开发概念,也有助于读者开始开发自己的驱动程序。记住,开发驱动程序的最好方法不是从头开始写。你可以重用与Linux内核主线驱动程序类似的免费代码。本书中所写的所有驱动程序都遵循GPL许可,因此你可以在相同许可证下修改和重新发布它们。

阿尔贝托·利贝拉尔·德·洛斯里奥斯(Alberto Liberal de los Ríos)是Arrow Electronics的现场应用工程师,在嵌入式系统方面有超过15年的经验。在过去的几年里,他一直在Arrow公司支持高端处理器和FPGA。Alberto也是一个Linux爱好者,在过去的几年里,他举办了多场关于嵌入式Linux与Linux设备驱动程序的技术研讨会和实践讲习班。Alberto涉足的其他专业领域包括多媒体SoC和实时操作系统(RTOS)。他目前居住在西班牙马德里,他最大的爱好是和女儿一起在马德里市中心散步。他还喜欢阅读电影杂志和观看科幻电影。

浏览 5
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报