总线设备驱动模型

来源:互联网 发布:澄海网店美工培训 编辑:程序博客网 时间:2024/04/29 21:44


***********面向对象的概念*************************************
类:类就是具有相同的属性和功能的对象的抽象的集合(相当于c语言中定义的结构体)
对象:是某个类的实例(相当于c语言中定义的结构体变量)。


基于类的面向对象方式中,对象(object)依靠 类(class)来产生。
而在基于原型的面向对象方式中,对象(object)则是依靠 构造器(constructor)利用 原型(prototype)构造出来的。
事实上关于这两种方式谁更为彻底地表达了面向对象的思想,目前尚有争论。但笔者认为原型式面向对象是一种更为彻底的面向对象方式。


封装:隐蔽类内部不需要暴露的实现细节和属性。 
继承:派生类自动拥有超类的东西。
多态:龙(类)生九子,子子(接口相同,但是接口效果)不同




******************p1229开始,驱动采用面向对象思想,各类的继承关系**********************
1总线bus_type --- platform_bus_type,pci_bus_type,usb_bus_type,i2c_bus_type,spi_bus_type
2设备kobject---device--platform_device,input_dev,pci_dev,usb_device,i2c_dev,spi_device;
            ---cdev---
3驱动 device_driver ---platform_driver,pci_driver,usb_driver,i2c_driver
4.属性:attribute---bus_attribute,device_attribute,driver_attribute,spi_driver,

这样的总线,设备,驱动,有很多很多......


********************************类型转换************************************

子类向父类转换:子类包含了父类,很容易取得父类

父类向子类转换:container of;



************************其他******************************************************
kobject 中的ktype几率kobject的一些属性(包含了释放设备、默认属性以及属性的实现方法)


属性:总线属性bus_attribute,内核对象属性attribute,设备属性device_attribute

操作集合:sysfs_ops,kset_uevent_ops,file_operations


疑问:注册net_device和block_device有文件生成? 预计也有





0 0
原创粉丝点击