日期:2014-05-16  浏览次数:20621 次

问个问题,在平台设备(platform_driver)注册以后,在应用层如何调用呢?
问个问题,Linux平台设备注册,注册时提供的函数是pobe,suspend,resume等,但是在应用层一般访问驱动是用open,read,write等,两个部分怎么适配起来的?

------解决方案--------------------
platform僅僅是提供一種驅動和設備匹配的的功能,其設備的本質還是cdev設備,其中的file_operation才是提供了設備的open,close等等!
------解决方案--------------------
我对platform设备的理解是这样的:
1,是个虚拟的总线设备。因为系统中有了PCI,USB,SPI, I2C等总线,设备模型通过bus进行匹配device 和driver,为了兼容设备模型,搞出个platform设备(注意这里的platform类似于说某个设备是PCI设备,还是I2C设备,也就是说该设备挂载哪个总线上)

2,这个只是说明了设备在哪个总线上(platform),并不能说明设备是个什么设备(是字符设备,块设备?),所以需要另加说明。我一般注册为混杂设备(这是一个设备类,类似输入类等),因为这些类子系统会动态分配设备号和自动创建/dev下的设备文件(udev机制),所以比较好用。我想目前真正写驱动的时候不会去做个字符设备,然后用mknod去创建设备节点吧!


以上纯属个人理解哈~~