-
大小: 246KB文件類(lèi)型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-05-14
- 語(yǔ)言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
配合我寫(xiě)的兩篇關(guān)于簡(jiǎn)單字符設(shè)備和塊設(shè)備驅(qū)動(dòng)使用,這里是兩個(gè)驅(qū)動(dòng)程序的完整文件,使用的是 Ubuntu 16.0 的系統(tǒng)環(huán)境

代碼片段和文件信息
#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“);
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-30?12:58??2016112135_李匯遠(yuǎn)(os)\
?????文件??????303150??2019-01-30?12:51??2016112135_李匯遠(yuǎn)(os)\2016112135_李匯遠(yuǎn)(os).doc
?????目錄???????????0??2019-01-30?12:56??2016112135_李匯遠(yuǎn)(os)\demo1_chardevice\
?????文件????????1470??2019-01-29?11:53??2016112135_李匯遠(yuǎn)(os)\demo1_chardevice\demo1.c
?????文件?????????251??2019-01-29?10:15??2016112135_李匯遠(yuǎn)(os)\demo1_chardevice\Makefile
?????文件?????????323??2019-01-30?10:42??2016112135_李匯遠(yuǎn)(os)\demo1_chardevice\test.c
?????目錄???????????0??2019-01-30?12:57??2016112135_李匯遠(yuǎn)(os)\demo2_blockdevice\
?????文件????????2684??2019-01-30?11:41??2016112135_李匯遠(yuǎn)(os)\demo2_blockdevice\demo2.c
?????文件?????????251??2019-01-29?16:31??2016112135_李匯遠(yuǎn)(os)\demo2_blockdevice\Makefile
評(píng)論
共有 條評(píng)論