话不多说,我们一般使用menuconfig+Kconfig的方式进行版本配置,这里简单的笔记一个Python解析器版本的实现 Kconfiglib。
CONTENTS
Kconfiglib
官方地址【 https://github.com/ulfalizer/Kconfiglib 】
安装方式:
pip(3) install kconfiglib
安装成功后,会在系统BIN中添加很多可执行命令(其实是python脚本)【参考链接】 ,我们一般常用的是 menuconfig guiconfig genconfig
menuconfig:用于显示经典的menuconfig页面,默认需要本地有Kconfig文件
guiconfig:显示GUI版本的config页面,默认需要本地有Kconfig文件
genconfig:默认将.config文件转换为config.h
Kconfig的语法介绍
【 https://www.rt-thread.org/document/site/programming-manual/kconfig/kconfig/ 】
【 https://www.cnblogs.com/huanhuaqingfeng/p/11235843.html 】
【 https://www.cnblogs.com/lotgu/p/5967979.html 】
【 https://docs.zephyrproject.org/latest/guides/kconfig/index.html 】
【 https://www.cnblogs.com/fah936861121/p/7229522.html 】
简单实例
Kconfig文件1,最简单demo:
mainmenu "Main MenuConfig Demo" comment "This is a comment demo" config BSP_USING_GPIO bool "Enable GPIO" default y help config gpio
Kconfig文件2,有select依赖:
mainmenu "Main MenuConfig Demo" comment "This is a comment demo" config BSP_USING_PIN bool "Enable PIN" default n help config PIN config BSP_USING_GPIO bool "Enable GPIO" select BSP_USING_PIN default n help config gpio
Kconfig文件3,几个常见的类型:
mainmenu "Main MenuConfig Demo" comment "This is a comment demo" config BSP_USING_PIN bool "Enable PIN" default n help config PIN config BSP_USING_GPIO bool "Enable GPIO" select BSP_USING_PIN default n help config gpio config BSP_DEVICE_NAME string "device name" default "hello world" help config device name config BSP_SCL_PIN int "pin number" range 1 176 default 128 help config pin number menu "Hardware Drivers Config" config BSP_USING_COM2 bool "Enable COM2 (uart2 pin)" default n config BSP_USING_COM3 bool "Enable COM3 (uart3 pin)" default n endmenu
Kconfig文件4,隐藏依赖的几种写法:
mainmenu "Main MenuConfig Demo" comment "This is a comment demo" config BSP_USING_PIN bool "Enable PIN" default n if BSP_USING_PIN config BSP_SCL_PIN int "pin number" range 1 176 default 128 help config pin number endif ============================= config BSP_USING_PIN bool "Enable PIN" default n config BSP_SCL_PIN depends on BSP_USING_PIN int "pin number" range 1 176 default 128 help config pin number
Kconfig文件5,config为menu时的显示:
menuconfig BSP_USING_UART bool "Enable UART" default n if BSP_USING_UART config BSP_SCL_PIN int "pin number" range 1 176 default 128 help config pin number endif
Kconfig文件5,choice的写法:
choice prompt "Select clock source" default BSP_RTC_USING_LSE config BSP_RTC_USING_LSE bool "RTC USING LSE" config BSP_RTC_USING_LSI bool "RTC USING LSI" endchoice
发表评论