加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

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

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读