研究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...