(在Linux内核中,也有其他函数同样可以实现中断号的映射功能,比如platform_get_irq_byname,不过最终调用到的函数都是一样的,所以在这里我们就以 irq_of_parse_and_map 为例来进行分析就可以了) 4.2.1、映射入口函数irq_of_parse_and_map 函数原型:unsigned int irq_of_parse_and_map(struct device_node *dev,...
platform_get_irq_byname--获取rx和tx中断。 devm_request_threaded_irq--注册rx和tx中断。 stm32_ipcc_rx_irq--A7 IPCC接收中断处理函数。 mbox_chan_received_data--调用Mailbox Client的rx_callback函数进行处理,即stm32_rproc_mb_callback。 stm32_ipcc_tx_irq--A7 IPCC发送中断处理函数。 mbox_chan_tx...
struct intplatform_get_irq(struct platform_device *dev, unsigned int num); 获取资源中的中断号。 structresource * platform_get_resource_byname(struct platform_device *dev, unsigned int type, char*name); 根据参数name所指定的名称,来获取指定的资源。 int platform_get_irq_byname(structplatform_device...
struct resource * platform_get_resource_byname(struct platform_device * dev,unsigned int type,const char * name); // 通过编号获取中断资源 int platform_get_irq(struct platform_device * dev,unsigned int num); // 通过名称获取中断资源 int platform_get_irq_byname(struct platform_device * dev,con...
unsigned long flags; //定义资源的类型,比如MEM,IO,IRQ,DMA类型 struct resource *parent, *sibling, *child; //资源链表指针 }; 通过调用函数platform_add_devices()向系统中添加该设备了,该函数内部调用platform_device_register( )进行设备注册。要注意的是,这里的platform_device设备的注册过程必须在相应设备驱...
platform是一个虚拟的地址总线,相比pci,usb,它主要用于描述SOC上的片上资源,比如s3c2410上集成的控制器(lcd,watchdog,rtc等),platform所描述的资源有一个共同点,就是在cpu的总线上直接取址。 平台设备会分到一个名称(用在驱动绑定中)以及一系列诸如地址和中断请求号(IRQ)之类的资源. ...
arch_setup_pdev_archdata,设置platform_device变量中的archdata指针。 platform_get_resource、platform_get_irq、platform_get_resource_byname、platform_get_irq_byname,通过这些接口,可以获取platform_device变量中的resource信息,以及直接获取IRQ的number等等。
externintplatform_get_irq_byname(structplatform_device*,char*); externintplatform_add_devices(structplatform_device**,int); externstructplatform_device*platform_device_register_simple(char*,unsignedint,structresource*,unsignedint); externstructplatform_device*platform_device_alloc(constchar*name,unsignedint...
概括来说,Platform设备包括:基于端口的设备(已不推荐使用,保留下来只为兼容旧设备,legacy);连接物理总线的桥设备;集成在SOC平台上面的控制器;连接在其它bus上的设备(很少见)。等等。 这些设备有一个基本的特征:可以通过CPU bus直接寻址(例如在嵌入式系统常见的“寄存器”)。因此,由于这个共性,内核在设备模型的基础上...
struct resource * platform_get_resource(struct platform_device *dev, unsigned int type, unsigned int num); 根据参数type所指定类型,例如IORESOURCE_MEM,来获取指定的资源。 struct int platform_get_irq(struct platform_device *dev, unsigned int num); ...