![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux设备驱动程序
文章平均质量分 95
须尽欢~~
阿里云开发者社区专家博主、技术博主、星级博主。
座右铭:Stay hungry. Stay foolish.
面包多平台作品网址:https://mbd.pub/o/author-amaWnG5pZA==/work
展开
-
Linux设备驱动程序(五)——并发和竞态
并发相关的缺陷是最容易制造的,也是最难找到的,为了响应现代硬件和应用程序的需求,Linux 内核已经发展到同时处理更多事情的时代。这种变革使得内核性能及伸缩性得到了相当大的提高,然而也极大提高了内核编程的复杂性。自旋锁原语所需要包含的文件是 <linux/spinlock.h>。实际的锁具有 spinlock_t 类型和其他任何数据结构类似,一个自旋锁必须被初始化。// 静态注意,所有的自旋锁等待在本质上都是不可中断的。一旦调用了 spin_lock,在获得锁之前将一直处于自旋状态。原创 2023-07-24 12:39:12 · 184 阅读 · 0 评论 -
Linux设备驱动程序(四)——调试技术
由于内核是一个不与特定进程相关的功能集合,所以内核代码无法轻易地放在调试器中执行,而且也很难跟踪跟踪,本章节将介绍监视内核代码并跟踪错误的技术。原创 2023-07-10 17:25:57 · 1881 阅读 · 2 评论 -
Linux设备驱动程序(三)——字符驱动
本章的目的是编写一个完整的字符设备驱动,我们开发一个字符驱动是因为这一类适合大部分简单硬件设备,字符驱动也比块驱动易于理解。贯穿本章,我们展示从一个真实设备驱动提取的代码片段:scull区域装载的简单字符工具。scull 是一个字符驱动,操作一块内存区域好像它是一个设备,在本章,因为 scull 的这个特殊之处,我们可互换地使用“设备”这个词和"scull 使用的内存区"。scull 的优势在于它不依赖硬件,scull 只是操作一些从内核分配的内存。原创 2023-06-23 13:28:25 · 1920 阅读 · 0 评论 -
Linux设备驱动程序(二)——建立和运行模块
本章介绍所有的关于模块和内核编程的关键概念,通过一个 hello world 模块来认识驱动加载的流程及相关细节。原创 2023-05-29 11:38:37 · 1626 阅读 · 1 评论 -
Linux设备驱动程序(一)——设备驱动简介
这一部分主要是用来介绍 Linux 设备驱动程序的一些基本概念,包括:Linux 设备驱动程序的作用、内核功能的划分、设备和模块的分类以及版本编号。原创 2023-05-19 23:23:48 · 1662 阅读 · 0 评论