说明:由嵌入式Linux学习笔记(1)所述我使用的是nfs网络文件的挂载分享root_nfs ,我使用的是ssh共享windows和PC的Linux共享
编写驱动需要有驱动文件和测试驱动文件
1.驱动程序的编写
在windows上面编写驱动程序,通过ssh共享工具上传到PC的linux的/opt/work/root_nfs/drv
在PC的linux的/opt/work/root_nfs/drv/的文件 first_drv.c
在PC的linux上面编辑Makefile文件,修改 obj-m += first_drv.o 保存退出
2.在PC的linux的驱动目录文件下 make 生成 XXXX.ko
3.编写测试驱动文件 firstdrvtest.c 并上传到PC上的linux
4.编译测试文件 arm-linux-gcc -o firstdrvtest firstdrvtest.c 生成 firstdrvtest可执行文件
5.将led的驱动文件编译文件.ko共享的挂载的开发板的/mnt/复制到开发板的根文件中 /
加载驱动:
a. insmod first_drv.ko
执行可执行文件 ./firstdrvtest
# ./fristdrvtest
Usage:
./fristdrvtest <dev> <on|off>
eg.
./fristdrvtest /dev/leds on
./fristdrvtest /dev/leds off
./fristdrvtest /dev/led1 on
./fristdrvtest /dev/led1 off
#
既可以看到现象
1.自动创建设备节点文件
1.定义
static struct class *firstdrv_class;
static struct class_device *firstdrv_class_dev;
自动生成节点 major = register_chrdev(0, "first_drv", &first_drv_fops);
//暂时写到这里
|