那这个irq_num 返回值是0?
时间: 2024-04-06 11:29:13 浏览: 11
在这个例子中,`interrupts = <0 1>;` 表示中断控制器的第一个中断(中断索引为0)被连接到网络控制器的中断线上。因此,`irq_of_parse_and_map()` 函数的返回值应该是这个中断的中断号,即1。
如果 `irq_of_parse_and_map()` 函数返回值为0,则可能是因为中断号0已经被占用或者无法映射到有效的中断。在这种情况下,驱动程序应该进行错误处理,并尝试使用其他可用的中断。
相关问题
那adc_sqr_irq_sw呢?
adc_sqr_irq_sw是一个可能与STM32单片机有关的文件夹名。其中,adc指模数转换器,sqr指顺序扫描模式,irq指中断请求,sw指软件。因此,该文件夹可能是在使用STM32单片机时,通过软件控制模数转换器的顺序扫描模式,并使用中断来处理模数转换完成时的请求所创建的。当然,具体含义还需要根据上下文信息来确定。
devm_request_irq 返回值
devm_request_irq 是 Linux 内核中的一个函数,用于请求分配一个中断,并将中断处理函数与之关联。它的返回值表示请求中断是否成功。
devm_request_irq 的返回值有以下几种可能:
1. 成功:返回值为 0,表示成功地请求分配了中断,并成功地将中断处理函数与之关联。
2. 失败:返回一个负数,表示请求分配中断失败。常见的失败原因包括中断号无效、中断处理函数无效、中断请求失败等。
3. EPROBE_DEFER:返回值为 -EPROBE_DEFER,表示请求被推迟。这通常发生在设备驱动程序初始化过程中,当设备的资源还没有完全准备好时。
需要注意的是,devm_request_irq 是 devm 版本的函数,它会在设备被卸载时自动释放所分配的中断资源,因此不需要手动调用 irq_free 函数来释放中断。