ARM-Linux内核驱动加载过程思路

取得驱动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 2011.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)测试

前有阻碍,奋力把它冲开,运用炙热的激-情,

ARM-Linux内核驱动加载过程思路

相关文章:

你感兴趣的文章:

标签云: