RK3568驱动指南|第二篇 字符设备基础-第7章 menuconfig图形化配置实验(二)

news2024/11/13 9:30:01

7.2 Kconfig 语法简介

上一小节我们打开的图形化配置界面是如何生成的呢?图形化配置界面中的每一个界面都会对应一个Kconfig文件。所以图形化配置界面的每一级菜单是由Kconfig文件来决定的。

图形化配置界面有很多菜单。所以就会有很多Kconfig文件,这也就是为什么我们会在内核源码的每个子目录下,都会看到Kconfig文件的原因,那掌握Kconfig文件相关的知识是不是就非常重要呢。

所以这一小节我们来看下如何编写Kconfig文件来生成图形化配置界面,也就是Kconfig文件的语法是什么。

1.Mainmenu

mainmenu顾名思义就是主菜单,也就是我们输入完“make menuconfig”以后默认打开的界面,mainmenu用来设置主菜单的标题,如下所示:

mainmenu “Linux/$(ARCH) $(KERNELVERSION) Kernel Configuration”

此行代码是设置菜单的名字为“Linux/$(ARCH) $(KERNELVERSION) Kernel Configuration”。如下图(图7-4)所示,ARCH变量是通过“export ARCH=arm64”设置的,内核版本KERNELVERSION为4.19.232。

2.source

source用于读取另一个Kconfig文件,比如“source “init/Kconfig””就是读取init目录下的Kconfig文件。

3.menu/endmenu

menu/endmenu条目用于生成菜单,如下(图7-5)所示,生成了Watchdog Timer Support的菜单。

menu之后的字符串是菜单名,“menu”是菜单开始的标志,“endmenu”是菜单结束的标志,这俩个是成对出现的。“menu”和“endmenu”之间有很多config条目。在kernel目录下输入make menuconfig,如下图(图7-6)所示,可以看到上述代码描述的"Watchdog Timer Support"菜单。

进入“ Watchdog Timer Support —> ”可以看到很多config定义的条目,如下(图7-7)所示:

4.if/endif

if/endif 语句是一个条件判断,定义了一个 if 结构,Kconfig中代码如下(图7-8)所示:

图 7-8

当没有选中 “Enable CAN” 选项时,下面通过 if 判断的 Enable CAN1 选项并不会显示出来。当上一级菜单选中 “Enable CAN” 时,Enable CAN1 选项才会显示。

\5. choice/endchooice

choice条目将多个类似的配置选项组合到一起,供用户选择,用户选择是从“choice”开始,从“endchoice”结束,“choice”和“endchoice”之间有很多的config条目,这些config条目是提供用户选择的,如下(图7-9)所示:

我们在内核目录下输入make menuconfig可以看到,如下(图7-10)所示,“Parade TrueTouch Gen5 MultiTouch Protocol”是choice选项名称,“Protocol B”是Kconfig里面默认选择的。“–>”代表此菜单能进入,需要键盘操作进入。

进入“Parade TrueTouch Gen5 MultiTouch Protocol”后,可以看到多选项提供给用户进行选择,如下(图7-11)所示:

6.comment

comment 语句出现在界面的第一行,用于定义一些提示信息。

comment “Compiler: $(CC_VERSION_TEXT)”

以上代码的配置界面如下(图7-12)所示:

7.config

使用关键字config来定义一个新的选项,如下(图7-13)所示

如上所示,使用config关键字定义了一个“helloworld”选项,每个选项都必须指定类型,类型包括bool,tristate,string,hex,int。最常见的是bool,tristate,string这三个。

bool类型取值只有“y”和“n”

tristate类型的变量取值有3种:“y”,“n”,“m”

string类型取值为字符串

hex类型取值为十六进制的数据

int类型取值为十进制的数据

help表示帮助信息,当我们在图形化界面按下h按键,弹出来的就是help的内容。

8.depends on

Kconfig中depends on关键字用来指定依赖关系,当依赖的选项被选中时,当前的配置选项的信息才会在菜单中显示出来,才能操作该选项的内容。举例来说,如下所示,选项A依赖选项B,只有当选项B被选中时,选项A才可以被选中。

9.select

Kconfig中select关键字用来表示反向依赖关系,当指定当前选项被选中时,此时select后面的选项也会被自动选中。举个例子来说,如下所示,在选项A被选中的情况下,选项B自动被选中。

\10. menuconfig

menuconfig可以认为是config 中的升级版。menuconfig也是一个正常的配置项,通过自己的配置值来决定另外一组配置项是否作为子菜单的形式显示出来并供用户配置。代码如下(图7-14)所示。

以上代码中通过menuconfig配置了一个bool类型的配置项,在图形化配置界面中显示(图7-15)如下:

当我们选中"Network device support"配置项时,其子菜单被显示出来,如下图(图7-16)所示:

更多内容可以B站搜索北京迅为/CSDN搜索迅为RK3568开发板

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1480655.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

优思学院|3步骤计算出Cpk|学习Minitab

在生产和质量管理中,准确了解和控制产品特性至关重要。一个关键的工具是Cpk值,它是衡量生产过程能力的重要指标。假设我们有一个产品特性的规格是5.080.02,通过收集和分析过程数据,我们可以计算出Cpk值,进而了解生产过…

node.js和electron安装

文章目录 一、node.js安装1.node.js下载安装2.设置镜像 二、其它问题1.文件夹创建错误2.electron安装错误 一、node.js安装 1.node.js下载安装 参考B站视频node.js安装,没有按视频中设置镜像 2.设置镜像 参考:https://npmmirror.com/ npm config se…

