diff --git a/development-tools/kconfig/kconfig.md b/development-tools/kconfig/kconfig.md index 4b7eb49af319f888cf50915d18b840a91bd0c6e2..254a130cbfbe44c6d7465018d75d1cfea474a80b 100644 --- a/development-tools/kconfig/kconfig.md +++ b/development-tools/kconfig/kconfig.md @@ -311,11 +311,11 @@ source "../libraries/HAL_Drivers/Kconfig" ## FAQ -### 如何在menuconfig隐藏一些config +### 如何在 menuconfig 隐藏一些 config -Kconfig中有个特殊的用法,在制作大型软件包的时候会遇到,就是有一些宏定义是不愿意让客户在menuconfig中进行修改的,但是又是相关开源软件包中必须要包含的,而且数目也比较众多的,对Kconfig一些选项有一些依赖的,也就是不希望该配置选项出现在menuconfig中。 +Kconfig中有个特殊的用法,在制作大型软件包的时候会遇到,就是有一些宏定义是不愿意让客户在 menuconfig 中进行修改的,但是又是相关开源软件包中必须要包含的,而且数目也比较众多的,对 Kconfig 一些选项有一些依赖的,也就是不希望该配置选项出现在 menuconfig 中。 -下面以Kconfig举例说明: +下面以 Kconfig 举例说明: ```c config BSP_USING_GPIO @@ -323,33 +323,43 @@ config BSP_USING_GPIO default y ``` -将上述语句中的`bool`后面的注释去掉。 +将上述语句中的 `bool` 后面的注释去掉。 ```c config BSP_USING_GPIO bool default y ``` -这个时候在menuconfig中就不会出现该宏定义,但是宏定义还是会有 +这个时候在 menuconfig 中就不会出现该宏定义,但是宏定义还是会有 -### depends on 和select语句的区别 +### depends on 和 select 语句的区别 例如,如下配置 ```c config BSP_USING_UART3 bool "UART3 config" - default y depends on BSP_USING_UART select RT_USING_SERIAL + default n ``` -这个其中的含义是:BSP_USING_UART3是否需要呈现给客户配置和选中,依赖于BSP_USING_UART这个配置是否打开。 一旦BSP_USING_UART3选中了,RT_USING_SERIAL这个也必须要选中。 +这个其中的含义是:BSP_USING_UART3 是否需要呈现给客户配置和选中,依赖于 BSP_USING_UART 这个配置是否打开。 一旦 BSP_USING_UART3 选中了,RT_USING_SERIAL 这个也必须要选中。 -depends和select都需要注意的是:depends和select后面的宏定义必须要在其他地方有对应的config或者选项声明,否则不会生效。 +depends和select都需要注意的是:depends 和 select 后面的宏定义必须要在其他地方有对应的 config 或者选项声明,否则不会生效。 可以这样理解他们之间的区别: -- select 相当于这个配置需要的一些组件配置选项 -- depends on 相当于这个配置需要哪些配置打开才会显示,这个通常和if/endif 形式类似。 +- select:开启 BSP_USING_UART3 需要依赖 RT_USING_SERIAL,RT_USING_SERIAL 功能会被自动选定; +- depends on:在 BSP_USING_UART 已经选定的情况下,系统会**显示** BSP_USING_UART3 的配置菜单选项,至于 BSP_USING_UART3 默认是否被选定,取决于 default 。 + +### depends on 高级用法 + +depends on可以以一定的逻辑 “depends” 多个条件,具体写法如下: + +```c +config BSP_USING_UART3 + depends on RT_USNING_A || !RT_USNING_B +``` +这句话表示的是UART3串口会在 RT_USNING_A 选定或者 RT_USNING_B 不选定的情况下,显示 BSP_USING_UART3 的配置菜单选项,默认为不选状态。 \ No newline at end of file