0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

驱动动模块之间如何更改模块挂载顺序

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:Jasonangel 2023-09-28 16:54 次阅读

如果驱动模块之间有依赖,需要更改模块挂载顺序,有三种方式:

1、增加一个优先级,比如 8。或者把自己的驱动模块声明成其他优先级,也就是不用 module_init 去声明,可以用 fs_initcall
去声明。

2、对于同一优先级的驱动模块,可以在 Makefile 中更改其编译和链接的顺序,就会切换其挂载的顺序。(静态编译)

3、动态加载驱动模块:等 Linux 系统起来以后,手动执行 insmod 和 rmmod
即可挂载和卸载驱动,顺序自己决定。测试成功后,再搞到内核中静态编译。

虽然可以更改挂载顺序,但还是希望大家写驱动模块的时候,能够做到高内聚、低耦合,自己的模块最好不要依赖其他模块,防止其他模块加载失败导致自己的模块不可用。

如何看驱动挂载顺序?有两种方式:

1、找到编译后的 Linux 内核源码,根目录下面有个 System.map 文件,这里记载了 Linux
内核所做的所有的事情,是按顺序记载的(也有可能在其他输出目录)。

一共有三列:地址、区域、操作。在操作中我们可以看到我们声明的驱动的名字。

图片

2、如果你驱动模块有加一些打印,可以直接看 log。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2486

    浏览量

    46547
  • 驱动
    +关注

    关注

    11

    文章

    1718

    浏览量

    84354
  • Linux
    +关注

    关注

    87

    文章

    10992

    浏览量

    206744
收藏 人收藏

    评论

    相关推荐

    Linux模块相关命令 Linux驱动模块的编写与挂载

    Linux模块相关命令 Linux驱动模块的编写与挂载
    发表于 10-01 12:20 198次阅读
    Linux<b class='flag-5'>模块</b>相关命令 Linux<b class='flag-5'>驱动</b><b class='flag-5'>模块</b>的编写与<b class='flag-5'>挂载</b>

    电光调Q模块调Q驱动模块电光模块

    电源驱动模块
    深圳艾克思科技有限责任公司
    发布于 :2023年11月02日 16:09:12

    DM368板子DDR大小更改模块挂载失败

    打开/dev/cmem设备失败。想请教下,DDR大小更改后,上面四个模块为什么挂载失败?是不是因为内存大小更改后,需要重新配置cmem模块
    发表于 02-21 12:44

    高亮度LED驱动动态及电路集锦

    高亮度LED驱动动态及电路集锦高亮度LED驱动动态及电路集锦
    发表于 02-25 15:57 10次下载

    电机驱动模块

    电机驱动模块,有需要的朋友可以下来看看。
    发表于 04-25 10:40 12次下载

    单模光模块和多模光模块之间的区别

    随着光通讯、数据中心的发展,光模块的应用越来越广泛。而光模块类型、传输数据也是越来越多样化。40G光模块、100G光模块;单模光模块、多模光
    发表于 05-03 10:36 2.9w次阅读

    带Microsemi模块的栅极驱动器功率模块

    带Microsemi模块的栅极驱动器板
    的头像 发表于 08-15 06:15 1734次阅读

    如何实现模块模块之间点对点的通信

      ESP8266有三种模式可以选择,AP/STA/AP+STA,下面我们要实现的是模块模块之间点对点的通信。
    的头像 发表于 02-28 10:48 3405次阅读

    如何使用Arduino轻松更改蓝牙模块名称

    电子发烧友网站提供《如何使用Arduino轻松更改蓝牙模块名称.zip》资料免费下载
    发表于 12-16 10:33 0次下载
    如何使用Arduino轻松<b class='flag-5'>更改</b>蓝牙<b class='flag-5'>模块</b>名称

    更改HC 05蓝牙模块的名称和密码

    电子发烧友网站提供《更改HC 05蓝牙模块的名称和密码.zip》资料免费下载
    发表于 02-02 14:22 0次下载
    <b class='flag-5'>更改</b>HC 05蓝牙<b class='flag-5'>模块</b>的名称和密码

    电机驱动模块有哪些

    电机驱动模块有哪些 电机的驱动模块通常有晶体管模块、晶闸管(可控硅)模块、IGBT
    发表于 05-08 14:50 2331次阅读

    如何使用M5StickC ESP32模块通过按钮更改LED亮度

    电子发烧友网站提供《如何使用M5StickC ESP32模块通过按钮更改LED亮度.zip》资料免费下载
    发表于 06-29 11:27 0次下载
    如何使用M5StickC ESP32<b class='flag-5'>模块</b>通过按钮<b class='flag-5'>更改</b>LED亮度

    驱动模块的作用

    驱动模块的作用  驱动模块是一种非常常见的软件模块,用于连接操作系统和硬件设备之间的接口。通常,
    的头像 发表于 08-29 10:06 1851次阅读

    博途案例:模块更新与接口更改的实现方法

    由于模块上的接口更改,翻译时不一定会生成错误消息。 因此,文档“jyyy_mm_tt SPS_HMI_Info_VASSV6”中描述了包括更改在内的受影响模块。 “接口匹配”视图比
    的头像 发表于 10-26 10:51 1291次阅读
    博途案例:<b class='flag-5'>模块</b>更新与接口<b class='flag-5'>更改</b>的实现方法

    什么是NB-IoT模块?什么是4G模块?NB-IoT模块与4G模块之间的区别

    什么是NB-IoT模块?什么是4G模块?NB-IoT模块与4G模块之间的区别 怎么选择呢? NB-IoT
    的头像 发表于 02-01 10:22 3001次阅读