vxWorks 6.9 Разработка драйверов
Я погружаюсь в разработку драйверов VxWorks. Моя проблема в том, что в моих настройках ядра я могу найти свой драйвер-компонент, но он всегда неактивен и не позволяет мне его включать. Когда я щелкаю по нему правой кнопкой мыши и выбираю "check", он говорит "Undefined reference mydriver.o"
Я прочитал документацию для разработчиков драйверов vxBus и решил, что протестирую процесс разработки, взяв уже существующий / работающий драйвер и просто изменив строки file-name/function-name/print. Я скопировал и изменил существующие *.c, *.h, *.cdf, *.dc, *.dr.
Я также поиграл с помещением исходных файлов драйвера в каталог target/3rdparty, как это было сделано для драйвера "wrsample".
Я также попытался просто добавить правильную инструкцию #define в мой файл config.h, чтобы попытаться создать экземпляр драйвера, но безуспешно.
Может ли кто-нибудь помочь? Кажется, мне нужно предварительно собрать исходный код драйвера для создания файла *.o, но я не уверен, как это сделать. Я не смог найти файл *.o для существующего драйвера, который я изменил...
1 ответ
Разобрался сам. Мне нужно было создать make-файл и скомпилировать исходный код (заранее... перед использованием драйвера в vxWorks). Я использовал make-файл, который был автоматически сгенерирован для моего WindRiver Tornado, в качестве шаблона для создания моего make-файла драйвера. Затем я создал командный файл, который вызывает make vxWorks.
Причина, по которой не было объектного файла для существующего драйвера, заключается в том, что объекты добавляются в библиотеку драйверов (*.a), а не просто в *.o.
Все файлы драйверов находятся в каталоге target/3rdparty, но мне пришлось скопировать файлы *.cdf и *.h в другие каталоги, чтобы заставить его работать. Я сделал это шаг в моем командном файле.