嵌入式Linux|驱动理论
Linux设备驱动开发详解
santirenpc
这个作者很懒,什么都没留下…
展开
-
Linux设备驱动开发详解【一】_设备驱动概述
本文简介 本文将带您走进 Linux 设备驱动的精彩世界。 1.1节主要讲解设备驱动的概念和作用。 1.2节和 1.3 节分别讲述无操作系统和有操作系统情况下设备驱动的设计方法,通过分析讲解设备驱动与硬件和操作系统的关系。 1.4节对 Linux 操作系统的设备驱动进行了概要性的介绍,讲解设备驱动与系统软硬件的关系,分析了 Linu...原创 2019-09-18 15:31:45 · 906 阅读 · 0 评论 -
Linux设备驱动开发详解【二】_设备驱动相关硬件基础知识
本文简介 本文讲解底层驱动工程师必备的硬件基础,给出了嵌入式系统硬件原理及分析方法的全景视图。 2.1 节讲解微控制器、微处理器、数字信号处理器以及应用于特定领域的处理器各自的特点。 2.2 节对嵌入式系统中所使用的各类存储器与 CPU 的接口、应用领域及特点进行了详细讲解。 2.3 节讲解常见的外设接口与总线的工作方式,包括串口、...原创 2019-09-23 13:45:30 · 1551 阅读 · 0 评论 -
Linux设备驱动开发详解【三】_Linux 内核及内核编程
本文简介 由于 Linux 驱动编程本质属于 Linux 内核编程,因此有必要掌握 Linux 内核及内核编程的基础知识。 3.1~3.2 节讲解 Linux 内核的演变及 Linux 2.6 内核的特点。 3.3 节分析了 Linux 内核源代码目录结构和 Linux 内核的组成部分及其关系,并对 Linux 的用户空间和内核空间进行了讲解。...原创 2019-09-25 10:40:00 · 1988 阅读 · 0 评论 -
Linux设备驱动开发详解【四】_Linux 内核模块
本文简介 Linux 设备驱动以内核模块的形式出现,因此,学会编写 Linux 内核模块是学习 Linux 设备驱动的先决条件。 4.1~4.2节讲解了Linux内核模块的概念和结构,4.3~4.8节对Linux内核模块的各个组成部分进行了详细讲解,4.1~4.2节与4.3~4.8节是整体与部分的关系。 4.9节讲解了独立存在的Linux内核模块...原创 2019-09-30 11:23:47 · 494 阅读 · 0 评论 -
Linux设备驱动开发详解【五】_Linux文件系统和设备文件系统
本文简介 由于字符设备和块设备都很好地体现了“一切都是文件”的设计思想,掌握Linux文件系统、设备文件系统的知识非常重要。 首先,设备驱动最终通过操作系统的文件系统调用或C库函数(本质也基于系统调用)被访问。 其次,驱动工程师在设备驱动中不可避免地会与设备文件系统打交道,如Linux2.4内核的devfs文件系统和Linux2.6内核的基于s...原创 2019-10-30 16:58:10 · 861 阅读 · 0 评论 -
Linux设备驱动开发详解【六】_ 字符设备驱动
本文简介 在Linux设备驱动中,字符设备驱动较为基础。本文主要讲解Linux字符设备驱动程序的结构及其主要组成部分的编程方法。 6.1节讲解了Linux字符设备驱动的关键数据结构cdev及file_operations结构体的操作方法,并分析了Linux字符设备的整体结构,给出了简单的设计模板。 6.2节讲解了本章及后续各章所基于的globa...原创 2019-11-05 15:11:13 · 675 阅读 · 0 评论 -
Linux设备驱动开发详解【七】_ Linux设备驱动中的并发控制
本文简介 Linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发访问会导致竞态。 Linux提供了多种解决竞态问题的方式,这些方式适合不同的应用场景。7.1节描述了并发和竞态的概念及发生场合。7.2~7.5节分别讲解了中断屏蔽、原子操作、自旋锁和信号量等并发控制机制。7.6节讲解了增加并发控制后的globalmem的设备驱动。...原创 2019-11-06 14:33:41 · 424 阅读 · 4 评论 -
Linux设备驱动开发详解【八】_ Linux设备驱动中的阻塞I/O与非阻塞I/O
本文简介: 阻塞和非阻塞I/O是设备访问的两种不同模式,驱动程序可以灵活地支持用户空间对设备的这两种访问方式。 8.1节讲解阻塞I/O和非阻塞I/O的区别,实现阻塞I/O的等待队列机制,以及在globalfifo设备驱动中增加对阻塞I/O支持的方法,并进行了用户空间的验证。 8.2节讲解设备驱动的轮训(poll)操作的概念和编程方法,poll操...原创 2019-12-06 10:39:57 · 283 阅读 · 0 评论 -
Linux设备驱动开发详解【九】_ Linux设备驱动中的异步通知与异步I/O
本文简介: 在设备驱动中使用异步通知可以使得对设备的访问可进行时,由驱动主动通知应用程序进行访问。这样,使用无阻塞I/O的应用程序无须轮询设备是否可访问,而阻塞访问也可以被类似“中断”的异步通知所取代。 9.1节讲解了异步通知的概念和作用,9.2节讲解了Linux异步通知的编程方法,9.3节讲解了增加了异步通知的globalfifo驱动及其在用户空间的验证。...原创 2019-12-09 10:42:47 · 283 阅读 · 0 评论 -
Linux设备驱动开发详解【十】_ 中断与时钟
本文简介: 本文主要讲解Linux设备驱动编程中的中断和定时器处理。由于中断服务程序的执行并不存在于进程上下文,因此,要求中断服务程序的时间尽可能地短。因此,Linux在中断处理中引入顶半部和底半部分离的机制。另外,内核中对时钟的处理也采用中断方式,而内核软件定时器最终依赖于时钟中断。 10.1节讲解中断和定时器的概念及处理流程。 10.2节讲...原创 2019-12-11 13:49:52 · 463 阅读 · 2 评论 -
Linux设备驱动开发详解【十一】 _ 内存与IO访问
本文简介: 由于Linux系统中提供了复杂的内存管理功能,所以内存的概念在Linux系统中变得相对复杂,出现了常规内存、高端内存、虚拟地址、逻辑地址、总线地址、物理地址、I/O内存、设备内存、预留内存等概念。本文将系统地讲解内存和I/O的访问编程,带您走出内存和I/O的概念迷宫。 11.1节讲解内存和I/O的硬件机制,主要涉及内存空间、I/O空间和MMU。...原创 2019-12-19 14:49:49 · 883 阅读 · 0 评论