在linux中,platform是一个虚拟总线,与真实的“spi/sdio/usb/pcie”等总线对应;platform能够把硬件和软件分离出来,platform所描述的资源有一个共同点是在CPU的总线上直接取址,平台设备会分到一个名称以及一系列诸如地址和中断请求号之类的资源。
树图思维导图提供 linux中platform是什么意思思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 linux中platform是什么意思思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:ecc5cff6be33cdb98692c0f0c2331b1d
linux中platform是什么意思思维导图模板大纲
与真实的spi/sdio/usb/pcie等总线对应
platform平台总线相关的对象定义在文件 drivers/base/platform.c中。这个文件中实现了平台总线对象和对象操作方法方面的内容
1、platform_driver
这是内嵌一个device_driver 的结构体对象,其中定义了操作对象的方法
2、platform_device
它是一个内嵌了device结构体对象,其中定义了设备描述资源的属
1、platform_driver 对象定义
struct platform_driver
{
int (*probe)(struct platform_device *); //探测函数,安装设备,初始化设备,并且判断是否能成功(初始化成功,通讯成功等等)
int (*remove)(struct platform_device *); //从内核中删除这个设备
void (*shutdown)(struct platform_device *); // 关闭设备
int (*suspend)(struct platform_device *, pm_message_t state); //挂起
int (*resume)(struct platform_device *); //唤醒
struct device_driver driver; //驱动的通用属性
const struct platform_device_id *id_table; //设备ID表
};
2、platform_device对象对定义
struct platform_device
{
const char* name; //平台总线中设备的名字,在平台总线下有多个设备,每个设备都有自己的名称
intid; //设备的排序
struct devicedev; //所有设备通用的属性
u32num_resources; //设备资源,如IO等一些外设等的个数
struct resource* resource; //设备资源的首地址,和上面的个数num_resources一起构成一个数组来表示这个资源
const struct platform_device_id*id_entry; //设备ID表,表示同一种类型的几个设备的ID号,数组表示。
struct pdev_archdataarchdata; /* arch specific additions *///用户自定义数据,扩展数据
};
注册平台总线驱动的函数
int platform_driver_register(struct platform_driver *drv)
注册平台总线设备的函数
int platform_device_register(struct platform_device *pdev)
树图思维导图提供 linux怎么设置不允许更改权限思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 linux怎么设置不允许更改权限思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:03d2e60667691df30c17bd452d42c664
树图思维导图提供 linux中tomcat能否加大内存思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 linux中tomcat能否加大内存思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:e8edd23059b99dd1afe53ab655d829e6