添加内部编译驱动代码的方式有两种,这次采用的是生成驱动模块的方式:
一、将驱动代码添加到内核中
二、编译生成驱动模块
1、首先根据内核一贯的风格,将内核模块代码写在drivers/char目录下,编写自己的内核模块调试代码(此处为demo.c)
demo.c的代码为基础代码,主要就是内核三要素,作为调试的简单代码,此处不在列出。
2、在内核源码drivers/char目录中打开Kconfig中添加以下代码:
其中tristate 为三态选项 表示其可以是加载到模块,编译到内核和不做任何处理三种状态
也可设置为bool 为两态选项 表示其可以是加载到模块和不做任何处理两种状态,default选项为n,默认不编译,为y默认编译,help为帮助信息(此处随便设置了)
3、修改该目录下的Makefile文件,添加代码如下(红色部分):
此时,在内核源码顶层目录下 make menuconfig 进入图形界面配置 即可看到刚才配置的选项
通过空格进行选择,如果是M则编译成模块,是*则编译到镜像中,是空则不编译,配置以后,会将配置结果写在.config文件中
之后执行 make uImage 编译,会将demo.c编译生成demo.o
然后继续下载镜像的步骤即可!