引子:首先实现了可加载的内核模块,通过这个内核模块实现对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
(保存关闭)
编译就可以了。
同颜色的部分是相关联的,即肝胆相照,荣辱与共,同生共死,互为因果。