linux驅動載入順序

2021-05-27 11:44:42 字數 677 閱讀 6035

研究mx53開發板上sgtl5000的音訊驅動時,發現有sgtl5000_i2c_driver和

imx_3stack_sgtl5000_audio_driver兩個驅動,前面的驅動總是在前面執行,

但是好像二者都是用的module_init,那麼是什麼地方決定了它的執行順序呢?

找到makefile內容如下:

snd-soc-core-objs := soc-core.o soc-dapm.o soc-jack.o soc-cache.o soc-utils.o

obj-$(config_snd_soc)

+= snd-soc-core.o

obj-$(config_snd_soc)

+= codecs/

obj-$(config_snd_soc)

+= fsl/

obj-$(config_snd_soc)   += imx/

obj-$(config_snd_soc)

+= mxs/

sgtl5000_i2c_driver驅動是在codecs目錄下,imx_3stack_sgtl5000_audio_driver

是在imx目錄下,難道與編譯順序有關?

調整makefile中的順序後,再編譯執行,果然,二者的執行順序變過來了。

看來如果使用同一級別的初始化,執行順序與編譯順序有關。

linux驅動載入順序

linux核心為不同驅動的載入順序對應不同的優先順序,在 include linux init.h 中定義了一些巨集 define pure initcall fn define initcall 0 fn,1 define core initcall fn define initcall 1 fn...

Linux核心驅動載入順序

問題 背光驅動初始化先於lcd驅動初始化,導致lcd驅動初始化時出現閃屏的現象。解決過程 1 mach c中platform devices列表如下 platform devices static struct platform device athena evt platform devices ...

驅動載入順序

在系統初始化的時候,決定驅動程式在什麼時候被載入的資訊儲存在登錄檔中。最早的一批驅動是由ntldr載入記憶體的 僅僅是載入 第二批是由io管理器載入記憶體的 第三批是由 scm service control manager 載入的 乙個驅動在第幾批中被載入是由 hklm system curren...