第一章 嵌入式Linux设备驱动简介及后续章节安排
第一章 嵌入式Linux设备驱动简介及后续章节安排
1.1 嵌入式Linux设备驱动介绍
我们日常所用到的计算机需要安装的驱动,其本质上是计算机程序的一个访问底层硬件资源的接口,该接口是由计算机的操作系统提供的。由于考虑到操作系统的安全管理问题,用户所使用的应用程序是不能够直接访问底层硬件资源的,而是需要通过特定的驱动函数接口来完成访问硬件资源的任务。
如下图1-1所示为设备驱动与操作系统关系结构示意图,可以看出用户的应用程序需要访问设备资源时是需要通过设备驱动程序提供的接口来完成的,因此对于带操作系统的嵌入式linux开发中,嵌入式设备驱动是非常重要的基石。
图1-1设备驱动与操作系统关系图
Figure 1-1 Device Drive and Operating System Diagram
1.1 章节安排
本文重点讲解嵌入式Linux开发过程中的驱动开发相关内容,其中包括Linux内核裁剪、模块驱动编写以及驱动调试等。如下为本文的章节安排:
(1)第一章 嵌入式Linux设备驱动介绍及章节安排。
(2)第二章ARM编程裸机开发讲解,本章节主要讲解嵌入式开发中无操作系统的开发方式的开发流程及示例的讲解。
(3)第三章 嵌入式Linux内核裁剪讲解,主要对Linux的内核源码、Makefile、Kconfig以及内核裁剪进行的讲解。
(4)第四章 嵌入式Linux设备驱动的基础知识进行讲解,主要内容包括硬件基础知识、内核编程讲解、内核模块以及Linux的文件系统的讲解。
(5)第五章 对字符设备驱动框架及示例的讲解,这个也是后续其他类型的设备驱动学习的重要的基础。
(6)第六章 混杂设备驱动框架及示例的讲解。
(7)第七章I/O内存访问的讲解,主要包括动态和静态I/O内存映射的讲解,这一章讲解了如何访问芯片的内存资源的方法。
(8)第八章 对应用层和驱动层的ioctl函数进行讲解,通过本章可以让读者了解如何通过应用层来与驱动层进行通信,进一步访问底层资源。
(9)第九章GPIO框架驱动讲解,在本章节中读者将首次接触到Linux内核中的一个重要框架驱动,这对后续的框架驱动奠定基础。
(10)第十章 对延时函数、定时器以及中断的讲解。
(11)第十一章 讲述Linux内存分配的函数及应用,让读者可以掌握内核内存的使用方法及思路。
(12)第十二章 讲述的是另外一种常见的linux框架驱动是输入子系统驱动,在这个章节将讲述其总体架构和应用方法。
(13)第十三章至第十五章将讲解平台设备驱动,以及在平台驱动基础上的I2C和SPI框架驱动,同时利用示例来进一步讲解如何在实际项目中编写合适的驱动。
(14)第十六章和第十七章分别将详细讲解LCD屏驱动和USB设备驱动。
(15)第十八章将对嵌入式Linux的Bootloader进行一个详细的讲解,主要讲解其总体概述以及嵌入式开发中常用的U-Boot的配置及裁剪使用。
(16)第十九章 将对文件系统进行一个讲解,让读者了解根文件系统的总体概述以及如何裁剪制作符合实际项目需求的根文件系统。
(17)第二十章 将讲解嵌入式驱动开发中常规的调试思路以及调试示例。