LInux模块总结

来源:互联网 发布:mac能玩风暴英雄吗 编辑:程序博客网 时间:2024/05/16 09:18

   大部分的Linux驱动程序都是建立在Linux内核模块之上的,所以有必要花些时间研究研究LInux模块的知识,把基础打好了,对以后驱动的编写肯定会有很大的帮助的。下面展示一下module的框架。

 

 

 

 

b_init()为内核模块初始化函数,在模块加载的时候执行。要通过module_init(b_init)对其进行初始化。

 

b_exit()为内核模块结束函数,在模块退出的时候将会执行。要通过module_exit(b_exit);对其进行初始化。

 

变量canshu通过 module_param(canshu,int,S_IRUGO)   将它定义为模块的参数,如果模块在初始化的时候为它赋值,则它的值就为模块所赋的值,没有赋值的话则为默认值。

(insmod b.ko canshu=20)

 

函数test 通过 EXPORT_SYMBOL(test) 函数,将它成为模块导出符,这样则可以供内核其它模块引用。