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.

Другие вопросы по тегам