原创 Linux驱动入门

2009-6-30 19:54 2004 6 6 分类: MCU/ 嵌入式

 


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中的设备文件进行的。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条