当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 如何自动创建设备节点
帖子发表于 : 2009-05-31 10:28 

注册: 2009-05-27 17:01
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
我的字符驱动程序已经写好,并且已经编译进内核,但是每次需要手动mknod创建节点,现在我看别人的程序用devfs系统来自动创建设备节点,可是加入了相关代码后(注释的三行代码),编译有错误,程序代码见下面,求高人指点一下,帮我看看哪里出问题了,非常感谢!
#include <linux/kernel.h> /* printk() */

#include <linux/module.h>

#include <linux/init.h>
#include <linux/devfs_fs_kernel.h>



#include <linux/fs.h>

#include <linux/cdev.h> /* cdev_add(), cdev_del() */

#include <linux/errno.h> /* error codes */

#include <linux/irq.h> /* IRQT_BOTHEDGE */

#include <linux/interrupt.h> /* request_irq(), free_irq() */

#include <linux/slab.h> /* kmalloc(), kfree() */

#include <linux/poll.h> /* PULLIN, PULLRDNORM */
#include <linux/ioport.h>
#include <asm/arch/gio.h>
#include <asm/io.h>
#include <asm/arch/io.h>
#include <asm/arch/hardware.h>

#define DEVICE_NAME "GPIO_ZFK"
#define BUTTON_MAJOR 223
#define BUTTON_MINOR 0

MODULE_AUTHOR("GGY2005");
MODULE_LICENSE("GPL");

static int GPIO_button_open(struct inode *inode, struct file *filp)

{

gpio_set_direction(GPIO(6), GIO_DIR_OUTPUT);
gpio_set_value(GPIO(6),1);

return 0;

}

static int GPIO_button_release(struct inode *inode, struct file *filp)

{

gpio_set_direction(GPIO(6), GIO_DIR_OUTPUT);

gpio_set_value(GPIO(6),0);

return 0;

}



static struct file_operations GPIO_ZFK_fops = {

.owner = THIS_MODULE,

.open = GPIO_button_open,

.release= GPIO_button_release,

};
//static devfs_handle_t devfs_handle;

static int __init GPIO_button_init(void)

{
int result;
gpio_set_direction(GPIO(6), GIO_DIR_OUTPUT);
gpio_set_value(GPIO(6),0);

result=register_chrdev(223, DEVICE_NAME ,&GPIO_ZFK_fops);
if (result<0)
{
printk(DEVICE_NAME"can't register major number");
return result;
}
// devfs_handle=devfs_register(NULL,DEVICE_NAME,DEVFS_FL_DEFAULT,223,0,S_IFCHR|S_IRUSR|S_IWUSR,&GPIO_ZFK_fops,NULL);


return 0;

}



static void __exit GPIO_button_cleanup(void)

{

//devfs_unregister(devfs_handle);
unregister_chrdev(223, DEVICE_NAME);

}



module_init(GPIO_button_init);

module_exit(GPIO_button_cleanup);


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 如何自动创建设备节点
帖子发表于 : 2009-06-03 10:02 

注册: 2009-05-27 17:01
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
怎么没有人回复啊??


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译