• 大小: 246KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: 其他
  • 标签:

资源简介

配合我写的两篇关于简单字符设备和块设备驱动使用,这里是两个驱动程序的完整文件,使用的是 Ubuntu 16.0 的系统环境

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
#include
#include
#include

struct cdev chrdev;
unsigned int major=0;
unsigned int minor=0;
dev_t dev_no;
int ret;

int my_open(struct inode *istruct file *f){
printk(“cdev init\n“);
return 0;
}

int my_release(struct inode *istruct file *f){
printk(“cdev release\n“);
return 0;
}

static ssize_t my_write(struct file *fconst char __user *usize_t lloff_t *o){
char buf[100];
copy_from_user(buful);
printk(KERN_EMERG“write string:%s“buf);
return l;
}

static ssize_t my_read(struct file *fchar __user *usize_t lloff_t *o){
char *buf=“hellouser!“;
copy_to_user(ubufstrlen(buf));
printk(KERN_EMERG“read string:%s“buf);
return l;
}

struct file_operations fops={
.owner=THIS_MODULE
.open=my_open
.release=my_release
.write=my_write
.read=my_read
};

static int my_init(void){
dev_no=MKDEV(majorminor);
if(dev_no>0){
ret=register_chrdev_region(dev_no1“demo1“);
}else{
ret=alloc_chrdev_region(&dev_no01“demo1“);
}
if(ret<0){
return ret;
}
cdev_init(&chrdev&fops);
chrdev.owner=THIS_MODULE;
cdev_add(&chrdevdev_no1);
return 0;
}

static void my_exit(void){
unregister_chrdev_region(dev_no1);
cdev_del(&chrdev);
}

module_init(my_init);
module_exit(my_exit);

MODULE_AUTHOR(“guoz“);
MODULE_DEscriptION(“this ostest demo1“);
MODULE_LICENSE(“GPL“);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-30 12:58  2016112135_李汇远(os)\
     文件      303150  2019-01-30 12:51  2016112135_李汇远(os)\2016112135_李汇远(os).doc
     目录           0  2019-01-30 12:56  2016112135_李汇远(os)\demo1_chardevice\
     文件        1470  2019-01-29 11:53  2016112135_李汇远(os)\demo1_chardevice\demo1.c
     文件         251  2019-01-29 10:15  2016112135_李汇远(os)\demo1_chardevice\Makefile
     文件         323  2019-01-30 10:42  2016112135_李汇远(os)\demo1_chardevice\test.c
     目录           0  2019-01-30 12:57  2016112135_李汇远(os)\demo2_blockdevice\
     文件        2684  2019-01-30 11:41  2016112135_李汇远(os)\demo2_blockdevice\demo2.c
     文件         251  2019-01-29 16:31  2016112135_李汇远(os)\demo2_blockdevice\Makefile

评论

共有 条评论