转:https://blog.csdn.net/zqixiao_09/article/details/51088887 前面我们学习I2C、USB、SD驱动时,有没有发现一个共性,就是在驱动开发时,每个驱动都分层三部分,由上到下分别是: 1、XXX 设备驱动 2、XXX 核心层 3、XXX 主机控制 ...
分类:
系统相关 时间:
2018-10-24 20:10:17
阅读次数:
153
TP-LINK本身没有在中文网站提供linux驱动。 英文网站的网卡型号不一样,通过样子猜测是T9UH,于是google了一下发现有开源驱动。 具体做法如下: 把其中的第1行 替换为 然后 就可以成功安装了。 安装后需要重新启动。 ...
分类:
系统相关 时间:
2018-09-27 22:56:22
阅读次数:
2446
(一)分配一个输入子系统结构体 (二)设置这个输入子系统需要的动作 /* 1. 分配一个input_dev结构体 */ buttons_dev = input_allocate_device();; /*使用这个函数分配一个input_dev结构体*/ /* unsigned long evbit ...
分类:
系统相关 时间:
2018-09-22 18:20:25
阅读次数:
196
1. request_irq()函数原型 int request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id) int request_i ...
分类:
系统相关 时间:
2018-09-22 17:06:27
阅读次数:
330
(一)解析:class_create函数和class_destroy函数 创建一个类 和 删除一个类。 (二)class_create函数原型 struct class *class_create(struct module *owner, const char *name); 1. 查看函数注释: ...
分类:
系统相关 时间:
2018-09-22 17:05:24
阅读次数:
197
1. copy_from_user函数的目的是从用户空间拷贝数据到内核空间 2. 解析原型: copy_from_user(void *to, const void __user *from, unsigned long n) 1. @*to 将数据拷贝到内核的地址 2. @*from 需要拷贝数据 ...
分类:
系统相关 时间:
2018-09-22 17:04:26
阅读次数:
310
2. 信号量 信号量(semaphore)是用于保护临界区的一种常用方法,只有得到信号量的进程才能执行临界区代码。 当获取不到信号量时,进程进入休眠等待状态。 定义信号量 struct semaphore sem; 初始化信号量 void sema_init (struct semaphore *s ...
分类:
系统相关 时间:
2018-09-22 17:03:10
阅读次数:
177
(一)定义一个timer_list定时器结构体,linux 内核定时器 timer_list详解 (二)初始化定时器,当超时时间expires到之后会调用buttons_timer_function函数 (二)初始化定时器,当超时时间expires到之后会调用buttons_timer_functi ...
分类:
系统相关 时间:
2018-09-22 17:01:52
阅读次数:
199
(一)解析class_device_create函数 (二)当我们使用class_create创建一个类之后我们就可以使用class_device_create函数在这个类下面创建一个设备了,class_create创建查看004_linux驱动之_class_create创建一个设备类 (三)cl ...
分类:
系统相关 时间:
2018-09-22 17:01:13
阅读次数:
189
1. 首先看应用程序 1. 首先分析第二点使用函数signal(SIGIO, my_signal_fun);来设置,当驱动程序传递信号给应用程序时候会调用第一点的程序 2. 第三点是设置相关参数 (二)当应用程序调用到底三点时候,就会在驱动程序中调用到第一点 上面的驱动程序初始化了信号的相关参数,然 ...
分类:
系统相关 时间:
2018-09-22 16:59:52
阅读次数:
188