抚顺您做煮火锅网站,开源免费建站程序用的最多的,jq做6个网站做什么好,个人建设网站维护费是多少鸿蒙轻内核使用Kconfig进行图形化配置#xff0c;本文专门讲解下鸿蒙轻内核LiteOS-M和LiteOS-A的图形化配置方法。本文中所涉及的源码#xff0c;均可以在开源站点 https://gitee.com/openharmony/kernel_liteos_a 、 https://gitee.com/openharmony/kernel_liteos_m 获取。本…鸿蒙轻内核使用Kconfig进行图形化配置本文专门讲解下鸿蒙轻内核LiteOS-M和LiteOS-A的图形化配置方法。本文中所涉及的源码均可以在开源站点 https://gitee.com/openharmony/kernel_liteos_a 、 https://gitee.com/openharmony/kernel_liteos_m 获取。本文首先简单介绍下kconfig的基础知识接着介绍下如何使用图形化配置。
1、 Kconfig简介
Kconfig语言定义了一套完整的规则来表述配置项及配置项间的关系详细内容可以参考Linux官方文档 Kconfig Language 此处不赘述。鸿蒙轻内核使用的是Python的开源三方库kconfiglibmenuconfig只是其提供的命令之一相关命令还有genconfig, savedefconfig等等官方主页为https://pypi.org/project/kconfiglib。
1.1 Kconfig和.config文件
Kconfig是配置项的描述文件支持设置配置项及其默认值依赖关系等等比如kernel\liteos_a\Kconfig该文件还会继续依赖各个模块的Kconfig文件。
产品配置文件如vendor\hisilicon\hispark_taurus\kernel_configs\debug.config提供配置项及在产品中这些配置项的设置值可能和内核配置项的默认取值不一致属于产品对内核配置项的定制。这些配置文件在BUILD.gn或makefile文件中使用。
另外还会生成一个C语言头文件提供配置项的宏定义版在C语言程序中使用。
1.2 操作简介
下载OpenHarmony源代码后使用hb set设置产品解决方案后然后在kernel/liteos_m或liteos_a目录下执行make help可获得一个总体的帮助说明如下图所示 其中与Kconfig有关的为xxconfig类目标这类目标通过args接收额外的参数比如
make menuconfig args--help通过args–help就可以了解xxconfig类命令的使用详细说明。
支持的参数有文件类型FSTYPE版本类别TEE、RELEASE等版本默认为DEBUG版本。还支持通过CONFIG参数指定产品配置文件路径该参数优先级较高。
注意
OpenHarmony支持使用ninjagn来编译构建内核使用的kconfig配置工具依旧使用makefile进行维护的。
2、 配置内核
liteos_a内核使用Kconfig方式进行配置在内核目录kernel/liteos_a下执行make menuconfig等命令即可。liteos_m内核类似以liteos_a为例进行讲解。
需要注意
在操作前需要使用hb set设置产品否则会提示The selected product (None) is not a liteos_a kernel type product. Stop。
2.1 支持的参数
上文我们知道了make menuconfig支持参数我们详细看下代码。文件位置在kernel/liteos_a/Makefile代码片段如下 如果指定了CONFIG参数则使用用户指定的产品配置文件。如果开启了TEE则使用TEE版本的产品配置文件。如果开启了RELEASE则使用release版本产品配置文件否则使用debug版本的产品配置文件。
ifeq ($(TEE:1y),y)
tee _tee
endif
ifeq ($(RELEASE:1y),y)
CONFIG ? $(PRODUCT_PATH)/kernel_configs/release$(tee).config
else
CONFIG ? $(PRODUCT_PATH)/kernel_configs/debug$(tee).config
endifKCONFIG_CONFIG ? $(CONFIG)2.2 menuconfig内核配置
使用make menuconfig进行内核配置Makefile源码片段如下
update_config menuconfig:$(HIDE)test -f $(CONFIG) cp -v $(CONFIG) .config menuconfig $(args) savedefconfig --out $(CONFIG)可以看出update_config和menuconfig这2个target效果相同一般使用make menuconfig即可。执行的操作包含如下3个 判断产品配置文件是否存在如果存在则把配置文件复制到内核根目录并命名为.config 展示menuconfig用户配置界面供开发者进行内核配置 保存最小配置到产品产品文件可以使用make savedefconfig args–help查看命令的解释。
设置产品后要修改产品的.config配置目前可以在内核目录下执行make menuconfig没有make参数的情况下该命令默认会自动找到你hb set时所选择的产品的debug.config配置进行menuconfig配置如果想要修改产品的release.config配置则可以使用参数RELEASE1。前提是产品有预置release.config配置。同样的可以使用参数TEE1来修改产品的tee版本的.config配置。命令如下
make update_config RELEASE1
make update_config TEE1另外如果想手动指定产品配置而不是自动使用hb set时所选择的产品的配置则可以使用CONFIG/path/to/the/xx.config参数如
make update_config CONFIG../../vendor/hisilicon/hispark_aries/config/release.config3、Kconfig高级语法
Kconfig大部分工程师都了解快速介绍几个鸿蒙轻内核中使用到的稍微高级的语法。
osource
我们知道kconfig使用source来引用其他kconfig文件而osource等于optional source表示可选的如果osource指定的kconfig文件不存在也不报错。类似makefile中的include和-include的差异。
rsource
rsource等于 relative source后面引用的kconfig文件支持相对路径。路径相对于包含rsource语句的kconfig而言。
orsource
等于osourcersource。
kconf的几个命令如下“ –oldconfig 基于提供的.config文件根据Kconfig文件修改配置文件 –silentoldconfig 等同于oldconfig静默模式并修改deps依赖即生成头文件。 –olddefconfig 等同于silentoldconfig对于新符号使用默认值 –savedefconfig 把当前最小的配置保持到文件
小结
本文介绍了Kconfig的基础知识和鸿蒙轻内核的图形化配置。
如果大家想更加深入的学习 OpenHarmony 开发的内容不妨可以参考以下相关学习文档进行学习助你快速提升自己
OpenHarmony 开发环境搭建https://qr18.cn/CgxrRy 《OpenHarmony源码解析》https://qr18.cn/CgxrRy
搭建开发环境Windows 开发环境的搭建Ubuntu 开发环境搭建Linux 与 Windows 之间的文件共享……
系统架构分析https://qr18.cn/CgxrRy
构建子系统启动流程子系统分布式任务调度子系统分布式通信子系统驱动子系统…… OpenHarmony 设备开发学习手册https://qr18.cn/CgxrRy OpenHarmony面试题内含参考答案https://qr18.cn/CgxrRy 写在最后
如果你觉得这篇内容对你还蛮有帮助我想邀请你帮我三个小忙点赞转发有你们的 『点赞和评论』才是我创造的动力。关注小编同时可以期待后续文章ing不定期分享原创知识。想要获取更多完整鸿蒙最新学习资源请移步前往小编https://qr21.cn/FV7h05