驱动开发中共一般有2中内核调试方式 :静态编译进内核& 动态模块加载。而调试方式有3中,一种是每次下载内核与文件系统,启动,调试, 另外一种是在运行中动态加载内核,还有一种是nfs网络启动。
在所有的方法中,动态加载模块的方法是最简单的。但是它主要需要编写一个makefile,但是也可以不写。一下是两种方法。
一。添加支持动态模块加载的内核和应用程序支持。
在make menuconfig中配置内核时选择:Loadable module support --->
[*] Enable loadable module support
[] Set version information on all module symbols (NEW)
[*] Kernel module loader (NEW)
并在应用程序配置中选择busybox下的insmod/rmmod/lsmod,
并选中: [*] Post 2.1 kernel modules。
二。逃避makefile
关于驱动模块的.c(例如mydriver.c)可这样编译,不需要单独写Makefile,就直接放到uClinux/linux2.4.x里面参与内核编译即可:
cp mydriver.c uClinux-dist/linux-2.4.x/drivers/char
然后修改uClinux-dist/linux-2.4.x/drivers/char/Makefile,
obj-y += mem.o tty_io.o n_tty.o tty_ioctl.o raw.o pty.o misc.o random.o mydriver.o
在最后加入mydriv