PIN 驱动分析

派生关系

内核对象的数据结构:

设备的数据结构:

PIN 设备的数据结构:

注册的本质:初始化结构体里面的值。

pin 驱动框架层

设备驱动的实现

pin 内的代码为抽象驱动,对接 device 框架,实现 device 相关的操作。

框架层的 register 函数处理一部分,调用 device_register 再处理一部分,然后调用 object_init 处理一部分。

分层设计,每层处理一些东西,然后交给下一层去接着处理。一层一层向上抽象。

什么是抽象?

程序里的抽象,类似最大公约数。

比如 drv_gpio 是具体驱动,是真正实现硬件操作的地方。

可以对比 stm32 芯片和 nxp i.mx rt 的芯片驱动。

IO 设备管理接口访问设备

使用标准接口来操作 pin。

单单从这段代码来看,好像使用了操作系统的驱动框架,反而比逻辑 HAL 库要复杂。

所以,对 pin 设备,在驱动框架层做了更简单的封装

stm32 与 nxp i.mx rt 驱动对比

最后更新于