ZephyrOS: как добавить модуль драйвера в проект вне дерева
Я не нашел исчерпывающей информации о том, как добавить модуль драйвера в нестандартный проект Zephyr, поэтому я дам ответ сам.
2 ответа
Решение
Изменения:
CMakeLists.txt
+set(ZEPHYR_EXTRA_MODULES drivers/ololo)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
prj.conf
+CONFIG_OLOLO=y
Kconfig
Без изменений
Новые файлы:
драйверы / ололо /CMakeLists.txt
zephyr_library()
zephyr_library_sources_ifdef(CONFIG_OLOLO ololo.c)
драйверы / ололо /Kconfig
menuconfig OLOLO
bool "Ololo driver"
default y
select BLAH
depends on MEH
help
Enable support for ololo driver
if OLOLO
module = OLOLO
module-str = ololo
source "subsys/logging/Kconfig.template.log_config"
endif
драйверы /ololo/ololo.c
/* Code goes here */
драйверы / ололо / зефир /module.yml
build:
cmake: .
kconfig: Kconfig
Чтобы добавить собственный модуль драйвера, который включает в себя системные вызовы, можно взглянуть на драйвер модуля блокировки teslabs/zds-2022-drivers-app.