From 7b1503d919aa57174eadbc583562a61c921bff59 Mon Sep 17 00:00:00 2001 From: supperthomas <78900636@qq.com> Date: Mon, 29 Mar 2021 23:01:41 +0800 Subject: [PATCH] add the FAQ --- development-tools/kconfig/kconfig.md | 44 ++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/development-tools/kconfig/kconfig.md b/development-tools/kconfig/kconfig.md index 5a96fa1..4b7eb49 100644 --- a/development-tools/kconfig/kconfig.md +++ b/development-tools/kconfig/kconfig.md @@ -309,3 +309,47 @@ source "../libraries/HAL_Drivers/Kconfig" 上述语句用于读取当前 Kconfig 文件所在路径的上一级文件夹 libraries/HAL_Drivers 下的 Kconfig 文件。 +## FAQ + +### 如何在menuconfig隐藏一些config + +Kconfig中有个特殊的用法,在制作大型软件包的时候会遇到,就是有一些宏定义是不愿意让客户在menuconfig中进行修改的,但是又是相关开源软件包中必须要包含的,而且数目也比较众多的,对Kconfig一些选项有一些依赖的,也就是不希望该配置选项出现在menuconfig中。 + +下面以Kconfig举例说明: + +```c +config BSP_USING_GPIO + bool "Enable GPIO" + default y +``` + +将上述语句中的`bool`后面的注释去掉。 +```c +config BSP_USING_GPIO + bool + default y +``` + +这个时候在menuconfig中就不会出现该宏定义,但是宏定义还是会有 + +### depends on 和select语句的区别 + +例如,如下配置 + +```c +config BSP_USING_UART3 + bool "UART3 config" + default y + depends on BSP_USING_UART + select RT_USING_SERIAL +``` + +这个其中的含义是:BSP_USING_UART3是否需要呈现给客户配置和选中,依赖于BSP_USING_UART这个配置是否打开。 一旦BSP_USING_UART3选中了,RT_USING_SERIAL这个也必须要选中。 + +depends和select都需要注意的是:depends和select后面的宏定义必须要在其他地方有对应的config或者选项声明,否则不会生效。 + +可以这样理解他们之间的区别: + +- select 相当于这个配置需要的一些组件配置选项 +- depends on 相当于这个配置需要哪些配置打开才会显示,这个通常和if/endif 形式类似。 + -- Gitee