相对于USB、PCI、I2C、SPI等物理总线来说,platform总线是一种虚拟、抽象出来的总线,实际中并不存在这样的总线。那为什么需要platform总线呢?其实是Linux设备驱动模型为了保持设备驱动的统一性而虚拟出来的总线。因为对于usb设备、i2c设备、pci设备、spi设备等等,他们与cpu的通信都是直接挂在相应的总线下面与我们的cpu进行数据交互的,但是在我们的嵌入式系统当中,并不是所有的设备都能够归属于这些常见的总线,在嵌入式系统里面,SoC系统中集成的独立的外设控制器、挂接在SoC内存空间的外设却不依附与此类总线。所以Linux驱动模型为了保持完整性,将这些设备挂在一条虚拟的总线上(platform总线),而不至于使得有些设备挂在总线上,另一些设备没有挂在总线上。
从Linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device 和 platform_driver。Linux中大部分的设备驱动,都可以使用这套机制,设备用 platform_device表示;驱动用platform_driver 进行注册。
Linux platform driver机制和传统的device drive机制(即:通过 driver_register 函数进行注册)相比,一个十分明显的优势在于platform机制将设备本身的资源注册进内核,由内核统一管理,在驱动程序中用使用这些资源时,通过platform device提供的标准接口进行申请并使用。
免责声明:本文仅代表作者个人观点,与本网无关。其原创性以及文中陈述文字和内容未经本站证实, 对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者 仅作参考,并请自行核实相关内容。当事人(单位)如有异议,请参阅《删帖说明》办理。
中国电商金融经济网版权所有违者必究,免责声明以澄清敬请查阅
CopyRight @ 2007-2020 湘ICP备20000841号
中中国电商金融经济网千万网商的权威资讯平台