
驱动开发
Running_pink
这个作者很懒,什么都没留下…
展开
-
Linux 内核等待队列使用
lcx_wait_queue.c#include<linux/module.h>//所有模块都要使用头文件module.h,此文件必须包含进来#include<linux/kernel.h>//头文件kernel.h包含了常用的内核函数。#include<linux/init.h>//头文件init.h包含了宏_init和_exit,它们允许释放内核占用的内存#include<linux/of.h>#include<linux/platform原创 2021-08-13 15:38:13 · 319 阅读 · 0 评论 -
工作队列work_struct 两种使用方法
lcx_work_struct.c注:使用了设备树进行驱动匹配,测试前在设备树添加节点才可以测试ok。#include<linux/module.h>//所有模块都要使用头文件module.h,此文件必须包含进来#include<linux/kernel.h>//头文件kernel.h包含了常用的内核函数。#include<linux/init.h>//头文件init.h包含了宏_init和_exit,它们允许释放内核占用的内存#include<linux原创 2021-08-13 10:24:22 · 793 阅读 · 0 评论 -
input输入子系统(一)
app.c#include<stdio.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>#include<linux/input.h>/*struct input_event { struct timeval time; __u16 type;//事件类型 __u16 code;//编码 __s32 v原创 2021-07-25 20:31:06 · 196 阅读 · 0 评论 -
平台总线模型(二)
platform_driver.c#include<linux/init.h>#include<linux/module.h>#include<linux/kernel.h>#include<linux/platform_device.h>#include<linux/miscdevice.h>#include<linux/fs.h>struct resource *Platform_device_resource;st原创 2021-07-17 22:04:55 · 104 阅读 · 0 评论 -
平台总线模型(一)
platform_device.c#include<linux/init.h>#include<linux/module.h>#include<linux/kernel.h>#include<linux/platform_device.h>struct resource platform_device_resource[]={ [0]= { .start=0x00100,//内存起始地址 .end=0x00104,//内存结束地址 .fla原创 2021-07-17 22:03:32 · 130 阅读 · 0 评论 -
platform_driver注册并与设备匹配
platform_driver.c#include<linux/init.h>#include<linux/module.h>#include<linux/kernel.h>#include<linux/platform_device.h>int Platform_driver_probe(struct platform_device *Device){ printk("Platform_driver_probe enter\n"); retu原创 2021-07-11 15:35:11 · 266 阅读 · 0 评论 -
platform_device注册
platform_device.c#include<linux/init.h>#include<linux/module.h>#include<linux/kernel.h>#include<linux/platform_device.h>struct resource platform_device_resource[]={ [0]= { .start=0x00100,//内存起始地址 .end=0x00104,//内存结束地址 .fla原创 2021-07-11 15:09:52 · 337 阅读 · 0 评论 -
字符设备创建(二)
文件名 Chardev_register_node.c#include<linux/kernel.h>#include<linux/module.h>#include<linux/init.h>#include<linux/fs.h>#include<linux/kdev_t.h>#include<linux/cdev.h>// #define MAJOR_NUM 20// #define MINOR_NUM 1sta原创 2021-07-04 21:59:12 · 135 阅读 · 0 评论 -
字符设备注册(一)
**Chardev.c**#include<linux/kernel.h>#include<linux/module.h>#include<linux/init.h>#include<linux/fs.h>#include<linux/kdev_t.h>// #define MAJOR_NUM 20// #define MINOR_NUM 1static int MAJOR_NUM;//主设备号static int MINOR原创 2021-07-03 22:25:43 · 128 阅读 · 0 评论 -
驱动模块传参(array&&variable)
文件名:module_param.c#include<linux/init.h>#include<linux/module.h>#include<linux/kernel.h>static int a;static int b[5];static int count;//传参数module_param(a,int,0555);//module_param(name,type,perm) module_param(变量名,变量类型,权限)//传数组mod原创 2021-07-03 00:07:01 · 146 阅读 · 0 评论 -
杂项设备&&文件操作集
file_operationgs.c#include<linux/init.h>#include<linux/module.h>#include<linux/kernel.h>#include<linux/fs.h>//文件操作集头文件#include<linux/miscdevice.h>//杂项设备头文件#include<linux/uaccess.h>//数据发送接受头文件int misc_open(struct i原创 2021-06-27 15:46:50 · 163 阅读 · 0 评论 -
第一个杂项设备驱动
#include<linux/init.h>#include<linux/module.h>#include<linux/kernel.h>#include<linux/fs.h>#include<linux/miscdevice.h>struct file_operations misc_fops ={ .owner=THIS_MODULE};struct miscdevice misc_dev={ .minor=MISC_DY原创 2021-06-26 23:08:41 · 119 阅读 · 0 评论 -
认识一下杂项设备
cat /proc/misc 可以查看到杂项设备杂项设备特点:自动生成节点杂项设备是特殊的一种字符设备、比字符设备代码简单。主设备号为10、次设备号不同。ps主设备号给设备分类、次设备号区分具体设备杂项设备结构体描述 include/linux/miscdevice.hstruct miscdevice { int minor;//次设备号 const char *name;//设备节点名字 ls /dev 可以查看到 const struct file_operations *原创 2021-06-26 21:29:31 · 368 阅读 · 0 评论 -
ubuntu下第一个内核模块
1.文件准备新建hello.c Makefile在同级目录下2.hello.c#include<linux/module.h>//所有模块都要使用头文件module.h,此文件必须包含进来#include<linux/kernel.h>//头文件kernel.h包含了常用的内核函数。#include<linux/init.h>//头文件init.h包含了宏_init和_exit,它们允许释放内核占用的内存。static int __init Hello(vo原创 2021-06-12 16:54:34 · 285 阅读 · 0 评论