Android深度探索读书笔记 第八章

      代码的重用分为静态重用跟动态重用。静态重用:采用标准的c程序的方式,将要重用的代码放在其他的文件中,如果要使用相应的某些功能,include相应头文件即可。动态重用:也就是一个linux驱动可以使用另外一个linux驱动中的资源。还有另外一种代码共享的方式:,模块依赖,也称为导出符号。在一个驱动模块里使用另外一个驱动模块里的被导出的符号(常量、变量、函数等)。编译是由多个文件组成的linux驱动,如果linux驱动代码不多,可以将所有的代码放在一个文件中,如果linux驱动代码比较复杂,就需要使用多个源代码文件存放不同的功能代码,这样有利于代码的分类和管理。如果linux驱动要使用第三方的原代码,那么就得编译多个源代码文件,最终生成.ko文件或编译进linux内核。在某些情况下需要强行卸载linux驱动:1、由于linux驱动模块的初始化函数进行了某些操作而崩溃,从而导致初始化函数无法正常反回。2、在使用rmmod命令卸载驱动时,系统会调用卸载函数,只有卸载函数成功返回时,linux驱动才会被卸载,如果卸载函数被阻塞,rmmod命令也会被阻塞,无法执行到卸载linux驱动模块的代码。这种问题的根源就是卸载函数,因此只要将原来的卸载函数替换成一个空的卸载函数即可。

                                                              

                                                                        http://www.cnblogs.com/sam0304/

原文地址:https://www.cnblogs.com/sam0304/p/5642171.html