赞
踩
提供驱动使用的系统接口资源和硬件资源,如GPIO、I2C、SPI等通用平台接口能力。该接口部分与平台无关可支持跨平台迁移。
根据本人的理解通用平台接口能力位为下图HDF框架中的红框内。这样能做到与OS平台隔离开来,驱动开发者只需要关注于适配芯片平台的接口即可。
HDF会把加载的所有驱动的HdfDriverEntry对象的起始地址汇总起来,形成一个类似地址数组的东西,这个数组的第一项的地址对应上面代码中的HDF_DRIVER_BEGIN(),最后一项的地址对应HDF_DRIVER_END()(最后一项不填内容)。示意图如下:
当HDF初始化时会根据驱动开发者注册的驱动加载过程如下:
1、Bind函数使用UartHostCreate分配一个uartHost,并与device绑定。
2、Init时取出Host并注册设备结点,将uartHost作为私有参数传入。
3、实现host->methon函数。
当应用层open时。会检查是否存在uartHost私有数据是否存在。
当应用层write时。会执行uartHost中的write函数。
附:
参考大神文章:https://blog.csdn.net/codefly/article/details/108901989
官方示例代码路径: drivers\hdf\frameworks\support\platform\src
官方文档:\docs\readme\开发Hi3516第一个驱动程序示例.md
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。