0

我想为实现提供 Kconfig / menuconfig 配置。我正在使用 Espressif ESP-IDF 3.3 的工具链,但它似乎与工具链无关。我希望有一个最小的 sdkconfig 文件,没有任何额外的“帮助”符号。

用户应使用 (a) 预定义的配置选项或选择 (b) 自行设置所有值。

这是我当前的 Kconfig 代码:

menu "Test"

    choice PREDEFINED
        prompt "Select predefined configuration"
        default PREDEF_NONE

        config PREDEF_NONE
            bool "None"
        config PREDEF_OPT_A
            bool "Option A"
            select BOARD_A
            select FEATURE_A
        config PREDEF_OPT_B
            bool "Option B"
            select BOARD_B
            select FEATURE_B
    endchoice

    menu "Submenu"
        visible if PREDEF_NONE

        choice
            prompt "Select Board"
            config BOARD_A
                bool "Board A"
            config BOARD_B
                bool "Board B"
        endchoice

        choice
            prompt "Select Feature"
            config FEATURE_A
                bool "Board A"
            config FEATURE_B
                bool "Board B"
        endchoice
    endmenu

endmenu

如果选择了预定义的选项 A,子菜单应该不可见(这是有效的),并且 make menuconfig 使用此 Kconfig 文件创建的结果 sdkconfig 应如下所示:

#
# Test
#
CONFIG_PREDEF_NONE=
CONFIG_PREDEF_OPT_A=y
CONFIG_PREDEF_OPT_B=

#
# Submenu
#
CONFIG_BOARD_A=y
CONFIG_BOARD_B=
CONFIG_FEATURE_A=y
CONFIG_FEATURE_B=

但我只得到前三行

#
# Test
#
CONFIG_PREDEF_NONE=
CONFIG_PREDEF_OPT_A=y
CONFIG_PREDEF_OPT_B=

当我选择 PREDEF_NONE 并手动设置子菜单中的值时,一切都很好。

关于如何进行或这里有什么问题的任何想法?

问候安德烈亚斯

4

1 回答 1

0

这是一个例子:

    choice SPI_HOST
        prompt "SPI HOST"
        default USE_SPI3_HOST

        config USE_SPI1_HOST
            bool "USE SPI1 HOST"
        config USE_SPI2_HOST
            bool "USE SPI2 HOST"
        config USE_SPI3_HOST
            bool "USE SPI3 HOST"
        config USE_SPI4_HOST
            bool "USE SPI4 HOST"
    endchoice

    config SPI_HOST
        int
        default 0 if USE_SPI1_HOST
        default 1 if USE_SPI2_HOST
        default 2 if USE_SPI3_HOST
        default 3 if USE_SPI4_HOST
于 2021-04-06T07:11:42.750 回答