新闻  |   论坛  |   博客  |   在线研讨会
Linux驱动入门
mayer | 2009-07-13 18:35:28    阅读:1613   发布文章

Linux驱动入门

 

写驱动,其实主要就是三件事:

1、实现struct file_operations中的函数。

一般至少需要实现六个:

int (*open) (struct inode *, struct file *);

int (*release) (struct inode *, struct file *);

ssize_t (*read) (struct file *, char __user *, size_t, loff_t);

ssize_t (*write) (struct file *, const char __user, size_t, loff_t);

loff_t (*llseek) (struct file *, loff_t, int);

int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);

2、实现两个模块中必须的函数:

static int __init my_init(void);

static void __exit my_exit(void);

模块,无外乎就是多了init和exit这两个函数,可以把驱动程序中实现的函数加载进内核中,

和把驱动程序从内核中卸载。

3、写一个加载模块的脚本,里面要在用insmod加载了驱动模块之后,

用mknode创建/dev中相应的文件。今后用户操作设备时都是通过访问/dev中的设备文件进行的。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客