![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux设备驱动
a16839678
喜欢自己想做的事情,坚持做自己想做的事情
展开
-
Linux 设备驱动 ====> 并发控制 --- 自旋锁
自旋锁的使用 自旋锁(spin_lock)是一种典型的对临界资源进行互斥访问的手段,顾名思义,为了获得一个自旋锁,在某CPU上运行的代码需要先执行一个原子操作,该操作测试并设置某个内存变量,在该操作完成之前其他执行单元不可能访问到这个内存变量。 如果测试结果表明锁已经空闲,则程序获得这个自旋锁并继续执行;如果测试表明锁仍被占用,程序将在一个小的循环内重复这个“测试并设置”操作,就是“自转载 2012-11-12 12:50:03 · 275 阅读 · 0 评论 -
Linux 设备驱动 ====> 并发控制 --- 原子操作
原子操作 原子的操作指的就是在执行过程中不会被别的代码所中断的操作。 在Linux中原子操作的方法有很多,有整型原子和位原子,他们在任何情况下操作都是原子的,这些原子操作的实现都是依赖CPU来实现的,因此这些函数都与CPU架构密切相关。 整型原子 我们arm架构的原子实现在kernel/arch/arm/include/asm/atomic.h 1. 设置转载 2012-11-12 12:51:42 · 319 阅读 · 0 评论 -
Linux 设备驱动 ====> 字符驱动
开始从头学起linux 设备驱动,当然是先从字符驱动看起。 下面仿照着书上的例子,写了一个misc 字符驱动。 [cpp] view plaincopy root@jay-LJ:/home/jay/globalmem# tree globalmem/ globalmem/ ├── globalmem.c └── Makef转载 2012-11-12 12:53:22 · 289 阅读 · 0 评论 -
Linux 设备驱动 ====> 并发控制 --- 信号量与互斥体
信号量 信号量的使用 信号量(semaphore)是用于保护临界区的一种常用方法,他的用法和自旋锁类似,但是,与自旋锁不同的是,当获取不到信号量时,进程不会原地打转,而是进入休眠等状态。 Linux中信号量的操作主要有 1.定义信号量 struct semaphore sem; 2.初始化信号量 void sema_init(struct semaphor转载 2012-11-12 12:48:27 · 287 阅读 · 0 评论