成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

鴻蒙輕內(nèi)核Kconfig用法筆記

開發(fā) 后端
Kconfig是配置項(xiàng)的描述文件,支持設(shè)置配置項(xiàng)及其默認(rèn)值,依賴關(guān)系等等,比如kernel\liteos_a\Kconfig,該文件還會繼續(xù)依賴各個(gè)模塊的Kconfig文件。

[[441649]]

想了解更多內(nèi)容,請?jiān)L問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

鴻蒙輕內(nèi)核使用Kconfig進(jìn)行圖形化配置,本文專門講解下鴻蒙輕內(nèi)核LiteOS-M和LiteOS-A的圖形化配置方法。本文中所涉及的源碼,均可以在開源站點(diǎn)https://gitee.com/openharmony/kernel_liteos_a、https://gitee.com/openharmony/kernel_liteos_m 獲取。本文首先簡單介紹下kconfig的基礎(chǔ)知識,接著介紹下如何使用圖形化配置。

1、Kconfig簡介

Kconfig語言定義了一套完整的規(guī)則來表述配置項(xiàng)及配置項(xiàng)間的關(guān)系,詳細(xì)內(nèi)容可以參考Linux官方文檔Kconfig Language,此處不贅述。鴻蒙輕內(nèi)核使用的是Python的開源三方庫kconfiglib(menuconfig只是其提供的命令之一,相關(guān)命令還有g(shù)enconfig, savedefconfig等等),官方主頁為https://pypi.org/project/kconfiglib。

1.1 Kconfig和.config文件

Kconfig是配置項(xiàng)的描述文件,支持設(shè)置配置項(xiàng)及其默認(rèn)值,依賴關(guān)系等等,比如kernel\liteos_a\Kconfig,該文件還會繼續(xù)依賴各個(gè)模塊的Kconfig文件。

產(chǎn)品配置文件,如vendor\hisilicon\hispark_taurus\kernel_configs\debug.config,提供配置項(xiàng)及在產(chǎn)品中這些配置項(xiàng)的設(shè)置值,可能和內(nèi)核配置項(xiàng)的默認(rèn)取值不一致,屬于產(chǎn)品對內(nèi)核配置項(xiàng)的定制。這些配置文件在BUILD.gn或makefile文件中使用。

另外還會生成一個(gè)C語言頭文件,提供配置項(xiàng)的宏定義版,在C語言程序中使用。

1.2 操作簡介

下載OpenHarmony源代碼后,使用hb set設(shè)置產(chǎn)品解決方案后,然后在kernel/liteos_m或liteos_a目錄下執(zhí)行make help可獲得一個(gè)總體的幫助說明,如下圖所示:

鴻蒙輕內(nèi)核Kconfig用法筆記-鴻蒙HarmonyOS技術(shù)社區(qū)

其中與Kconfig有關(guān)的為xxconfig類目標(biāo),這類目標(biāo)通過args接收額外的參數(shù),比如:

  1. make menuconfig args="--help" 

 通過args="–help"就可以了解xxconfig類命令的使用詳細(xì)說明。

支持的參數(shù)有文件類型FSTYPE,版本類別TEE、RELEASE等版本,默認(rèn)為DEBUG版本。還支持通過CONFIG參數(shù)指定產(chǎn)品配置文件路徑,該參數(shù)優(yōu)先級較高。

注意:

OpenHarmony支持使用ninja+gn來編譯構(gòu)建,內(nèi)核使用的kconfig配置工具依舊使用makefile進(jìn)行維護(hù)的。

2、配置內(nèi)核

liteos_a內(nèi)核使用Kconfig方式進(jìn)行配置,在內(nèi)核目錄kernel/liteos_a下執(zhí)行make menuconfig等命令即可。liteos_m內(nèi)核類似,以liteos_a為例進(jìn)行講解。

需要注意:

在操作前,需要使用hb set設(shè)置產(chǎn)品,否則會提示:The selected product (None) is not a liteos_a kernel type product. Stop。

2.1 支持的參數(shù)

上文,我們知道了make menuconfig支持參數(shù),我們詳細(xì)看下代碼。文件位置在kernel/liteos_a/Makefile,代碼片段如下:

如果指定了CONFIG參數(shù),則使用用戶指定的產(chǎn)品配置文件。如果開啟了TEE,則使用TEE版本的產(chǎn)品配置文件。如果開啟了RELEASE,則使用release版本產(chǎn)品配置文件,否則使用debug版本的產(chǎn)品配置文件。

  1. ifeq ($(TEE:1=y),y) 
  2. tee = _tee 
  3. endif 
  4. ifeq ($(RELEASE:1=y),y) 
  5. CONFIG ?= $(PRODUCT_PATH)/kernel_configs/release$(tee).config 
  6. else 
  7. CONFIG ?= $(PRODUCT_PATH)/kernel_configs/debug$(tee).config 
  8. endif 
  9.  
  10. KCONFIG_CONFIG ?= $(CONFIG) 

2.2 menuconfig內(nèi)核配置

使用make menuconfig進(jìn)行內(nèi)核配置,Makefile源碼片段如下:

  1. update_config menuconfig: 
  2.     $(HIDE)test -f "$(CONFIG)" && cp -v "$(CONFIG)" .config && menuconfig $(args) && savedefconfig --out "$(CONFIG)" 

 可以看出,update_config和menuconfig這2個(gè)target效果相同,一般使用make menuconfig即可。執(zhí)行的操作包含如下3個(gè):

  • 判斷產(chǎn)品配置文件是否存在,如果存在則把配置文件復(fù)制到內(nèi)核根目錄并命名為.config
  • 展示menuconfig用戶配置界面,供開發(fā)者進(jìn)行內(nèi)核配置
  • 保存最小配置到產(chǎn)品產(chǎn)品文件,可以使用make savedefconfig args="–help"查看命令的解釋。

