本文以am335x_gpio为例来分析如何把驱动模块添加到内核。通过分析该模块的配置方法,我们可以依样画葫芦添加自己的驱动模块到内核。下面按目录层次自下而上来分析。
一.驱动源代码层
路径:\drivers\char
文件:
1.am335x_gpio.c —驱动模块源代码
2.Kconfig — 内核配置文件
\drivers\char\Kconfig
menu "Character devices" // 菜单名
...
config AM335X_GPIO
tristate "AM335X GPIO Support" // 配置子菜单
...
endmenu
3.makefile
\drivers\char\Makefile
obj-$(CONFIG_AM335X_GPIO) += am335x_gpio.o // 模块文件
二.源代码上一级目录
路径:\drivers
文件:
1.Kconfig — 内核配置文件
menu "Device Drivers" // 菜单名
......
source "drivers/char/Kconfig"
......
endmenu
2.makefile
\drivers\Makefile
obj-y += char/ // 目录名
三.内核根目录层
路径:内核源码根目录
文件:
1.makefile
drivers-y := drivers/ sound/ firmware/ // 在这里添加需要的目录
2…config
CONFIG_AM335X_GPIO=y // 配置值
该文只是分析了内核添加驱动模块相关的文件配置,更多分析可以参考另一篇博文