摘要:
APP读取按键的4种方法 跟上述生活场景类似,APP去读取按键也有4种方法: ① 查询方式 ② 休眠-唤醒方式 ③ poll方式 ④ 异步通知方式 第2、3、4种方法,都涉及中断服务程序。 查询方式 这种方法最简单: 驱动程序中构造、注册一个file_operations结构体,里面提供有对应的op 阅读全文
posted @ 2022-03-23 20:56
咸阳梁硕
阅读(418)
评论(0)
推荐(0)
摘要:
内核对设备树的处理 从源代码文件dts文件开始,设备树的处理过程为: ① dts在PC机上被编译为dtb文件; ② u-boot把dtb文件传给内核; ③ 内核解析dtb文件,把每一个节点都转换为device_node结构体; ④ 对于某些device_node结构体,会被转换为platform_d 阅读全文
posted @ 2022-03-23 20:08
咸阳梁硕
阅读(86)
评论(0)
推荐(0)
摘要:
匹配规则 最先比较:platform_device. driver_override和platform_driver.driver.name 可以设置platform_device的driver_override,强制选择某个platform_driver。 然后比较:platform_device 阅读全文
posted @ 2022-03-23 18:45
咸阳梁硕
阅读(85)
评论(0)
推荐(0)
摘要:
在我们讲述的第一种方法中已经使用了分层的思想。那么在此文件中我们将继续使用在此集成商增加分离的思想。原因是如果硬件上更换一个引脚来控制LED怎么办?要去修改上面结构体中的init、ctl函数。所以加这个分层的办法。 如下:我们先完成leddrv.c文件。 1 #include <linux/modu 阅读全文
posted @ 2022-03-23 16:29
咸阳梁硕
阅读(59)
评论(0)
推荐(0)
摘要:
我们之前了解了Hello驱动程序。如果在一个文件中实现LED的驱动程序,就是在write函数中实现对硬件的操作就可以了。 但是我们为了适应不同的板子,需要将其做分层。 1. 把驱动拆分为通用的框架(leddrv.c)、具体的硬件操作(board_X.c)。 2. 以面向对象的思想,改进代码: 抽象出 阅读全文
posted @ 2022-03-23 15:20
咸阳梁硕
阅读(190)
评论(0)
推荐(0)
摘要:
LED的驱动有三种写法: 1.资源和驱动在同一个文件夹里面。 2.资源用Platform_device指定,驱动用Platform_driver实现。 3.资源用设备树指定,驱动用Platform_driver实现。 阅读全文
posted @ 2022-03-23 12:28
咸阳梁硕
阅读(627)
评论(0)
推荐(0)
摘要:
普适的GPIO引脚操作方法 GPIO(General-Purpose IO Ports),即通用IO接口。GPIO的使用较为简单,主要分为输入和输出两种功能,用于实现一些简单设备的控制。在作为输入型GPIO的情况下,我们可以将该IO连接外部按键或者传感器,用于检测外部状态。当作为输出时,我们可以通过 阅读全文
posted @ 2022-03-23 10:22
咸阳梁硕
阅读(1085)
评论(0)
推荐(0)

浙公网安备 33010602011771号