Kconfig语法

错误提示

  1. 'endmenu' in different file than 'menu'

endmenu 后面没有空行导致,加空行就可以了

语法

  1. 注释

注释以 # 开始

  1. menu endmenu
    直接运行menuconfig,可以看到最上层的菜单:
    在这里插入图片描述
  2. 类型后面的说明
    通过enter进入第二层菜单:
    在这里插入图片描述
  3. select

select 表示如果选中了这个配置,那由select选中的配置就一定会被选中!

在这里插入图片描述
5. menuconfig
在这里插入图片描述
注意上面的Enable I2C1 BUS在没有选中的情况下后面是----,而选中后会变成--->,表示可以进入,并进行更深入的配置(这就是menuconfig的作用,menuconfig里面一般都有if endif 语句进行配套使用(用于指定更细节的配置项)。但没有endmenuconfig哦):
在这里插入图片描述
6. depends on
在这里插入图片描述
接下来选中DMA试一下:
在这里插入图片描述
7. int型配置
在这里插入图片描述
8. choise
在这里插入图片描述

本文使用的Kconfig文件

在写的过程中,稍微有一些修改,但以上所涉及的知识点都还是一样的。

menu "Hardware Drivers Config"

config SOC_STM32F429ZI
    bool
    select SOC_SERIES_STM32F4
    select RT_USING_COMPONENTS_INIT
    select RT_USING_USER_MAIN
    default y

config SOC_TEST
	bool "Test"
    select SOC_TEST1
    default y

menu "Onboard Peripheral Drivers"

    config BSP_USING_FMC
        bool "Enable FMC"
        default n

    config BSP_USING_SDRAM
        bool "Enable SDRAM"
        select BSP_USING_FMC
        default n

endmenu

menu "On-chip Peripheral Drivers"

    config BSP_USING_GPIO
        bool "Enable GPIO"
        select RT_USING_PIN
        default y
    
    config RT_SERIAL_USING_DMA
        bool "Enable serial dma"
        default n

    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_USING_UART1 && RT_SERIAL_USING_DMA
                default n
            
            config BSP_USING_UART2
                bool "Enable UART2"
                default n
            
            config BSP_UART2_RX_USING_DMA
                bool "Enable UART2 RX DMA"
                depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
                default n
            
        endif
endmenu

choice
    prompt "Memheap memory allocation mode"
    default RT_MEMHEAP_FAST_MODE

    config RT_MEMHEAP_FAST_MODE
        bool "fast mode"
        help
            Speed priority mode.
            As long as the memory block size meets the requirements, the search ends immediately.

    config RT_MEMHEAP_BEST_MODE
        bool "best mode"
        help
            Best size first.
            The search does not end until the memory block of the most appropriate size is found
    
    config CHOICE_3
        tristate "choice 3"
        help
            Just for test.
            djd 20230601
endchoice

endmenu     # "Hardware Drivers Config"

实战

RT-Thread源码中的一个Kconfig文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值