尧图精选

驱动实验——针对嵌入式系统开发板的RGB灯设计驱动程序

🕒 发布时间:2026/10/2 1:37:20 📁 来源:尧图网络
记录一下自己的学习过程实验原理及内容【实验内容】针对嵌入式系统开发板的RGB灯设计驱动程序完成驱动程序的编译和加载。设计一个驱动程序的测试程序要求可以依次点亮三个灯最后熄灭。【实验原理】对于字符设备驱动一定需入口与出口。入口在insmod xx.ko 时执行led_chrdev_init函数。出口在rmmod xx.ko 时执行led_chrdev_exit函数。硬件电路原理图如下图所示。LED_R、LED_G、LED_B阴极分别连接到 i.MX6ULL 芯片上GPIO1_IO04引脚、GPIO4_IO20引脚和GPIO4_IO19引脚。实验步骤及数据记录将12.6文件夹拷贝到ubuntu打开命令终端进入root用户zmyubuntu:~$ sudo -i将12.6文件夹复制到目录/home/zmy/rootubuntu:~# cp -r /home/zmy/Desktop/12.6/ /home/zmy/4、进入目录/home/zmy/12.6rootubuntu:/home/zmy/12.6#修改startup.sh脚本程序注意将下图红圈部分修改为你12.6文件夹所在目录5、执行startup.sh脚本程序脚本程序负责配置nfs环境编译交叉编译工具以及下载内核和源代码。rootubuntu:/home/zmy/12.6# source startup.sh6、切换目录到led_cdev目录7、修改Makefile第一行为指定内核位置,修改为内核所在位置;直接指定交叉编译工具链位置。KERNEL_DIR../ebf_linux_kernel_6ull_depth1/build_image/buildCROSS_COMPILE/usr/local/arm/gcc-linaro-7.5.0-2019.12-i686_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-8、清除上一次编译的make clean重新编译程序make9、将生成的驱动文件.koled_cdev.ko和应用程序(led_test)复制到共享文件夹目录10、打开一个新的命令终端配置minicom配置开发板的ip地址注意这里修改网口需要修改成你实际接网线的网口(eth1或eth2):ifconfig eth1 192.168.1.25 netmask 255.255.255.0从开发板去ping ubuntu系统:ping 192.168.1.110注意这里是ubuntu的ip地址可以用ifconfig获取11、挂载192.168.1.110为ubuntu ip地址/nfsFile为nfs共享文件夹路径sudo busybox mount -n -o nolock,rsize1024 192.168.1.110:/nfsFile /mnt/在minicom进入目录/mnt加载驱动rootnpi:/mnt#rootnpi:/mnt# insmod led_cdev.ko打印如下信息[ 73.632894] led_cdev: loading out-of-tree module taints kernel.[ 73.646185] led chrdev init执行测试程序rootnpi:/mnt# ./led_cdev_test可以看到RGB灯依次闪烁最后灭掉14、卸载驱动rootnpi:/mnt# rmmod led_cdev打印如下信息[ 168.431902] led chrdev exit实验结果结论可以看到RGB灯依次闪烁最后灭掉。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →