
Linux驱动开发
文章平均质量分 56
___Eirc
Hello,Hell. 个人邮箱:takumanatata@foxmail.com; 不常上来;不搞嵌入式很久,写前端去了。
展开
-
Linux下驱动开发常用头文件
#include <linux/module.h>#include <linux/types.h>#include <linux/fs.h>#include <linux/errno.h>#include <linux/mm.h>#include <linux/sched.h>#include <linux/init.h...原创 2018-03-28 15:13:39 · 656 阅读 · 0 评论 -
Linux中等待队列的相关API
1,等待队列 1)定义等待队列头 wait_queue_head_t my_queue; 2)初始化 init)waitqueue_head(&my_queue); //定义并初始化宏 DECLEAR_WAIT_QUEUE_HEAD(name); DECLEAR_WAITQUEUE(name,tsk);//?? 3)添加、移除等待队列 void fastcall add...原创 2018-04-20 18:19:35 · 314 阅读 · 0 评论 -
驱动开发Makefile
obj-m += hello.o all: make -C /home/tarena/driver/kernel M=$(PWD) modules cp *.ko /home/tarena/driver/rootfs/home/bin clean: make -C /home/tarena/driver/kernel M=$(PWD) clean...原创 2018-05-05 22:44:41 · 285 阅读 · 0 评论 -
Linux驱动开发--实现设备的异步通知
异步通知:即设备准备就绪时主动通知设备基本实现原理: 1,当设备可读时,发送一个信号通知应用程序 2,应用程序接收到信号后,执行读操作 举例:异步通知编程:void input_handler(int num){ char data[MAX_LEN]; int len; //读取并输出STDIN_FILENO 上的输入 len = read(STDIN_FI...原创 2018-05-06 17:44:10 · 216 阅读 · 0 评论 -
LINUX驱动编程----内核定时器
timer_list结构体:struct timer_list { struct list_head entry; unsigned long expires; void (*function)(unsigned long); unsigned long data; struct timer_base_s *base;};1,定义一个timer_list定时器 struct timer_list ...原创 2018-05-07 11:07:56 · 204 阅读 · 0 评论 -
Linux驱动编程----input子系统
input子系统个人理解: Linux系统中将输入事件进行了分类及设计,将事件类型分类为EV_KEY等,将事件发生后要上报对应的事件的值放在code中,将状态按下或抬起时的判断放在value中。封装在一个结构体中 struct input_event; 具体设计请查看linux-input.pdf。下载链接: https://download.youkuaiyun.com/download/u013...原创 2018-05-13 23:13:04 · 364 阅读 · 0 评论 -
Linux驱动编程----底半部机制(中断)
Linux内核中将中断响应的处理可以分为两部分:顶半部和底半部 1,顶半部处理要紧且操作时间短的事件,如恢复相应的寄存器状态 2,底半部处理操作时间长的事件实现以上机制的两种:1,tasklet 使用模板如下:/*声明底半部函数*/void xxx_do_tasklet(unsigned long);/*此宏实际就是创建一个struct tasklet_struct xxx...原创 2018-05-07 22:07:55 · 700 阅读 · 0 评论