文件夹的选择
把我们的驱动源文件(test.c)放到对应目录下,具体放到哪里需要根据驱动的类型和特点。
一般情况下我们分为字节驱动和块驱动,他们分别对应的文件夹时drivers下的char文件夹与block文件夹。(实际上并不一定要放到这些文件,可以再新建文件夹)
内核的配置系统组成
可参考牧野星辰的博客
将字符驱动编译到内核
以test.c为例,将其添加到插入目录下,此时可分为两种情况。
1、不创建子目录,直接将test.c拷贝到char目录
打开char目录的Kconfig,仿写其他驱动的格式在menu "Character devices"的下一行之后添加
config TEST
bool "Memory device driver"
default y
help
This is a test
打开char目录的Makefile,仿写其他驱动的格式添加
obj-$(CONFIG_TEST) += test.o
保存运行即可。
2、创建子目录test文件夹,此时需要在子目录再创建Konfig与Makefile文件
在test文件夹的Kconfig写入
menuconfig TEST1
config TEST
bool "Memory device driver"
default y
help
This is a test
在test文件夹的Makefile写入
obj-$(CONFIG_TEST) += test.o
打开char目录的Kconfig添加
source "drivers/char/test/Kconfig"
打开char目录的Makefile添加
obj-$(CONFIG_TEST) += test/
重新编译内核,在ARM上输入
cat /proc/devices
可看见test驱动是否已经挂载