大部分的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) 函数,将它成为模块导出符,这样则可以供内核其它模块引用。