2014-11-25 2 views
1

У меня есть два драйвера Dr1 и Dr2. Мое требование - зонд Dr1 должен сначала позвонить, тогда можно вызвать зонд Dr2. Поскольку оба источника Dr1 и Dr2 находятся в одной папке, я сначала добавил запись Dr1 и запись Dr2 в Makefile (как показано ниже).Порядок заказа драйвера в Linux Kernel

OBJ - $ (CONFIG_DR1) + = dr1.0

OBJ - $ (CONFIG_DR2) + = dr2.0

С учетом указанных выше модификаций, Dr1 зонд вызова первым и Dr2 зонд вызова следующего ,

Этот подход является правильным или любым другим способом для достижения того же требования? Я не уверен, как происходит переключение драйверов и устройств. Мой вопрос заключается в том, что если устройство для Dr2 будет первым, тогда сначала будет вызван зонд Dr2.

Не могли бы вы помочь мне понять, как привязка устройства и драйвера произойдет в ядре Linux. Мы можем контролировать этот порядок.

+0

Вы используете модули? –

ответ

2

Согласно this SO answer, заказ в файле makefile является правильным подходом к этому.

См. Также this other SO answer for a detailed explanation механизмов.

+0

Спасибо за ответ, я рассмотрю предоставленные ссылки для большего понимания. – user3693586

+1

Или [этот] (http://stackoverflow.com/questions/18605653/linux-module-init-vs-core-initcall-vs-early-initcall/18606561#18606561). # Самореклама – eepp