一、手动创建设备节点

1、虚拟机新建文件,并将驱动C文件、测试文件以及Makefile拷贝至此文件

驱动c文件——chrdevbase.c

测试文件——chrdevbaseApp.c

Makefile文件——Makefile

2、编译驱动文件

指令:make

驱动——chrdevbase.ko

3、编译测试文件

指令:arm-linux-gnueabihf-gcc chrdevbaseApp.c -o chrdevbaseApp

测试——chrdevbaseApp

4、基于SSH的虚拟机与开发板的远程文件拷贝

scp 是 linux 系统下基于 ssh 登录进行安全的远程文件拷贝命令

开发板下设置静态ip,新建文件zynq_driver

指令:ifconfig eth0 192.168.1.22

在ubuntu下scp远程发送驱动文件和测试文件,设置ip

指令:sudo ifconfig ens33 192.168.1.23

指令:sudo scp dev_manual_App dev_manual.ko root@192.168.1.22:/home/root/class_1/dev_manual

5、加载驱动并测试

加载驱动文件

指令:insmod dev_manual.ko

创建设备节点

指令: mknod /dev/dev_manual c 200 0

测试

指令:./dev_manual_App /dev/dev_manual 1

指令:./dev_manual_App /dev/dev_manual 2

卸载驱动

指令:rmmod dev_manual.ko

二、自动创建设备节点

指令:sudo scp dev_auto_App dev_auto.ko root@192.168.1.22:/home/root/class_1/dev_auto

指令:sudo scp dev_dts_App dev_dts.ko root@192.168.1.22:/home/root/class_1/dev_dts

5、加载驱动并测试

加载驱动文件

指令:insmod dev_auto.ko

创建设备节点

指令: mknod /dev/dev_auto c 200 0

测试

指令:./dev_auto_App /dev/dev_auto 1

指令:./dev_auto_App /dev/dev_auto 2

卸载驱动

指令:rmmod dev_auto.ko


指令:cd ZYNQ/class_1/dev_dts/

指令:cp -r system-top.dts /home/moonin/Linux_kernel/linux-xlnx-xilinx-v2018.3/arch/arm/boot/dts

指令:cd /home/moonin/Linux_kernel/linux-xlnx-xilinx-v2018.3/

指令:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- system-top.dtb -j10

指令:cd /proc/device-tree/