- UID
- 872238
|
make ic.o
clean:
rn*o
执行命令make install,便可以实现驱动模块的动态编译。
内核提供了两个应用程序insmod和rmmod来实现内核模块的动态加载和去除。在模块编译当前目录下执行命令
mknod/dev/charmodule c2540
建立与此设备模块对应的设备文件节点。c表示为字符设备,254表示主设备号,0表示子设备号。
执行命令insmod ic.o,可实现模块动态加载;而命令rmmod ic可实现模块的动态去除。
6 驱动模块的静态编译进内核
①将模块驱动源文件拷贝进/drivers/char/目录下;
②修改/drivers/char/Makefile文件,添加obj-$(CONFIG_MYMODULE)+=ic.o
③在/drivers/char/config.in文件中添加config CONFIG_MYMODULE
bool “IC”CONFIG_MYMODULE
④进入编译内核目录,执行make menuconfig。
在character devices 目录下即可见到IC选项。选择,然后执行编译命令,即可编入内核或仅编译模块:
make mrproper
make menuconfig
make CROSS_COMPILE=ppc_8xx-gcc
make modules CROSS_COMPILE=ppc_8xx-gcc
即可只编译内核。在源文件目录下可见到ic.o。
7 总结
用基本的字符设备实现IC卡设备的驱动模块开发。内核驱动模块的开发是与硬件直接接触的。针对硬件的不同,其内部处理方法也千变万化。对于内核模块开发,最有效的学习途径和最好的学习文档就是Linux的内核源代码。同时,加入一些Linux的邮件开发组也将获益匪浅。 |
|