memdev驱动试验
今天开始驱动的学习,根据国嵌驱动开发视频一边学习,一边试验。国嵌视频上首先讲述字符驱动开发过程,memdev就是最好的例子。首先在看懂源码的基础上学习怎么将驱动装载到开发板。下面是memdev源码:
执行make就会生成memdev.ko驱动文件,将编译好的驱动memdev.ko拷贝至开发板/lib/modules目录。
注意:驱动程序的编译依赖内核源代码,并且内核源代码(KERNELDIR指明)要与目标板运行的内核一致。
编写应用程序,对驱动程序测试
arm-linux-gcc –o memdevapp memdevapp.c编译应用程序,将其下载至开板
添加模块:
# cd /lib/modules
# insmod memdev.ko
添加设备节点:
# cd /dev
# cat /proc/devices 查看设备号
# mknod memdev0 c 260 0
运行应用程序
# ./memdevapp
以上方法采用的动态编译驱动,也可以静态方式将驱动编译进内核
1.将memdev.h和memdev.c两个驱动源文件拷贝至内核linux-2.6.24/drivers/char目录
2.修改该目录下Kconfig文件,添加如下内容
config MEMDEV_DRIVER
tristate "memdev driver"
depends on MACH_SMDK2440
default y if MACH_SMDK2440
help
this option enables support for memdev experiment
3.修改该目录下Makefile,添加如下内容
obj-$(CONFIG_MEMDEV_DRIVER) +=memdev.o
4.在make menuconfig时在字符设备中找到菜单项“memdev drinver”,选择为Y或M,编译进内核还是模块。