基于mini2440的驱动程序开发和移植
2010-07-08 14:49
218 查看
首先要保证自己的驱动程序正确的,然后编写Makefile,下面是Makefile例子
ifneq ($(KERNELRELEASE),)
obj-m := memdev.o
else
KDIR := /opt/FriendlyARM/mini2440/linux-2.6.32.2
all:
make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-
clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers
endif
KDIR指向的内核版本一定要和板子上的内核一致,不一致的话有可能会安装不上,这时候可以强制安装,但最好不要这么做。
然后make,例如这里的驱动程序是memdev.c ,make后生成的.ko文件,然后通过nfs或者tftp或者其他方式把.ko文件移植到板子上的系统中,然后cp /lib/modules/2.6.32.2-FriendlyARM/下面,然后执行modprobe memdev,安装模块,或者使用insmod,不过使用modprobe 可以检查改驱动模块的依赖关系,
今天一直安装不上,总是提示下图的错误:
![](http://hi.csdn.net/attachment/201007/8/0_1278571535J1dJ.gif)
后来才知道,原来是驱动主设备号冲突了,在/proc/device里面可以查看当前的驱动设备号,如果冲突了就无法安装了,
然后修改了主设备号,重新编译安装,才安装上去,在/proc/device里面查看,发现了memdev这个设备,主设备号是250
![](http://hi.csdn.net/attachment/201007/8/0_1278571666Bt9b.gif)
然后建立设备文件,在Dev下执行mknod memdev c 250 0就创建了设备文件memdev,
mknod + 设备名称 +设备类型 +主设备号+次设备号
然后就可以编写测试程序来使用驱动了
ifneq ($(KERNELRELEASE),)
obj-m := memdev.o
else
KDIR := /opt/FriendlyARM/mini2440/linux-2.6.32.2
all:
make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-
clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers
endif
KDIR指向的内核版本一定要和板子上的内核一致,不一致的话有可能会安装不上,这时候可以强制安装,但最好不要这么做。
然后make,例如这里的驱动程序是memdev.c ,make后生成的.ko文件,然后通过nfs或者tftp或者其他方式把.ko文件移植到板子上的系统中,然后cp /lib/modules/2.6.32.2-FriendlyARM/下面,然后执行modprobe memdev,安装模块,或者使用insmod,不过使用modprobe 可以检查改驱动模块的依赖关系,
今天一直安装不上,总是提示下图的错误:
![](http://hi.csdn.net/attachment/201007/8/0_1278571535J1dJ.gif)
后来才知道,原来是驱动主设备号冲突了,在/proc/device里面可以查看当前的驱动设备号,如果冲突了就无法安装了,
然后修改了主设备号,重新编译安装,才安装上去,在/proc/device里面查看,发现了memdev这个设备,主设备号是250
![](http://hi.csdn.net/attachment/201007/8/0_1278571666Bt9b.gif)
然后建立设备文件,在Dev下执行mknod memdev c 250 0就创建了设备文件memdev,
mknod + 设备名称 +设备类型 +主设备号+次设备号
然后就可以编写测试程序来使用驱动了
相关文章推荐
- 基于mini2440的驱动程序开发和移植
- 基于ARM体系结构的嵌入式开发(1)-----移植第一个驱动程序
- 基于ARM体系结构的嵌入式开发(1)-----移植第一个驱动程序
- 移植linux-2.6.32.2到感知SensorRF2开发平台(基于mini2440)(实录)—— 杨学鹏
- 《Mini2440_Linux移植开发实战指南》nandflash驱动移植(修改)
- 基于mini2440的QT程序移植
- 【ARM&Linux】基于c3c2440 Linux SPI驱动程序移植与测试
- 【引用】Linux-2.6.32.2内核在mini2440上的移植(一)---构建自主开发环境
- linux-2.6.32在mini2440开发板上移植(9)之添加触摸屏驱动程序
- mini2440 SPI驱动移植 (基于SPI子系统)
- 基于Windows8与Visual Studio11开发第一个内核驱动程序
- 基于Windows8与Visual Studio11开发第一个Wdm驱动程序
- 基于2440的Qt环境移植,且开发Qt跨平台程序
- mini2440 led驱动代码(原创)基于iomap<测试初始化没有问题,其它功能待开发>
- 基于mini2440的boa服务器移植
- Fedora9 下搭建Qt Creator的ARM开发环境并移植Qt4.6.3-books到mini2440
- Linux-2.6.32.2内核在mini2440上的移植(十六)---基于中断的按键驱动移植
- 【转】Qt 4.6.3 移植到mini2440的详细记录 (基于CentOS - 5.4)
- 基于qq2440开发平台的uboot移植(1)
- 基于嵌入式Linux系统设备驱动程序的开发