Linux:驱动程序直接编译到内核


引子:首先实现了可加载的内核模块,通过这个内核模块实现对PWM定时器的控制和中断处理程序的注册。这里讨论一下将内核模块直接编译进内核的过程。

其实很简单

第一步:将源文件代码 mytimer.c(不知道这么说规范不,反正就是 .c 文件)拷到Linux源代码目录下的 drivers 下的某个目录下 如:drivers/char

第二步:修改drivers/char 中的 Kconfig,Kconfig文件维护着内核模块配置的菜单(Linux源代码根目录下 make menuconfig 出来的东西)

打开Kconfig,看到:

menu "Charecter devices" (drivers/char 中的Kconfig维护着菜单中字符驱动的选项)

(依照其他驱动的格式添加)

config MY_TIMER

(Tab)bool "my_timer" (在make menuconfig 打开的菜单中,my_timer 将出现在Charecter devices 的下一层)

(保存关闭)

如果选择了my_timer 配置结果将体现在Linux源代码根目录下 .config 文件中,在该文件中将会自动添加 CONFIG_MY_TIMER=y 的配置项。

第三步:打开drivers/char 中的 Makefile

(依照其他驱动的格式添加)

obj-$(CONFIG_MY_TIMER)        += mytimer.o

(保存关闭)

编译就可以了

同颜色的部分是相关联的,即肝胆相照,荣辱与共,同生共死,互为因果。

相关内容