linux driver
howhot2008
这个作者很懒,什么都没留下…
展开
-
字符设备驱动程序之自动创建设备节点
#include #include #include #include #include static struct class *led_class;int led_open(struct inode *inode, struct file *file){ printk("led_open\n"); return 0;}ssize_转载 2015-11-06 15:20:17 · 307 阅读 · 0 评论 -
深入浅出:Linux设备驱动之字符设备驱动
一、linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序:字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。块设备:是指可以从设备的任意位置读取一定长度数据的设备。块设备包括硬盘、磁盘、U盘和SD卡等。每一个字符设备或块设备都在/转载 2015-11-06 15:40:58 · 297 阅读 · 0 评论 -
如何编写Linux设备驱动程序
如何编写Linux设备驱动程序Linux是Unix操作系统的一种变种,在Linux下编写驱动程序的原理和思想完全类似于其他的Unix系统,但它dos或window环境下的驱动程序有很大的区别。在Linux环境下设计驱动程序,思想简洁,操作方便,功能也很强大,但是支持函数少,只能依赖kernel中的函数,有些常用的操作要自己来编写,而且调试也不方便。以下的一些文字主要来源于khg,johns转载 2015-11-04 14:28:06 · 349 阅读 · 0 评论 -
一个简单的字符设备驱动程序和测试程序
------------------------字符设备驱动程序------------------------------#include #include #include #include #include #include #include #include #include MODULE_DESCRIPTION("a test原创 2015-11-09 13:48:22 · 4661 阅读 · 1 评论 -
IO端口与IO内存
从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上挂着N个接口,有相同的,有不同的,名字叫做存储器接口、中断控制接口、DMA接口、并行接口、串行接口、AD接口……一个设备要想接入,就用自己的接口和总线上的某个匹配接口对接……于是总线上出现了各种设备:内存、硬盘,鼠标、键盘,显示器……对于CPU而言,如果它要发数据到某个设备,其实是发到对应的接口,接口电路里有多个寄存器(也称为端口),转载 2015-11-16 16:53:40 · 372 阅读 · 0 评论 -
Linux中tty框架与uart框架之间的调用关系剖析
在这期间有一个问题困扰着我,那就是来自用户空间的针对uart设备的操作意图是如何通过tty框架逐层调用到uart层的core驱动,进而又是如何调用到真实对应于设备的设备驱动的,本文中的对应设备驱动就是8250驱动,最近我想将这方面的内容搞清楚。在说明这一方面问题之前我们先要大致了解两个基本的框架结构,tty框架和uart框架。首先看看tty框架:在linux系统中,tty表示各种终端。转载 2015-12-09 14:12:01 · 500 阅读 · 1 评论 -
spinlock自旋锁
自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。信号量和读写信号量适合于保持时间较长的情况,它们会导致调用者睡眠,因此只能在进程上下文使用(_trylock的变种能够在中转载 2015-12-15 17:17:03 · 290 阅读 · 0 评论 -
Linux设备模型(总结)
看了一段时间的驱动编程,从LDD3的hello wrod到后来的字符设备以至于更加复杂的驱动,越看越是觉得对linux驱动的结构不清楚,越看越是迷糊。于是就停下脚步搜索一下资料理一下头绪:以下四个方面来总结一些内容:1.底层数据结构:kobject,kset.2.linux设备模型层次关系:bus_type,device,device_driver.3.集成:PCI设备驱动模型实例转载 2015-12-08 15:58:05 · 244 阅读 · 0 评论