struct resource *res; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 函数进入for里面,i=0,num_resources=7,拿出resource[0]资源。resource_type®提取出该份资源 的资源类型并与函数传递下来的资源类型进行比较,匹配。 Num=0(这里先判断是否等于0再自减1)符合要求,从而返回该资源。 获取剩下资源...
struct resource *r = &dev->resource[i]; if (type == resource_type(r) && num-- == 0) return r; } return NULL; } int platform_get_irq(struct platform_device *dev, unsigned int num) { struct resource *r = platform_get_resource(dev, IORESOURCE_IRQ, num); return r ? r->start ...
📢设备树中的节点被转换为platform_device后,设备树中的reg属性、interrupts属性也会被转换为“resource”。这时,你可以使用这个函数取出这些资源。 platform_get_resource函数源码如下: 新内核实现 目录:v4.19/drivers/base/platform.c /** * platform_get_resource - get a resource for a device * @dev: platfo...
platform_get_resource函数源码如下:struct resource *platform_get_resource(struct platform_device *dev,unsigned int type, unsigned int num){ int i;for (i = 0; i < dev->num_resources; i++) { struct resource *r = &dev->resource[i];if (type == resource_type(r) && num-- == 0)ret...
这次分析主要的疑惑是platform_get_resource函数中num这个输入变量的作用,还是一个就是if语句中”&&”的执行顺序。这个可能算是C语言记住了,但是我也是在这次才真正注意了一下。在位于drivers/net/dm9000.c中的dm9000_probe函数内添加了提示性打印语句。/* sol_add */ printk("\n!!!\n"); db->addr_...
在下文中一共展示了platform_get_resource函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。 示例1: serial_omap_probe ▲点赞 7▼ staticintserial_omap_probe(struct platform_device *pdev){structuart_omap_port*up;str...
简介: RK3399平台开发系列讲解(内核入门篇)1.51、platform_get_resource 函数实现细节 设备树中的节点被转换为platform_device后,设备树中的reg属性、interrupts属性也会被转换为“resource”。这时,你可以使用这个函数取出这些资源。 platform_get_resource 函数源码如下: 新内核实现 目录:v4.19/drivers/base/platform.c...
在下文中一共展示了platform_get_resource_byname函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。 示例1: ardbeg_panel_init ▲点赞 6▼ int__initardbeg_panel_init(void){interr =0;structresource__maybe_unused*res...
return r; } return NULL; } summary point: 1. 从该函数的定义可以看出 num 参数是同一种类型资源下的资源索引,因为 if (type == resource_type(r) && num-- == 0) 这条判断语句的执行是先执行 && 前面的类型判断,然后才执行索引判断。
.num_resources = ARRAY_SIZE(foo_resource), .dev = { .dma_mask = 0x0, .coherent_dma_mask = 0xffffffff, }, }; 那么将这个device_foo加入map100_devices数组,就能直接在probe函数中用platform_get_resource获取资源了,但是要注意驱动的名称必须和platform_device结构中的名称完全相同。