PWM驱动和LED驱动的实现流程类似,PWM驱动将由多个文件组成。Linux驱动的代码重用有很多种方法。编译是由多个文件组成的Linux驱动。Word_count驱动和LED驱动实现的功能不同,但都是由一个源代码文件组成。如果在模拟器或者开发板上采用动态装载.KO文件的方式测试Linux驱动,就算无法正常卸载Linux驱动,只要重新启动模拟器或者开发板,动态Linux模块就会从内存中卸载。但是这样会使及其崩溃,所以对于不同的情况可以使用不同的方法。强行卸载Linux驱动的情况有初始化函数崩溃(由于Linux驱动模块的初始化函数进行了某些操作而崩溃,从而导致初始化函数无法正常返回)、卸载函数被阻塞(在使用rmmod命令卸载Linux驱动时,系统会调用卸载函数,只有卸载函数成功返回时,Linux驱动才会被卸载)。蜂鸣器驱动的基本原理是通过脉冲来控制蜂鸣器的打开和停止,通过I/O命令可以打开和停止PWM。PWM驱动由pwm.c、pwm_fun.h、pwm_fun.c(包含了打开和停止两个函数)组成。要实现这一整个过程首先要明白PWM的原理,其次是实现蜂鸣器驱动,最后是测试蜂鸣器驱动。main_init标识Linux驱动初始化函数,main_exit标识Linux驱动卸载函数。