当前位置: 技术问答>linux和unix
参照网上写的一个简单字符驱动程序,为什么只能用一次
来源: 互联网 发布时间:2017-01-28
本文导语: RT rmmod后,再make clean 之后再make,就出现错误了; 代码中有冗余的地方,麻烦大家也指证一下哈。 分不够,再加哦。 makefile代码如下: obj-m:=cdev.o default: $(MAKE) -C /usr/src/linux-2.6.32 M=`pwd` modules clean: rm -rf *.o *....
RT
rmmod后,再make clean
之后再make,就出现错误了;
代码中有冗余的地方,麻烦大家也指证一下哈。
分不够,再加哦。
makefile代码如下:
字符驱动程序代码:
rmmod后,再make clean
之后再make,就出现错误了;
代码中有冗余的地方,麻烦大家也指证一下哈。
分不够,再加哦。
makefile代码如下:
obj-m:=cdev.o
default:
$(MAKE) -C /usr/src/linux-2.6.32 M=`pwd` modules
clean:
rm -rf *.o *.ko *~ core .depend *.mod.c .*.cmd .tmp_versions .*.o.d *.order *.symvers
字符驱动程序代码:
#include
#include
#include
#include
#include
#include
#include
#include /* printk() */
#include /* kmalloc() */
#include /* size_t */
#include /* O_ACCMODE */
#include /* cli(), *_flags */
#include /* copy_*_user */
unsigned int cdev_major = 0;
static ssize_t read_cdev(struct file *pFile, char __user *pBuf, size_t vCount, loff_t *f_pos)
{
int i;
for (i = vCount; i > 0; i--)
{
__put_user(1, pBuf);
pBuf++;
}
return vCount;
}
static ssize_t write_cdev(struct file *pFile, const char __user *pBuf, size_t vCount, loff_t *f_pos)
{
return vCount;
}
static int open_cdev(struct inode *pInode, struct file *pFile)
{
try_module_get(THIS_MODULE);
return 0;
}
static int release_cdev(struct inode *pInode, struct file *pFile)
{
module_put(THIS_MODULE);
return 0;
}
struct file_operations cdev_fops = {
.owner = THIS_MODULE,
.read = read_cdev,
.write = write_cdev,
.open = open_cdev,
.release = release_cdev,
};
static int begin_module(void)
{
int result;
result = register_chrdev(0, "cdev_test", &cdev_fops);
if (result
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!