《Android深度探索》卷1 第八章笔记 1314 王宁

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Android深度探索》卷1 第八章笔记 1314 王宁相关的知识,希望对你有一定的参考价值。

第八章 读书笔记

1、编译是由多个文件组成的Linux驱动(静态重用)

对于复杂的Linux驱动,需使用多个源代码文件存放不同的功能代码,这样有利于代码的分类与管理,那么必须编译多个源代码文件,最终生成.ko文件或编译进Linux内核

下面,就介绍将3.c文件分别编译为3.o文件,并将这3.o文件链接(link)成一个.ko文件——静态重用

2Linux驱动模块的依赖(动态重用)

在一个驱动模块里使用另一个驱动模块内被导出的符号,如常量、变量、函数等。

接下来学习了强行卸载linux驱动,只能卸载由于卸载异常而导致的linux驱动模块无法正常卸载的情况。情况1:初始化函数崩溃 情况2:卸载函数阻塞

PWM驱动由三个文件组成:PWM.CPWM—fun.hpwm-fun.c、其中pwm.c是驱动主程序。

3.强行卸载Linux驱动

情况1:初始化函数崩溃

由于Linux驱动模块的初始化函数进行了某些操作而崩溃,从而导致初始化函数无法正常返回,这种情况是当前Linux驱动模块没有被任何其他的Linux驱动模块使用,但却显示已经被应用了一次。这种情况是因为引用计数器的值和引用者不一致。只需要将当前的Linux驱动模块的引用计数器清零即可

情况2:卸载函数被阻塞

在使用rmmod命令卸载Linux驱动时,系统会调用卸载函数,只有卸载函数成功返回时,Linux驱动才会被卸载,如果卸载函数被阻塞,rmmod命令也会被阻塞,也就是说永远不会执行到卸载Linux驱动模块的代码,这种情况的表现是一执行rmmod命令就会停在那不动了,永远也不会返回到系统的操作提示符。解决办法就是卸载函数,只要将原来的卸载函数替换成一个空的卸载函数即可

 

以上是关于《Android深度探索》卷1 第八章笔记 1314 王宁的主要内容,如果未能解决你的问题,请参考以下文章

《Android深度探索》(卷1)HAL与驱动开发 第八章心得体会

Android深度探索(卷1)HAL与驱动开发第八章总结

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

Android深度探索——第八章读书笔记及心得

Android深度探索--HAL与驱动开发----第八章读书笔记

Andriod深度探索(卷1)HAL与驱动开发 第八章读书心得