摘要: linux设备节点是什么? https://www.qycn.com/xzx/article/14037.html class_creat()创建设备节点 https://blog.csdn.net/code_lyb/article/details/127387579 阅读全文
posted @ 2023-05-21 22:49 嵌入式小白— 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 写LED驱动 首先,我们要建立一个file_operator结构体: /* 定义自己的file_operations结构体 */ static struct file_operations led_drv = { .owner = THIS_MODULE, //主设备号 .open = led_dr 阅读全文
posted @ 2023-05-21 20:53 嵌入式小白— 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 写LED驱动 首先,我们要清楚总线设备驱动相比于传统驱动模型而言,在操作上做了精简。传统驱动模型针对不同的board或者change gpio,都需要对相应drv.c进行修改,这样操作相对比较复杂,也不容易后期的维护,总线驱动将所有的设备全部注册在platform_dev结构体内,每个设备不同的在于 阅读全文
posted @ 2023-05-21 13:55 嵌入式小白— 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 首先我们都知道LED的基本操作,通过上拉或下拉电阻的方式实现LED的开关,这里不再介绍。那么怎么知道GPIO地址在那个位置1,也就是如何通过位操作来实现硬件的开关呢? IMX6ULL 的 GPIO 操作方法 GPIO 的控制涉及 4 大模块:CCM、IOMUXC、GPIO 模块本身,框图如下: GP 阅读全文
posted @ 2023-05-21 13:23 嵌入式小白— 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 字符设备驱动程序框架: 如何编写驱动代码 ① 确定主设备号,也可以让内核分配 ② 定义自己的 file_operations 结构体 ③ 实现对应的 drv_open/drv_read/drv_write 等函数,填入 file_operations 结构体 ④ 把 file_operations 阅读全文
posted @ 2023-05-21 12:55 嵌入式小白— 阅读(138) 评论(0) 推荐(0) 编辑