内容简介
嵌入式微处理器功能强大、节能和低成本与嵌入式Linux系统的灵活性结合,促使业界许多公司基于嵌入式微处理器开发出了很多新产品。本书教读者基于设备树嵌入式Linux系统如何开发设备驱动程序。读者将学习编写不同类型的Linux驱动程序,以及与内核和用户空间交互的应用程序程序接口(API)和方法。本书以实战为核心,阐述了Linux内核基础知识,将编写大约30个驱动程序并移植到三种不同的微处理器上。本书在实验部分中基于NXP i.MX7D、Microchip SAMA5D2和Broadcom BCM2837三种不同微处理器详细阐述了驱动程序的开发的实现,读者可参考实验部分选择开发和测试自己的驱动程序。在阅读本书之前,建议读者先购买一个基于这些微处理器之一的开发板,板上至少应有一个SPI和I2C控制器,例如Raspberry Pi3模型B板。
AI简介
这是一本专注于嵌入式Linux系统设备驱动程序开发的指南。该书以实战为核心,详细阐述了Linux内核基础知识,将编写大约30个驱动程序并移植到三种不同的微处理器上。
本书首先介绍了U-Boot的特性与功能,以及Linux内核概述与特点,包括Linux操作系统的起源、发展、结构以及其核心部分——Linux内核。接着,本书深入讲解了设备模型涉及的主要术语,以及设备模型围绕3个主要的数据结构组织,包括bus_type数据结构、device_driver数据结构和device数据结构。此外,还介绍了设备树规范简介,以及Linux设备驱动程序概述,包括Linux操作系统中设备与驱动程序的关系、设备驱动程序的分类、以及Linux内核中设备驱动程序的设计和实现方式。
书中还详细阐述了字符设备驱动的特点,以及平台设备驱动的概念和特点,包括平台总线、平台设备驱动以及用户态中的平台设备驱动。此外,还介绍了平台设备驱动的注册与注销,以及I2C协议简介。
在动态内存分配方面,本书深入讲解了动态内存分配策略,以及MMU的工作原理与缺页异常处理。此外,还介绍了DMA的基本概念和特点,以及Linux USB设