資源簡介
配合我寫的兩篇關于簡單字符設備和塊設備驅動使用,這里是兩個驅動程序的完整文件,使用的是 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
評論
共有 條評論