Ø取得驱动C文件并建立相应文件夹实现内核添加(以编译测试驱动程序为例)
1)在相应的文件夹下面建立驱动文件夹
将C程序放入该驱动文件夹下
2)创建或下载驱动C文件的头文件
3)编辑该驱动集合(该驱动模块)下面的Makefile添加编译选项
#===============driver_test============ obj-$(CONFIG_DRIVER_TEST_SYD168)+= driver_test/
#===================================
4)编辑该驱动集合(该驱动模块)下面的Kconfig添加编译选项菜单
#=========Driver_test_syd168===========
source "drivers/char/driver_test/Kconfig"
#======================================
5)编辑该驱动文件夹下面的Makefile添加编译此驱动程序
obj-$(CONFIG_DRIVER_TEST_SYD168)+= driver_test.o
6)编辑该驱动文件夹下面的Kconfig添加编译选项菜单
#
#tDriverdevice configuration
#
menu "Driver test by syd168"
config DRIVER_TEST_SYD168
bool "Driver test by syd168"
#depends on ACH_MINI2440
default y
---help---
Driver test by syd168 .5.2
Endmenu
7)修改内核根目录(Linux-2.6.37)下的Makefile
修改
ARCH?= arm指定平台
CROSS_COMPILE?= arm-linux-指定编译器
8)在驱动文件夹下面编译
#make
编译结果
built-in.oKconfigmodules.order
driver_test.cMakefiledriver_test.ko
driver_test.omodules.builtin
9)将驱动文件driver_test.ko拷贝到开发板/lib/modules
命令:#insmod driver_test.ko
安装驱动成功显示:Driver Init:Hello world
命令:#lsmod
查看当前安装的驱动:driver_test 704 0 - Live 0xbf000000
0xbf000000表示模块地址
卸载驱动要在/lib下面建立linux-2.6.37文件夹拷贝driver_test.ko到此文件夹下
命令:rmmod driver_test
卸载成功显示:Driver exit:Goodbye,world
Ø取得驱动C文件不建立相应文件夹直接放到相应模块文件夹下
1)将C文件拷贝到模块文件夹下面
2)下载或编写相应模块头文件相应模块文件夹下(与C程序一起)
3)编辑模块文件夹下Makefile添加相应的编译选项
obj-$(CONFIG_MINI2440_ADC) += mini2440_adc.o
4)编辑模块文件夹下Kconfig添加相应的选项菜单
config MINI2440_ADC
bool "ADC driver for Mini2440 development boards"
depends on MACH_MINI2440
default y if MACH_MINI2440
help
this is ADC driver for FriendlyARM Mini2440 development boards
Notes: the touch-screen-driver required this option
5)修改内核根目录(Linux-2.6.37)下的Makefile
ARCH?= arm指定平台
CROSS_COMPILE?= arm-linux-指定编译器
6)重新编译内核
7)制作内核映像文件
8)下载到开发板
9)编辑测试程序(对测试文件自己编写或下载一个编译arm-linux-gcc)测试
KERNELDIR = /home/wenhao/platform/linux-2.6.34
PWD := $(shell pwd)
CROSS_COMPILE = /usr/local/arm/4.3.2/bin/arm-linux-
CC = $(CROSS_COMPILE)gcc
obj-m := key.o
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
.PHONY: modules clean
!注意:make和rm前是TAB键,同时Makefile放在驱动文件同级目录,直接执行make命令即可