RT-thread 的Kconfig简单语法

    xiaoxiao2023-10-25  186

    目录

     

    一、Kconfig的作用

    二、元素解释

    2.1、menu  &&  endmenu

    2.2、config

    2.3、comment

    2.4、if  && endif

    2.5、遇到再说,待续。。。。。


    一、Kconfig的作用

    Kconfig 对内核和组件的功能进行配置,对组件进行自由裁剪。

     

    二、元素解释

    2.1、menu  &&  endmenu

    menu的作用,可以理解成一个目录, menu可以把其中一部分配置项包含到一个menu中,这样有利于配置的分类显示。menu与endmenu是一组指令,必须同时出现。menu和endmenu中包含的部分就是子目录中的配置项。

    也就是说menu与endmenu之间的内容构成一个部分,这样易于分类管理。

    menu "Hardware Drivers Config" //此处包含一部分的内容 endmenu

    menu后面连接的字符串就是菜单名称,在menuconfig界面中,显示如下:

    2.2、config

    config是关键字,表示一个配置选项的开始;

    config有5种类型:bool、tristate、string、hex和int,其中tristate和string是基本的类型。

                (1)bool变量的值:y和n。(2)tristate变量的值:y、n和m。   (3)string变量的值:  字符串。

     bool之后的字符串是提示信息,显示在界面用于提示。

    select:是反向依赖关系的意思,即当前配置选项被选中,说明配置的内容需要选上这个选项。

    depends on:表示依赖于XXX,“depends on TMPFS”表示只有当TMPFS配置选项被选中时,当前配置选项的提示信息才会出现,才能设置当前配置选项,除了防止配置错误外,也可以使显示更简短,减少显示的篇幅。

    举例:

    config BSP_USING_UART2 bool "Enable UART2" select RT_USING_SERIAL default n

    这里是配置BSP_USING_UART2作为bool型变量,bool后面是显示信息,同时也选择了RT_USING_SERIAL,其中该bool类型值默认为n(no,意味着不选取)。

    2.3、comment

    只是起到插入语的作用,别的没啥作用。comment "****Boot options******"

     

    2.4、if  && endif

    menuconfig BSP_USING_I2C1 bool "Enable I2C1 BUS (software simulation)" default n select RT_USING_I2C select RT_USING_I2C_BITOPS select RT_USING_PIN if BSP_USING_I2C1 config BSP_I2C1_SCL_PIN int "i2c1 scl pin number" range 1 176 default 15 config BSP_I2C1_SDA_PIN int "I2C1 sda pin number" range 1 176 default 16 endif

    配置项是位于if和endif中。其中的部分就是子目录BSP_USING_I2C1显示的内容。如果选中了BSP_USING_I2C1,那么if和endif中的内容可以显示。如果没有定义,就只能进入一个空目。

    2.5、遇到再说,待续。。。。。

     

     

     

     

     

     

     

     

    最新回复(0)