Android的硬件接口HAL

我一直觉得,现代计算机不是一门科学,起码快算不上一门理科科学。上上下下全是人造,左左右右全是生意,用管理学,经济学去学计算机,也许更看得懂很多问题。HAL就是一个典型例子。 传统Linux绕开了微软的霸权…

现货黄金贵金属投资难不难做?

现货黄金投资的难度因人而异,它涉及市场知识、分析能力、资金管理和心理素质等多个方面,因此不能一概而论。但是,如果投资者能够系统地学习相关知识,并在实践中不断积累经验,那么现货黄金投资并非难以驾驭。 先了解现货…

智慧旅游+数字化景区整体解决方案:文件全文83页,附下载

关键词:智慧景区建设,智慧旅游一体化平台,数字化景区建设,智慧旅游建设,智慧景区解决方案,智慧文旅解决方案,智慧旅游解决方案 一、景区智慧旅游建设需求与背景分析 1、技术发展背景 随着信息…

jxls——自定义命令设置动态行高

文章目录 前言依赖引入绘制 jxls 批注的 excel 模板测试类编写自定义命令关于自动换行 前言 之前的博客中都简单说了数据的渲染和导出excel文件。包括固定的 表头结构,以及动态 表头和表数据等方式。 本篇博客主要说明自定义命令的方式,控制输出excel文…

视频学习胜过读书吗

现在,网上的课程视频和讲座视频,越来越多。同样的内容,可以读书学习,也可以视频学习,大家喜欢哪一种? 我比较喜欢读书,实在没耐心视频学习。 书籍只要随手一翻,就知道大概的内容了&…

C/C++ 迷宫游戏

游戏介绍 这个迷宫探险游戏有以下功能: 探险:选择该选项后,玩家会进入地下迷宫进行探险。在随机事件中,可能会遇到陷阱、发现金币或者什么都没有发生。陷阱会使玩家失去一定的生命值,金币可以增加玩家的金币数量。 休…

数据结构题目①——数组

前言 本篇文章为博主进行代码随想录——数组练习后的总结会涉及到每一道题目的详细的思路整理,以及本人的易错点,希望对大家有所帮助 数组介绍: 数组在C语言中就已经有所涉及,它是一个最基础的数据结构,而在数据结构中…

jstat命令查看jvm的GC信息

文章目录 前言jstat命令查看jvm的GC信息1. 概述2. 应用堆内存水位阀值大小怎么确定3. 使用 jps 命令查看 Java 进程的进程号(PID)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5097401443314e9d808a83b694dbc6e5.png)4. jstat用法5. 类加载…

【Sql Server】Update中的From语句,以及常见更新操作方式

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…

Linux信号【保存-处理】

目录 前言: 1、再次认识信号 1.1、概念 1.2、感性理解 1.3、在内核中的表示 1.4、sigset_t 信号集 2、信号集操作函数 2.1、增删改查 2.2、sigprocmask 2.3、sigpending 3.信号的处理机制 3.1处理情况 3.2合适时机 4用户态与内核态 4.1、概念 4.2、…

蓝桥杯练习系统(算法训练)ALGO-995 24点

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数…

【python】json转成成yaml中文编码异常显示成:\u5317\u4EAC\u8DEF123\u53F7

姊妹篇:【python】json转成成yaml json数据 {"name": "张三","age": 30,"isMarried": false,"children": [{"name": "小王","age": 5},{"name": "小李",&qu…

mysql查询用户操作日志

mysql查询用户操作日志 说明一、概述二、配置 说明 更新时间:2024/03/01 16:39 本文仅为记录学习轨迹,如有侵权,联系删除 一、概述 先简单介绍一下general log,这个日志主要的作用是记录MySQL所有的SQL语句,不管是查询语句&am…

每日一题 2369

2369. 检查数组是否存在有效划分 题目描述: 给你一个下标从 0 开始的整数数组 nums ,你必须将数组划分为一个或多个 连续 子数组。 如果获得的这些子数组中每个都能满足下述条件 之一 ,则可以称其为数组的一种 有效 划分: 子数…

Python实现PPT演示文稿中视频的添加、替换及提取

无论是在教室、会议室还是虚拟会议中,PowerPoint 演示文稿都已成为一种无处不在的工具,用于提供具有影响力的可视化内容。PowerPoint 提供了一系列增强演示的功能,在其中加入视频的功能可以大大提升整体体验。视频可以传达复杂的概念、演示产…

unity后期

unity|后处理篇 前言一、Post-Processing 1、 Post-Processing的使用2、Post-Processing后处理效果 抗锯齿①、Ambient Occlusion 环境光遮蔽②、Auto Exposure 自动曝光③、Bloom 辉光/泛光④、Chromatic Aberration | 色差⑤、Color Grading 色调/颜色分级⑥、Depth Of Fiel…

每次提出一个bug都让测试重现,描述得那么清楚,自己操作下不会吗?

一说到测试和开发的关系,你一定会想到一个词“冤家”。 开发的工作就是按照PM的设计将产品最终造出来,而测试则是在开发已完成的工作里纠错。so,测试的工作会让开发很不爽,人之常情,谁都不喜欢自己的劳动成果被别人挑…

解析馆藏文物预防性保护:监测平台与数据传输系统概述

1)文物预防性保护监测平台概述 文物预防性保护监测与调控系统是文物环境监测必不可少的关键组成部分之一,在项目实施中,将充分利用前沿物联网技术,如无线网络、低功耗设计、高精度传感器来实现文物保存环境的实时监测与数据分析。此外,还将通…