Linux最简单的驱动编写及测试步骤
发布时间:2021-11-19 14:13:57 所属栏目:教程 来源:互联网
导读:本文采用nfs挂载网络文件系统的方式,手动创建设备节点,动态加载驱动模块,对理解驱动编写流程有很大好处! 一、初级驱动执行流程: 1、写好Makefile文件,里面包含将应用程序编译成app文件,将驱动程序编译成mydrv.ko文件的脚本 2、在Ubuntu里执行sudo make
本文采用nfs挂载网络文件系统的方式,手动创建设备节点,动态加载驱动模块,对理解驱动编写流程有很大好处! 一、初级驱动执行流程: 1、写好Makefile文件,里面包含将应用程序编译成app文件,将驱动程序编译成mydrv.ko文件的脚本 2、在Ubuntu里执行sudo make 3、确保mydrv.ko和app被拷贝到nfs挂载的根文件系统的/modules目录 4、在模块中创建设备节点(在串口软件显示的开发板文件系统里执行) mknod /dev/dcx-drv c 250 0 4.1、执行ls /dev 观察是否有设备dcx-drv,有则ok 5、安装模块设备 insmod /modules/mydrv.ko 5.1、执行cat /proc/devices (这个文件里的设备是由驱动程序生成的) 观察是否有“250 dcx-drv”,有则ok 6、执行./modules/app 观察创建的内核模块是否有执行,有则ok 二、代码改动后需要重新编译,完毕后执行: 1、删掉原模块: rmmod /modules/mydrv 2、安装新模块: insmod /modules/mydrv.ko 3、执行应用程序: ./modules/app 三、本文采用的Makefile文件 obj-m += mydrv.o KERNEL_DIR = /opt/03.kernel_transplant/Android-kernel-samsung-dev GCC = arm-linux-gcc all: make -C $(KERNEL_DIR) M=`pwd` modules #编译驱动程序 $(GCC) -Wall app.c -o app #编译应用程序 cp ./mydrv.ko /mini_rootfs/modules cp ./app /mini_rootfs/modules #clean: rm -rf ./*.o rm -rf ./*.order rm -rf ./*.symvers rm -rf ./*.mod.c (编辑:东莞站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |