驱动模块编译。如何编译开发板上驱动程序模块? 1、根据开发板硬件配置编写驱动程序。2、编译 2.6 版本的驱动模块需要把驱动代码加入内核代码树,并做相应的配置。配置步骤如下: (1)、将字符设备的驱动程序源代码文件拷贝到/drivers/char (2 )、编辑配置文件 Kconfig,加入驱动选项,使之在 make menuconfig 的时候出现。在 make menuconfig 图形界面配置中 driver 下的 char 中出现对应的配置选项,将其选择为模块编译方式。 例如:加入最简单 hello 模块时候在 Kconfig 中加入如下代码: Config TE6410__HELLO_MODULE //该项在 Makefile 文件中使用,是Makefile和make menuconfig 配置之间的桥梁作用 Tristate “TE6410 hellow module ” Help Hello module sample 保存退出 Kconfig 文件。 (3)、运行 make menuconfig,选择其中 hello 模块为模块编译方式。 3、通过上一步,虽然可以在配置内核的时候进行选择,但实际上此时执行编译内核还是不把 hello.c 编译进去或者编译为模块方式,还需要在Makefile 中 把 内 核 配 置 选 项 和 真 正 的 代 码 联 系 起 来 , 打 开 linux-xxxxxxxx/drivers/char/Makefile,添加如下内容并保存退出, Obj -$(CONFIG_TE6410_HELLO_MODULE) +=hello.o (文件名和驱动代码源文件名相同)。 4、此时配置完毕,接下来就是编译内核模块,不需要编译整个内核源文件,只需要编译模块就可以。用以下命令指定编译模块。(以下命令运行是在源码的根目录下执行其中 Makefile 文件)。 make modules SUBDIRS=driver/char 编译完成以后在/driver/char 目录下会生成 hello.ko 的驱动程序文件。 5、将该程序拷贝或下载到开发板上用 insmod hello.ko 加载到开发板操作系统中,查看程序的运行结果。或者用 nfs 将主机的目录挂载到开发板上,然后加载驱动并测试 .总结与思考:如何将 hello.c 静态编译进内核?如何利用 Makefile 文件交叉编一个驱动模块?