設(shè)置產(chǎn)品后,要修改產(chǎn)品的.config配置,目前可以在內(nèi)核目錄下執(zhí)行make menuconfig,沒有make參數(shù)的情況下該命令默認(rèn)會自動(dòng)找到你hb set時(shí)所選擇的產(chǎn)品的debug.config配置進(jìn)行menuconfig配置,如果想要修改產(chǎn)品的release.config配置則可以使用參數(shù)RELEASE=1。前提是產(chǎn)品有預(yù)置release.config配置。同樣的,可以使用參數(shù)TEE=1來修改產(chǎn)品的tee版本的.config配置。命令如下:

  1. make update_config RELEASE=1 
  2. make update_config TEE=1 

 另外,如果想手動(dòng)指定產(chǎn)品配置,而不是自動(dòng)使用hb set時(shí)所選擇的產(chǎn)品的配置,則可以使用CONFIG=/path/to/the/xx.config參數(shù),如:

  1. make update_config CONFIG=../../vendor/hisilicon/hispark_aries/config/release.config 

3、Kconfig高級語法

Kconfig大部分工程師都了解,快速介紹幾個(gè)鴻蒙輕內(nèi)核中使用到的稍微高級的語法。

  • osource

我們知道kconfig使用source來引用其他kconfig文件,而osource等于optional source,表示可選的,如果osource指定的kconfig文件不存在,也不報(bào)錯(cuò)。類似,makefile中的include和-include的差異。

  • rsource

rsource等于 relative source,后面引用的kconfig文件支持相對路徑。路徑相對于包含rsource語句的kconfig而言。

  • orsource

等于osource+rsource。

kconf的幾個(gè)命令如下“

  • –oldconfig

基于提供的.config文件,根據(jù)Kconfig文件修改配置文件

  • –silentoldconfig

等同于oldconfig,靜默模式,并修改deps依賴即生成頭文件。

  • –olddefconfig

等同于silentoldconfig,對于新符號使用默認(rèn)值

  • –savedefconfig

把當(dāng)前最小的配置保持到文件

小結(jié)

本文介紹了Kconfig的基礎(chǔ)知識,和鴻蒙輕內(nèi)核的圖形化配置。感謝閱讀,有什么問題,請留言。

想了解更多內(nèi)容,請?jiān)L問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2021-12-27 16:24:11

鴻蒙HarmonyOS應(yīng)用

2019-08-15 16:00:21

Linux內(nèi)核Kconfig

2012-05-03 08:34:15

LinuxKconfig

2022-03-11 20:23:14

鴻蒙源碼分析進(jìn)程管理

2022-03-31 16:26:49

鴻蒙源碼分析進(jìn)程管理

2022-04-13 11:02:12

鴻蒙事件模塊事件Event

2022-03-03 18:28:28

Harmony進(jìn)程任務(wù)管理模塊

2020-10-09 09:21:45

鴻蒙

2022-01-12 10:50:23

鴻蒙HarmonyOS應(yīng)用

2022-01-10 15:31:44

鴻蒙HarmonyOS應(yīng)用

2021-06-04 09:57:49

鴻蒙HarmonyOS應(yīng)用

2021-11-05 15:00:33

鴻蒙HarmonyOS應(yīng)用

2021-05-17 09:28:59

鴻蒙HarmonyOS應(yīng)用

2021-06-04 14:15:10

鴻蒙HarmonyOS應(yīng)用

2021-05-08 15:14:50

鴻蒙HarmonyOS應(yīng)用

2021-11-08 15:06:15

鴻蒙HarmonyOS應(yīng)用

2021-05-25 09:28:34

鴻蒙HarmonyOS應(yīng)用

2022-04-13 11:12:43

鴻蒙輕內(nèi)核信號量模塊操作系統(tǒng)

2021-10-20 16:08:57

鴻蒙HarmonyOS應(yīng)用

2021-05-31 20:30:55

鴻蒙HarmonyOS應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品美女久久久久aⅴ国产馆 | 成年人精品视频在线观看 | 日本aⅴ中文字幕 | 一区二区三区视频在线观看 | 日本黄色影片在线观看 | 国产精品99久久久精品免费观看 | www.天天操.com| 青娱乐av | 日韩一区在线播放 | 欧美成人精品欧美一级 | 色综合天天天天做夜夜夜夜做 | 女同av亚洲女人天堂 | 在线观看成人免费视频 | av第一页 | 日本在线视频一区二区 | 精品欧美一区二区三区久久久小说 | 色婷婷亚洲国产女人的天堂 | 日韩欧美在线不卡 | 中文字幕亚洲一区二区三区 | 午夜免费av| 久久国产精品视频免费看 | 综合久久av| 欧美久久精品一级c片 | 日韩成人中文字幕 | 99热国产在线播放 | 精精国产xxxx视频在线播放 | 国产精品美女久久久免费 | 国产一区二区三区在线 | 91精品国产91久久久久久吃药 | 自拍亚洲 | 成人精品国产 | 日韩一区二区不卡 | 黄网免费看 | 欧美日韩久久久 | 国产精品电影在线观看 | 亚洲成av | 国产一区二区在线免费播放 | 国产欧美日韩二区 | 中文字幕精品一区二区三区精品 | 国产激情视频在线观看 | 午夜电影合集 |