IT门户, 中国互联网人工智能物联网行业资讯平台--公众IT

当前位置:公众IT > 技术文章 >

新闻来源:互联网资料整理       发布时间:2023/4/5 22:25:21       共计:4615 浏览

platform总线是一个虚拟的总线,该模块的出现实现了资源与驱动的隔离。一般没有驱动程序

仅实现platform-driver,该模型一般用于各具体的设备驱动模块(如i2c、spi、pcie、gpio、watchdog等),这样即可通过platform-device将各具体设备驱动相关的资源信息(如中断号、寄存器地址等)从驱动中抽离出来,使得驱动模块更通用。

如我们实现一个I/O引脚模拟jtag引脚的字符驱动程序,在不使用platform模块时,那我们在

该字符驱动文件中定义使用的具体I/O值,这就使得该字符设备驱动不通用了(若下一个硬件版本修改了I/O引脚值,是否需要修改该字符设备驱动呢?)。若借助platform模块实现该字符设备驱动,则可以达到字符设备驱动的通用性,我们将引脚信息通过platform-device传递,而在platform-driver的probe接口中,我们进行字符设备驱动的创建,并传递I/O引脚的信息。通过platform-driver、cdev-add这两个模块,就使我们的I/O模拟jtag引脚的字符设备驱动更加通用,不需要依赖硬件开发板的改变而更新驱动。

platform模块与linux设备树的结合,真的是linux内核的一大特点,将之前linux板级文件更改

需要重新编译内核的步骤彻底摆除了。在linux系统内核中,只需要在内核启动时解析设备树文件,并调用platform的接口,为设备树中的节点创建platform设备,然后在具体的platform设备驱动加载时,解析注册的platform-device设备的资源信息,获取这些资源信息,并进行具体模块驱动的注册(misc_register、i2c_add_numbered_adapter、input_register_device、pci_register_driver等)

版权说明:
本网站凡注明“公众IT 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
您可以扫描右侧微信二维码联系我们。
·上一条: | ·下一条:
同类资讯
网站首页 关于我们 联系我们 合作联系 会员说明 新闻投稿 隐私协议 网站地图