笔记 28 : linux 里 Kconfig 语法详解

(239)源码 :

bash 复制代码
#
# Kconfig test file
#

menu "Level 1 menu"                                     #一级菜单开始

    menu "Level 2-1 menu"                               #二级菜单(1)开始

        config MENU_2_1_CONFIG_1                        #二级菜单(1)的选项1
            bool "MENU_2_1_CONFIG_1"                    #bool类型(y/n),跟着提示信息
            select MENU_2_1_CONFIG_2                    #本条件选中则选中条件 MENU_2_1_CONFIG_2
            select MENU_2_1_CONFIG_4                    #本条件选中则选中条件 MENU_2_1_CONFIG_4
            default y                                   #bool默认值为y

        config MENU_2_1_CONFIG_2                        #二级菜单(1)的选项2
            bool "MENU_2_1_CONFIG_2"                    #bool类型(y/n),跟着提示信息
            default n                                   #bool默认值为n

        config MENU_2_1_CONFIG_3                        #二级菜单(1)的选项3
            bool "MENU_2_1_CONFIG_3"                    #bool类型(y/n),跟着提示信息
            depends on MENU_2_1_CONFIG_2                #当条件 MENU_2_1_CONFIG_2 被选中时,本条件才显示
            default y                                   #bool默认值为y

        config MENU_2_1_CONFIG_4                        #二级菜单(1)的选项4
            bool                                        #bool类型(y/n),没带提示信息,本选项不会显示,但是存在
            default n                                   #bool默认值为y
    endmenu                                             #二级菜单(1)结束

    menu "Level 2-2 menu"                               #二级菜单(2)开始
        config MENU_2_2_CONFIG_1                        #二级菜单(2)的选项1
            bool "MENU_2_2_CONFIG_1"                    #bool类型(y/n),跟着提示信息
            default n                                   #bool默认值为n

        config MENU_2_2_CONFIG_2                        #二级菜单(2)的选项2
            tristate "MENU_2_2_CONFIG_2"                #tristate类型(y/n/m),跟着提示信息
            default m                                   #tristate默认值为m

        config MENU_2_2_CONFIG_3                        #二级菜单(2)的选项3
            string "MENU_2_2_CONFIG_3"                  #string类型(任意字符串),跟着提示信息
            default "this is MENU_2_2_CONFIG_3"         #string默认值为 this is MENU_2_2_CONFIG_3

        config MENU_2_2_CONFIG_4                        #二级菜单(2)的选项4
            hex "MENU_2_2_CONFIG_4"                     #hex类型(十六进制的值),跟着提示信息
            default 0x456789                            #hex默认值为 0x456789

        config MENU_2_2_CONFIG_5                        #二级菜单(2)的选项5
            int "MENU_2_2_CONFIG_5"                     #int类型(十进制的值),跟着提示信息
            default 666                                 #int默认值为 666
    endmenu                                             #二级菜单(2)结束

    menu "Level 2-3 menu"                               #二级菜单(3)开始
        choice                                          选择配置项,类似单选功能
            prompt "choice name"                        #配置项的显示名称

            default OPTION_2                            #默认选择的配置

            config OPTION_1                             #选项1
                bool "OPTION_1"                        

            config OPTION_2                             #选项2
                bool "OPTION_2"          

            config OPTION_3                             #选项3
                bool "OPTION_3"          

            config OPTION_4                             #选项4
                bool                                    #没带提示信息的条件类型不会现实
         
        endchoice                                       选择配置项结束
    endmenu                                             #二级菜单(3)结束

    menu "Level 2-4 menu"                               #二级菜单(4)开始
        config MENU_2_4_CONFIG_1                        #二级菜单(4)的选项1
        bool "MENU_2_4_CONFIG_1"                        #bool类型(y/n),跟着提示信息
        default n                                       #bool默认值为n

        if MENU_2_4_CONFIG_1                            #如果 选项(MENU_2_4_CONFIG_1)被选中
            comment "you choose MENU_2_4_CONFIG_1 !!"   #打印注释信息
        endif
    endmenu                                             #二级菜单(4)结束

    menuconfig Level_2-5_menu                           #二级菜单(5)开始
        bool "Level 2-5 menuconfig"
        default n
       
        if Level_2-5_menu
            config MENU_2_5_CONFIG_1                    #选项1
                bool "MENU_2_5_CONFIG_1"                        
                default n                               #bool默认值为n

            config MENU_2_5_CONFIG_2                    #选项2
                bool "MENU_2_5_CONFIG_2"                        
                default y                               #bool默认值为n
        endif

endmenu                 

++

++

++

++

++

++

++

++ 配置项没有提示词,则不会显示出来。

++

++

++

++ 工作中,若发现自己的配置项没有出现,很有可能就是依赖项没有被选中 。

++

(240 a)彩色源码 :

++

++

++

(240 b) source :

(241)

(242)

谢谢

相关推荐
2035去旅行4 天前
bootcmd 详细讲解
linux·嵌入式·arm·soc
LONGZHIQIN6 天前
STM32学习笔记
笔记·stm32·学习·arm
好用斋7 天前
飞牛首款 Arm 架构 NAS EVO4 RK3588:对比 X86 架构的优缺点
arm
凉、介11 天前
深入理解 ARMv7-A | Generic Timer
笔记·学习·嵌入式·arm
益企研究院13 天前
Arm 副总裁 Eddie Ramirez:智能体 AI 重塑数据中心,Arm 如何构建下一代算力底座?
arm
2035去旅行18 天前
U-Boot DM(Driver Model)驱动框架
嵌入式·arm·soc
凉、介18 天前
深入理解 ARMv7-M | 异常/中断处理
笔记·学习·嵌入式·arm
凉、介18 天前
深入理解 ARMv7-M|处理器模式与寄存器
笔记·学习·嵌入式·arm
2035去旅行20 天前
U-Boot简介
嵌入式·arm·soc
zbyyd23 天前
Linux驱动:UART串口通信、GT9147触摸屏与IIO-ADC驱动开发
linux·驱动开发·arm