第八章
linux驱动的代码重用:
linux驱动的代码重用有很多种方法,可以采用标准c程序的方式。将要重用的代码放在其他的文件中。如果要使用这些功能,include相应的头文件即可(这种方式称为静态重用)。也可以使用另外一种动态重用方式,也就是一个linux驱动可以使用另外一个linux驱动中的资源。
注意如果linux驱动的代码不多,将所有的代码都放到一个文件中并没有什么不妥,但对于复杂的linux驱动,就需要使用多个源代码文件存放不同的功能代码,这样做有利于代码分类和管理,当然,如果linux驱动要使用第三方的源代码,那么就不得不编译多个源代码文件,最终生成.ko文件或编译进linux内核。
强行卸载linux驱动:
情况1:初始化函数崩溃,由于linux驱动模块的初始化函数进行了默写操作而崩溃,从而导致初始化函数无法正常返回,再这种情况下的表现是当前linux驱动模块没有被任何其他的linux驱动模块使用,但却显示已经被引用了一次。
情况2:卸载函数被阻塞,在使用rmmod命令卸载linux驱动时,系统会调用卸载函数(通过module_exit宏指定的函数),只有卸载函数返回成功时,linux驱动才会被卸载如果卸载函数被阻塞,rmmod命令也会被阻塞。
时间: 2024-10-10 00:51:21