Kconfig原理与示例(二)常用语法关键词

本文深入讲解Kconfig的写法,包括注释、配置项定义、菜单创建、单选配置、文件加载及反向依赖等核心概念。适用于嵌入式系统开发者理解和掌握内核配置文件的编辑技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上次进了Kconfig的原理,本文主要介绍写法
1.comment 显示在菜单的注释:
comment “YGC_CFG_TST”
在这里插入图片描述
2.config 配置项,config USB意义就是定义CONFIG_USB变量:
config YGC_CFG_TST
bool “ygc bool test”

变量有几种类型:
bool /boolean bool和boolean都是一样的, 表示布尔类型,只有y和n.
tristate 有y n和m
depends on 依赖,当依赖的定义为Y时才会有效,否则不显示。
default 默认值

3.菜单:使用menu 和endmenu新建一个菜单,
menu “YGC_CFG_TST menu”
comment “YGC_CFG_TST menu”
config YGC_CFG_TST1
bool “ygc bool test”
config YGC_CFG_TST2
tristate “ygc bool test2”
endmenu
在这里插入图片描述
4.choice 单选,在多项配置中选择一项

choice
	 prompt "choose test0"
	 default TEST3

	 config TEST1
		bool "ygc bool test1"
	 config TEST2
		bool "ygc bool test2"
	 config TEST22
		bool "ygc bool test2"
	 config TEST3
		bool "ygc bool test3"
endchoice

在这里插入图片描述
6.source 加载另一个文件:

"drivers/KcfgBak"

menu "Source Test"
       choice
             prompt "source test"
             default TEST3

             config TEST1
				bool "ygc bool test1"
             config TEST2
				bool "ygc bool test2"
             config TEST3
				bool "ygc bool test3"
        endchoice
endmenu		

在这里插入图片描述

7.select 反向依赖
config USB_G_ANDROID
boolean “Android Composite Gadget”
select USB_F_ACM
select USB_LIBCOMPOSITE
select USB_U_SERIAL

当前配置项被选中时,选中symbol,忽略依赖项和手动设置值。只有boolean和tristate类型的symbol可以使用反向依赖。

### Kconfig 中多层 Choice 配置 在 Linux 内核配置文件 `Kconfig` 中,可以定义多层次的选择结构来简化复杂选项的管理。这种机制允许用户在一个范围内选择唯一的选项,并且这些选项可以在多个层次上嵌套。 #### 基本语法 一个多层 `choice` 结构可以通过如下方式实现: ```makefile menu "Processor type and features" choice prompt "Select the maximum number of CPUs" default MAX_CPU_4 config MAX_CPU_1 bool "Single CPU support only" help Select this option to configure kernel for single processor systems. config MAX_CPU_2 bool "Up to 2 CPU support" depends on SMP help Enable this setting when configuring a system with up to two processors. config MAX_CPU_4 bool "Up to 4 CPU support" depends on SMP help Choose this configuration for machines that have between one and four processing units installed. endchoice if MAX_CPU_4 || MAX_CPU_2 choice prompt "Choose specific CPU frequency scaling governor" default GOVERNOR_ONDEMAND config GOVERNOR_PERFORMANCE bool "Performance Governor" config GOVERNOR_POWERSAVE bool "Powersave Governor" config GOVERNOR_USERSPACE bool "Userspace Governor" config GOVERNOR_ONDEMAND bool "Ondemand Governor" endchoice endif ``` 上述例子展示了如何创建两个相互依赖的选择项。第一个 `choice` 是关于最大 CPU 数量的支持;第个 `choice` 则是在选择了特定数量的 CPU 后才可见,用于选择具体的 CPU 频率缩放策略[^1]。 当用户选择了不同的处理器数目时,只有相应的频率调节器才会被显示出来供进一步挑选。这种方式不仅提高了用户体验,还减少了不必要的编译时间以及最终生成进制文件大小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值