我是靠谱客的博主 幽默泥猴桃,最近开发中收集的这篇文章主要介绍<Kconfig><1>基础语法一. 文件开头 mainmenu二. 菜单块 menu/endmenu三. 配置块 config menuconfig四. 条件显示 if depends on五. 依赖 select六. 单选块 choice七. 界面头部显示 comment八. 多文件联动 source,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

  • 一. 文件开头 `mainmenu`
  • 二. 菜单块 `menu/endmenu`
  • 三. 配置块 `config` `menuconfig`
    • `config`
    • `menuconfig`
  • 四. 条件显示 `if` `depends on`
    • `if`
    • `depends on`
  • 五. 依赖 `select`
  • 六. 单选块 `choice`
  • 七. 界面头部显示 `comment`
  • 八. 多文件联动 `source`

一. 文件开头 mainmenu

#菜单开头
mainmenu "LOG_TEST DEMO Config"

二. 菜单块 menu/endmenu

menu 之后的字符串是菜单名。menuendmenu间有很多 config语句

menu "Hardware Drivers Config"
    配置块一
    配置块二
endmenu

三. 配置块 config menuconfig

配置的选项块隐藏

隐藏:

config BSP_USING_GPIO
    bool
    default y

显示:

config BSP_USING_GPIO
    bool "Enable GPIO"
    default y

config

#  配置选项的开始  配置选项名称
config BSP_USING_GPIO 

    #   配置类型定义 -- 5种
    #   bool 布尔类型        default n
    #   tristate 三态类型    表示在内核中的三种状态
    #        用法:
    #            y 不选中
    #            n 选中编译到内核
    #            m 手动添加驱动
    #   string 字符串        default "uart1"
    #   hex 十六进制         用法同下--区别生成的数的进制不一样
    #   int 整形             
    #        使用整形时需要有范围
    #        int "ssss"
    #        range 1 176
    #        default 116
    bool "Enable GPIO"//类型 输入提示
    
    #   反向依赖关系     
    #   select:开启 BSP_USING_GPIO 需要依赖 RT_USING_PIN
    #        RT_USING_PIN 功能会被自动选定;
    select RT_USING_PIN//依赖关系
    
    #   配置选项的默认值
    #   bool的可以是 y/n  
    default y//默认值

    #   config gpio
    #   为帮助信息
    help//帮助信息
    config gpio
#===============================================
    #   配置结束后
    #   rtconfig.h 有如下内容
    #        #define RT_USING_PIN
    #        #define BSP_USING_GPIO

menuconfig

# menuconfig 这个语句和 config 语句很相似
# 它在 config 的基础上要求所有的子选项作为独立的行显示。
menu "Hardware Drivers Config"
    menuconfig BSP_USING_UART
        bool "Enable UART"
        default y
        select RT_USING_SERIAL
        if BSP_USING_UART
            config BSP_USING_UART1
                bool "Enable UART1"
                default y

            config BSP_UART1_RX_USING_DMA
                bool "Enable UART1 RX DMA"
                #   depends on
                #   该配置选项 BSP_UART1_RX_USING_DMA
                #   只有在 BSP_USING_UART1 && RT_SERIAL_USING_DMA 为真时
                #   方可显示
                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
                default n
        endif
endmenu

四. 条件显示 if depends on

if

当没有选中 “Enable CAN” 选项时( 就是宏 BSP_USING_CAN ),下面通过 if 判断的 Enable CAN1 选项并不会显示出来

menu "Hardware Drivers Config"
    menuconfig BSP_USING_CAN
        bool "Enable CAN"
        default n
        select RT_USING_CAN
        if BSP_USING_CAN
            config BSP_USING_CAN1
                bool "Enable CAN1"
                default n
        endif
endmenu

depends on

depends on 条件满足 内容显示

# RT_USNING_A 选定或者 RT_USNING_B 不选定的情况下
# 显示 BSP_USING_UART3 的配置菜单选项
# 默认 是否 为选择状态  取决于  default n
config BSP_USING_UART3
    bool "UART3 config"
    depends on RT_USNING_A || !RT_USNING_B
    select RT_USING_SERIAL
    default n

五. 依赖 select

# 开启 BSP_USING_UART3 需要依赖 RT_USING_SERIAL
# 若 BSP_USING_UART3 开启, 
# RT_USING_SERIAL 功能会被自动选定
config BSP_USING_UART3
    bool "UART3 config"
    select RT_USING_SERIAL
    default n

六. 单选块 choice

menu "Hardware Drivers Config"
    menuconfig BSP_USING_ONCHIP_RTC
        bool "Enable RTC"
        select RT_USING_RTC
        select RT_USING_LIBC
        default n
        if BSP_USING_ONCHIP_RTC

            #   choice/endchoice 给出选择项
            #   中间可以定义多个配置项供选择
            #   但只能选择一个配置项
            choice

                # prompt
                #     标头提示信息 
                #     bool
                #     prompt "Networking support"
                # 等价的
                #     bool "Networking support"
                prompt "Select clock source"
                udefalt BSP_RTC_USING_LSE

                config BSP_RTC_USING_LSE
                    bool "RTC USING LSE"

                config BSP_RTC_USING_LSI
                    bool "RTC USING LSI"
            endchoice
        endif
endmenu

七. 界面头部显示 comment

menu "Hardware Drivers Config"
	# 出现在  "Hardware Drivers Config" 界面的第一行
	# 作为提示
    comment "uart2 pin conflict with Ethernet and PWM"
    config BSP_USING_COM2
        bool "Enable COM2"
        select BSP_USING_UART
        select BSP_USING_UART2
        default n
endmenu

八. 多文件联动 source

语句用于读取另一个文件中的 Kconfig 文件

source "../libraries/HAL_Drivers/Kconfig"

最后

以上就是幽默泥猴桃为你收集整理的<Kconfig><1>基础语法一. 文件开头 mainmenu二. 菜单块 menu/endmenu三. 配置块 config menuconfig四. 条件显示 if depends on五. 依赖 select六. 单选块 choice七. 界面头部显示 comment八. 多文件联动 source的全部内容,希望文章能够帮你解决<Kconfig><1>基础语法一. 文件开头 mainmenu二. 菜单块 menu/endmenu三. 配置块 config menuconfig四. 条件显示 if depends on五. 依赖 select六. 单选块 choice七. 界面头部显示 comment八. 多文件联动 source所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部