当前位置:  技术问答>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代码如下:

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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我参照书写了几个EJB文件,编译不了,为什么?
  • 为什么linux中的web浏览器会打不开呢 而且打开却是这种现象 参照图
  • 我参照别人的文章配置cvs,不能成功
  • 编译时发生“符号参照错误”提示!
  • linux下参照网上写了个备份脚本报错,请大侠们帮忙看下
  • oracle iis7站长之家


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3