本文档仅适用于AliOS Things 3.1及其后续版本,3.1之前版本请忽略。
自AliOS Things 2.1开始,引入了基于Menuconfig的图形配置系统,组件配置文件(Config.in)是配置系统工作的基础。本文将对系统中配置文件及其组织方式进行简要介绍。
更多关于配置文件编写和语法介绍请参考Linux官方文档。
在系统范围内,配置文件划分为两类:
- 顶层配置文件:配置文件入口,包含组件配置文件和系统配置变量
- 组件配置文件:描述组件配置能力,定义与组件相关的配置选项
顶层配置文件
顶层配置文件,在用户创建工程时动态生成,放置于工程目录下:$APPDIR/Config.in。它仅包含了当前工程所依赖组件的配置文件。 用户修改了应用代码,并且引入了新的组件或者删除以前引入的组件,代码编译时会先自动更新顶级配置文件,增加或删除相应组件的配置文件。 一个典型的顶层配置文件采用如下格式:
APP配置项
系统配置项
source 必选组件配置文件
if 选择条件
source 可选组件配置文件
endif
组件配置文件
组件配置文件是构成组件的基本要素,系统通过组件配置文件描述组件的配置能力。自AliOS Things2.1起,开发组件配置文件将与添加组件代码、添加组件Makefile一样,成为组件开发的必要步骤。通常情况下,每个组件都应该具有:
- 一个唯一的组件ID
- 根据组件配置能力提供具体的配置选项
配置项命名规范
- 配置项全部使用大写字母,各域之间使用“_”分隔;
- 组件ID定义:AOS_组件类型_组件名称。类型取值范围:APP,COMP,BOARD,MCU,ARCH。例如:AOS_BOARD_DEVELOPERKIT,AOS_APP_HELLOWORLD,AOS_COMP_RHINO。
- 组件内部配置项推荐的定义方式:组件名称_CONFIG_XXX。例如:RHINO_CONFIG_SEM。
与传统配置系统的差异点
- 顶层配置文件在工程目录下,$APPDIR/Config.in。
- 组件配置文件中的差异点:
- 组件默认为使能,且不允许改为禁止。
- 不使用select使能其它组件,而是在组件Makefile里面选择依赖组件。
- 可以配置可选组件的选择条件,配合组件Makefile完成选择依赖组件。
一个典型的组件配置文件采用如下格式:
关键字 组件ID
类型
默认值
关键字 组件配置项
类型 “提示信息”
默认值
帮助信息
例如:
# components/network/http
# 组件唯一ID,默认为使能,不允许改为n
config AOS_COMP_HTTP
bool
default y
# 组件内部的配置项
menu "HTTP Client Configuration"
config HTTP_CONFIG_SERVER_NAME_SIZE
int "The size of server name"
default 64
help
The size of server name in bytes
config HTTP_CONFIG_SECURE
bool "Support HTTP Secure"
default n
help
set to y if use HTTPS
default n
if HTTP_CONFIG_SECURE
# 配置可选组件mbedtls、itls的条件HTTP_CONFIG_SECURE_TLS、HTTP_CONFIG_SECURE_ITLS
# 组件Makefile根据此处的配置,引入相应的组件
choice
prompt "Security Selection"
default HTTP_CONFIG_SECURE_TLS
help
HTTPS over MbedTLS or iTLS
config HTTP_CONFIG_SECURE_TLS
bool "HTTPS over MbedTLS"
config HTTP_CONFIG_SECURE_ITLS
bool "HTTPS over iTLS"
endchoice
endif
endmenu
关于不同类型组件配置文件开发请参考:板级移植指导。
使用menuconfig配置
请参见更多配置操作。
在文档使用中是否遇到以下问题
更多建议
匿名提交