Linux 内核针对驱动的处理有以下两种方式:
第一种方式:把所有需要的功能全部编译到内核中,这种方式会导致重新添加或者删除功
能的时候,需要重新编译内核。
第二种方式:动态的添加模块,也就是这个实验要介绍的“模块的方式添加驱动”。

第二种方式请看第一篇

这篇介绍怎么把功能全部都编译进内核里面:

1. 首先配置编译器

vim .bashrc”打开环境变量文件“.bashrc
在这里插入图片描述
如下图所示,进入最底行,可以看到,在环境变量文件中编译器路径设置为“export
PATH=$PATH:/usr/local/arm/arm-2009q3/bin”。
在这里插入图片描述

然后使用命令“#cd /usr/local/arm/”,进入解压编译器“arm-2009q3.tar.bz2”的文件
目录。
在这里插入图片描述

进入内核文件的Makefile
在这里插入图片描述
这里通过 vim 编辑器查找参数“CROSS_COMPILE”,如下图所示


后面执行make 就会生成镜像文件了zImage

举例说明怎么编译出镜像文件的
led 驱动属于字符驱动,字符驱动一般是在源码目录“drivers/char/
在这里插入图片描述
itop4412_leds.c :比较好理解,就是 led 驱动的源码
itop4412_leds.o :这个是生成最终 zImage 二进制的中间文件
Makefile :就是 Make 命令所需要的文件

所以我们只需要把我们的驱动.c文件放到这个目录之后就可以了。

然后在makefile里面修改:
打开“vim drivers/char/Makefile”文件之后,找到和 itop4412_leds.c 相关的文件,搜
索“itop4412_leds”,如下图所示。
在这里插入图片描述
仿写一个这样的脚本即可。

如果想添加类似的字符驱动,就可以在这个目录下添加。
Kconfig、Makefile、menuconfig、“.config”文件大家就可以联系起来了。

Logo

更多推荐