EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
文章目录
: {; D: N) B5 @. Y7 w# g: G1 编译驱动程序
. f% u" r7 y2 J( ~6 U: M, |9 w2 编译应用测试程序
* k! l7 P! G) f# p2 B3 运行测试
6 }% f8 D. a6 B7 b, R2 F! m3 I1 编译驱动程序和前面章节中驱动测试程序一样需要一个Makefile文件,只是将obj-m的值改为beep_misc.o,Makefile文件内容如下: ![]()
# N, l9 D5 ~" L5 ~ d, p, p, \, N然后执行“make”命令编译模块,编译完成生成beep_misc.ko模块文件。 2 编译应用测试程序输入如下命令编译应用测试程序:
1 Q Q3 i8 w- G3 {% j: l; A! xARM-linux-gnueabihf-gcc -o beep_misc_test beep_misc_test.c
G3 g R5 C: V5 V, L5 ~- x编译完成后,会生成beep_misc_test可执行文件。 3 运行测试启动开发板,将编译好的beep_misc.ko模块文件和beep_misc_test应用程序拷贝到/lib/modules/4.1.15目录下(检查开发板根文件系统中有没有“/lib/modules/4.1.15”这个目录,如果没有的话需要自行创建一下。开发板中使用的是光盘资料里面提供的busybox文件系统,光盘资料的“i.MX6UL终结者光盘资料\08_开发板系统镜像\03_文件系统镜像\01_Busybox文件系统”目录下)。输入下面命令加载模块: ![]() ; \0 @ z' o. y
驱动加载成功后,可以在/sys/class/misc 这个目录下看到一个名为“miscbeep”的子目录,如图所示: ![]() & W. p: Y1 b: _" d$ i
所有的 misc 设备都属于同一个类,/sys/class/misc 目录下就是 misc 这个类的所有设备,每个设备对应一个子目录。: K. D4 ^! q0 [+ {/ M7 U9 a
驱动与设备匹配成功以后就会生成/dev/miscbeep 这个设备驱动文件,输入如下命令查看这个文件的主次设备号:
6 h- ^4 o0 |/ v1 t8 m1 Wls /dev/miscbeep -l
* n$ O) t( j4 U# s8 b结果如图: ![]()
0 V' E( s; T# u) a# @+ G5 g可以看出,/dev/miscbeep 这个设备的主设备号为 10,次设备号为 144,和我们驱动程序里面设置的一致。
& o1 t7 x: {9 n G [然后使用beep_misc_test应用程序来测试一下驱动文件,输入下面的命令打开beep:! F/ R% E( j( t0 B
./beep_misc_test /dev/miscbeep 1
. W' o( N! U5 G1 X0 |; ?+ ^关闭beep使用下面的命令:
7 L8 G" K0 c1 ]- t./beep_misc_test /dev/miscbeep 0
3 m. P/ i4 k, u. ]' r O如果蜂鸣器能够正常打开和关闭,说明驱动文件没有问题。5 v8 U7 T' ^9 R4 \' v! X% z* ?* p
卸载驱动模块使用下面的命令:
3 g! A+ K z! }% z4 D, `$ Grmmod beep_misc ![]() ( S" Q) F5 Y2 F8 m6 [
![]()
, E, T3 i3 h& R9 `7 Q7 v |