当前位置: 首页 > news >正文

menuconfig 图形化配置原理说明三

一.  简介

本文继续简单了解一下,uboot的图形化配置原理。具体了解 Kconfig语法。

之前文章了解了几个 Kconfig语法。地址如下:

menuconfig 图形化配置原理说明二-CSDN博客

二.  menuconfig 图形化配置之 Kconfig语法

1.  config 条目

顶层 Kconfig 中的 “General setup” 子菜单内容如下:

menu "General setup"
config LOCALVERSIONstring "Local version - append to U-Boot release"
...................
config LOCALVERSION_AUTO
bool "Automatically append version information to the version string"default y
...................
config SYS_MALLOC_F_LENhex "Size of malloc() pool before relocation"
...................
endif
endmenu # General setup
可以看出,在 menu/endmenu 代码块中,有大量的 “ config xxxx ” 的代码块,也就是 config 条目。 config 条目就是 “ General setup ” 菜单的具体配置项,如下图 所示:

顶层 Kconfig中,第 1行中,以 config 关键字开头,后面跟着 LOCALVERSION,LOCALVERSION就是配置项名字。

config 条目都是以 config条目开头的。后面紧跟着配置项名,例如,LOCALVERSION,使能了条目以后,就会在 .config文件 里面添加 CONFIG_LOCALVERSION=y。

由此可知, .config 文件中的 CONFIG_xxx (xxx 就是具体的配置项名字 ) 就是 Kconfig 文件中 config 关键字后面的配置项名字加上 CONFIG_ 缀。

config 关键字下面的这几行是配置项属性,3~5 行是 LOCALVERSION 的属性。

属性里面描述了配置项的类型、输入提示、依赖关系、帮助信息和默认值等。
17 行的 string 是变量类型,也就是“ CONFIG_ LOCALVERSION ”的变量类型。
可以为:bool tristate string hex int ,一共 5 种。
最常用的是 bool tristate string 这三种。
bool 型有两种值: y n ,当为 y 的时候表示使能这个配置项,当为 n 的时候就禁止这个配置项。
tristate 类型有三种值: y m n ,其中 y n 的涵义与 bool 类型一样, m 表示将这个配置项编
译为模块。
string 为字符串类型,所以 LOCALVERSION 是个字符串变量,用来存储本地字符 串,选中以后即可输入用户定义的本地版本号。如下可以输入:

string 后面的 “ Local version - append to U-Boot release ” 就是这个配置项在图形界面上的显示出来的标题。
18 行, help 表示帮助信息,告诉我们配置项的含义,当我们按下“ h ”或“ ? ”弹出来的帮助界面就是 help 的内容。

2.  source

source 用于读取另一个 Kconfig ,例如顶层 Kconfig 文件中 :
source "arch/Kconfig"

顶层 Kconfig 读取 uboot根目录下的 arch/目录下的 Kconfig。

3. choice/endchoice

arch/Kconfig 文件中有如下代码:
choiceprompt "Architecture select"default SANDBOX
config ARCbool "ARC architecture"
.................config ARMbool "ARM architecture"
.................
config X86bool "x86 architecture"
.................
endchoice

choice/endchoice 代码段定义了一组可选择项,将多个类似的配置项组合在一起,供用户单
选或者多选。
就是选择处理器架构,可以从 ARC ARM AVR32 等这些架构 中选择,这里是单选。
uboot 图形配置界面上选择“ Architecture select ”,进入以后,如下图所示:

可以在图 中通过移动光标来选择所使用的 CPU 架构。
2 行的 prompt , 给出这个 choice/endchoice 段的提示信息为“ Architecture select ”。

4. depends on 和 select

打开 arch/Kconfig 文件,在里面有这如下代码:
config HAVE_GENERIC_BOARDboolconfig SYS_GENERIC_BOARDbooldepends on HAVE_GENERIC_BOARDchoiceprompt "Architecture select"default SANDBOXconfig ARCbool "ARC architecture"select HAVE_PRIVATE_LIBGCCselect HAVE_GENERIC_BOARDselect SYS_GENERIC_BOARDselect SUPPORT_OF_CONTROL

6 行,“ depends on ” 说明 SYS_GENERIC_BOARD 项依赖于 HAVE_GENERIC_BOARD ,
也就是说 HAVE_GENERIC_BOARD 被选中以后, SYS_GENERIC_BOARD 才能被选中。
14~17 行,“ select ” 表示反向依赖,当选中 “ ARC ” 以后,“ HAVE_PRIVATE_LIBGCC ”、
HAVE_GENERIC_BOARD ”、“ SYS_GENERIC_BOARD ”和“ SUPPORT_OF_CONTROL ”这四个也会被选中。

5.  comment

comment 用 于 注 释 , 也 就 是 在 图 形 化 界 面 中 显 示 一 行 注 释 , 打 开 文 件
drivers/mtd/nand/Kconfig ,有如下所示代码:
config NAND_ARASANbool "Configure Arasan Nand"helpThis enables Nand driver support for Arasan nand flashcontroller. This uses the hardware ECC for read andwrite operations.comment "Generic NAND options"

8 行,使用 comment 标注了一行注释,注释内容为:“ Generic NAND options ”,这行注释在配置项 NAND_ARASAN 的下面。在图形化配置界面中按照如下路径打开:
-> Device Drivers
        -> NAND Device Support

如下图所示:

从上图中可以看出,在配置项“ Configure Arasan Nand ”下面有一行注释,注释内容为
*** Generic NAND options *** ”。

http://www.lryc.cn/news/207488.html

相关文章:

  • Ansible简介
  • Tomcat+nginx负载均衡和动静分离
  • 全景环视AVM标定
  • 【JavaScript】leetcode链表相关题解
  • 洞察运营机会的数据分析利器
  • 使用Python实现文字的声音播放
  • gulp自动化构建
  • java时间解析生成定时Cron表达式工具类
  • JavaEE 网络原理——TCP的工作机制(末篇 其余TCP特点)
  • 【软件测试】了解JUnit单元测试框架常用注解
  • 【广州华锐互动】三维全景3D消防科普展馆
  • 某大型车企:加强汽车应用安全防护,开创智能网联汽车新篇章
  • LLVM学习笔记(50)
  • rpc入门笔记0x01
  • web - Tomcat服务器
  • 后端接口返回常见的状态码
  • 50.MongoDB快速入门实战
  • 一款功能强大的音乐曲谱软件Guitar Pro 8 .1.1for Mac 中文破解版
  • 图论基础和表示
  • STM32 音频ADC转wav格式
  • 面试中经常问道的问题二
  • SQL UPDATE 语句(更新表中的记录)
  • js节流和防抖
  • 权限系统设计(转载)
  • 【机器学习合集】标准化与池化合集 ->(个人学习记录笔记)
  • Dockerfile文件自动化生成R4L镜像
  • 基于SSM的居家养老系统
  • [C#基础训练]FoodRobot食品管理部分代码-2
  • docker部署rabbitmq的坑
  • 【python VS vba(系列2)】 python和vba读写EXCEL文件的方式比较 (建设ing)