当前位置: 首页 > 面试题库 >

难以理解MODULE_DEVICE_TABLE(usb,id_table)的用法

金兴朝
2023-03-14
问题内容

我很难理解的确切用法 MODULE_DEVICE_TABLE(usb, id_table)

AFAIK将生成地图文件,modprobe每当插入新设备时,它将在以后使用该地图文件,它将与这些地图文件进行匹配,并在匹配时加载模块。

但是我的误解是“模块是否仍在加载?”

我的意思是说我已经加载了insmod module-name。还是我错过了什么?


问题答案:

通常通过加载/插入设备的驱动程序(如果尚未加载)来支持热插拔。

(来自我的回答)

其工作方式如下:

  1. 代码中的每个驱动程序都使用以下方式公开其供应商/设备ID:

      MODULE_DEVICE_TABLE(of, omap_mcspi_of_match);
    
  2. 在编译时,构建过程将从所有驱动程序中提取此信息,并准备一个设备表。

  3. 插入设备时,内核会引用设备表,并且如果找到与添加设备的设备/供应商ID匹配的条目,则将加载并初始化其模块。



 类似资料:
  • 我刚刚写了一个方法,它包含两个参数:1。扩展数字和2的任何类型的数组列表。相同类型的数字。此方法应返回一个数组列表,其中包含小于第二个参数的所有数字。 我的课叫

  • 我无法理解为什么ExceptionHandlerExceptionResolver会抛出异常。我已经编写了一个自定义@RestControlller建议ExceptionHandler来捕获Spring Boot应用程序抛出的异常。捕获后,我的ExceptionHandler返回来自抛出的异常的消息作为响应。但我仍然从ExceptionHandlerExceptionResolver收到一条日志消

  • 这是一个关于一维峰值查找的问题(如果元素比数组中的邻居大,它就是一个峰值)。我正在看麻省理工学院的开放式课程讲座,他谈到了一个天真的解决方案:从索引0开始,一直到最后。 然后他说分而治之的解决方案要好得多。我不明白怎么会这样。这难道不是根据数组的内容做出假设吗?如果只是随机数,那又有什么区别呢? 讲师说他写了一个Python脚本,朴素的解决方案花了13秒,而log(N)解决方案只花了.001秒。我

  • 问题内容: 在React文档中给出以下示例代码: 我做了一些调查,最终得出的结果是: 进而得出。 但是我想知道的是,为什么我不能这样做: 我看不出点差运算符的含义是什么。 问题答案: 这有助于使您的代码更简洁-由于是对象,所以散布运算符会将传入的对象的 属性 应用到组件中。因此,该Component的属性a 的值为,而a 的值为。 它将与以下内容相同: 短一点

  • 我在理解合并排序算法的“合并”部分时有点困难,因为我试图在上下文中理解算法的部分,而某些变量/循环对我来说没有意义。我理解递归除法过程和合并的排序方面,但在这个特定的合并算法中: 我不明白最后3个循环: 你能解释一下这3个循环在合并的上下文中是用来做什么的吗?还有什么进一步的建议可以帮助你更好地理解合并排序算法的合并部分吗?

  • 通常在使用JTable或JTree时,用户定义自己的单元渲染器。 从DefaultTableCellRenderer继承用户组件是很常见的,它实现了renderer方法getTableCellRendererComponent。事实证明,DefaultTableCellRenderer实际上继承自JLabel,因此在调用super(在render方法中)时返回自身(this),因此用户的渲染器也可