驱动程序可以编进内核或则编成模块
驱动程序编成模块
打开/home/book/100ask_imx6ull-sdk/Linux-4.9.88/drivers/char/Kconfig文件,添加以下信息。
在/home/book/100ask_imx6ull-sdk/Linux-4.9.88在目录下使用make memuconfig命令查看配置菜单。
可以按/(斜杆),来搜索刚刚生成100ASK_LED节点。
type:tristate说明这是tristate型变量,只能为Y或则N或则M
Y表示编译进内核,N表示不编译,M表示编译成模块
在Device_Drivers->Character_devices路径下,将led_driver_for_100ask改成M值,然后保存退出
在/home/book/100ask_imx6ull-sdk/Linux-4.9.88下使用vim .config命令打开.config 文件,可以看到已经变量生成,且值为M。
可以将需要编译的成模块的.c文件放到/home/book/100ask_imx6ull-sdk/Linux-4.9.88/drivers/char目录下
然后修改/home/book/100ask_imx6ull-sdk/Linux-4.9.88/drivers/char下的Makefile文件
最后在/home/book/100ask_imx6ull-sdk/Linux-4.9.88下使用make modules命令生成模块。
启动程序编译进内核
这个步骤和编程程序不同的地方就是,将节点的变量值由M改成Y
然后在最后一步使用make modules命令改为使用make zImage -j 16
将驱动程序编进内核