设为首页 加入收藏

TOP

Linux驱动修炼之道
2014-11-24 08:34:46 来源: 作者: 【 】 浏览:0
Tags:Linux 驱动 修炼

module.h包含可装载模块需要的大量符号和函数定义,包含init.h的目的是指定初始化和清除代码,struct file是在中定义的。


注册字符设备使用


int register_chrdev(unsigned int major, const char *name, struct file_operations *fops);


移除字符设备使用


int unregister_chrdev(unsigned int major, const char *name);


init函数是在insmod时被调用的,exit函数是在rmmod时被调用的。


使用命令 cat /proc/devices 可以查看设备的主设备号。


如果内核没有为我们生成设备文件,我们需要手动生成:


mknod /dev/led_driver c 234 0


__init标记表示该函数只在初始化期间使用,在模块被装载后,模块装载器就会将初始化函数扔掉,这样可将函数占用的内存释放出来。


__exit修饰的函数只在模块卸载或系统关闭时被调用,如果模块被直接内嵌到内核中,或者内核的配置不允许卸载模块,则被标记为__exit的模块将被简单丢弃。


驱动程序:



测试程序:



效果:此时LED灯也轮流闪烁。



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux进程地址空间 下一篇Linux下编译chrome生成Makefile阶..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何理解c语言指针和 (2025-12-27 01:19:11)
·为什么C标准库没有链 (2025-12-27 01:19:08)
·玩转C语言和数据结构 (2025-12-27 01:19:05)
·MySQL 基础入门视频 (2025-12-26 23:20:22)
·小白入门:MySQL超详 (2025-12-26 23:20:19)