ZephyrOS:如何将驱动程序模块添加到树外项目中

And*_*ovs 5 zephyr-rtos

我还没有找到关于如何将驱动程序模块添加到树外 Zephyr 项目的明确信息,因此我将自己提供答案。

And*_*ovs 8

变化:

CMakeLists.txt

+set(ZEPHYR_EXTRA_MODULES drivers/ololo)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
Run Code Online (Sandbox Code Playgroud)

项目配置文件

+CONFIG_OLOLO=y
Run Code Online (Sandbox Code Playgroud)

内核配置

没有变化

新文件:

驱动程序/ololo/CMakeLists.txt

zephyr_library()
zephyr_library_sources_ifdef(CONFIG_OLOLO ololo.c)
Run Code Online (Sandbox Code Playgroud)

驱动程序/ololo/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
Run Code Online (Sandbox Code Playgroud)

驱动程序/ololo/ololo.c

/* Code goes here */
Run Code Online (Sandbox Code Playgroud)

驱动程序/ololo/zephyr/module.yml

build:
  cmake: .
  kconfig: Kconfig
Run Code Online (Sandbox Code Playgroud)