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