【RT-Thread】【ci】【scons】将ci.attachconfig.yml和scons结合使用

描述

前言


大家有没有遇到过这样的问题:明明已经启用了某个功能,却因为编译报错不得不进入 menuconfig 去启用其依赖的功能;或者是为了启用某个功能,需要在 menuconfig 中四处寻找相关选项,甚至有时不知道该如何在特定板子上正确配置这些功能。

于是,结合 scons 的 --attach 功能应运而生。通过使用 scons --attach 命令,可以快速加载前人已经配置好的功能(PS:由于这些配置已经通过 CI 检查,确保不会出现编译错误)。

实际操作


这里以星火一号开发板为例子

首先是查看当前bsp支持所有的attachconfig

  •  

scons --attach=?

开发板

比如说我想快速打开rw007模块的配置

那么在终端里就可以输入

  •  

scons --attach=peripheral.rw007

开发板

这样rw007就打开了,然后就可以用scons -j4进行编译

如果还想打开其他功能也可以重复上述操作

最后是恢复命令

  •  

scons --attach=default

开发板

首次使用 scons --attach=peripheral.rw007命令开启功能时,会自动备份当前的 .configrtconfig 文件。之后,如果需要恢复,系统会将备份的 .configrtconfig 文件恢复为未使用--attach 命令之前的状态。

如何编写attachconfig


首先在刚拉下来的bsp里用menuconfig配置好选项

然后按下d弹出最小配置保存页面,再次按下回车即可

开发板

接下来在bsp目录下就会看到一个叫defconfig的文件

开发板

其中的内容就是刚刚用menuconfig打开了的设置

比如说:

上图的CONFIG_RT_USING_NANO=y就是我刚打开了的nano配置

然后找到当前bsp中.ci\attachconfig下面的ci.attachconfig.yml

开发板

比如说我想配置nano的attach

那么按照这个格式添加到attachconfig文件中

  •  
  •  
  •  

nano: kconfig: - CONFIG_RT_USING_NANO=y

开发板

其中的<<: *scons 是yaml语法

用于继承另一个属性的内容

这里完整的语句是这样

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

scons.args: &scons scons_arg: - '--strict'nano: <<: *scons kconfig: - CONFIG_RT_USING_NANO=y
 

主要用于ci的时候开启严格编译,这里可以先不管

具体关于attachconfig可以参考以下帖子:(可在以下网站https://club.rt-thread.org/index.html 搜索下列对应名称浏览相应文章)

RT-Thread-还在担心bsp不好维护吗?快使用yml管理主线bspRT-Thread问答社区 - RT-Thread

RT-Thread-【bsp】如何添加.ci,attach文件完善bsp编译RT-Thread问答社区 - RT-Thread

RT-Thread-【1024】【ci】【github】【bsp】RT-THREAD中的attach文件使用(开启对应配置的CI检查)RT-Thread问答社区 - RT-Thread

结语


感觉attachconfig还有很大的潜力,可以让 menuconfig 保留最基础的配置,而将更复杂的功能配置放到 attachconfig 中。这样不仅能够确保刚拉下来的 BSP 是一个最小系统,同时也能保留 menuconfig 的灵活性,使得系统配置更加模块化和易于扩展。

轻度开发用attachconfig,深度开发用menuconfig从零配置

后续感觉可以出个图形化界面,根据功能类别分个类,然后每个attach是通过打勾的形式去开启

由于这个功能刚刚推出,大部分 BSP 中的 attachconfig 还不是开箱即用的,甚至有的 BSP 还没有 attachconfig 。因此,仍然需要大家共同努力,进一步完善和优化它,以确保其在各个项目中的兼容性和可用性。

该功能仅支持ENV下的RT-Thread

————————————————

版权声明:本文为RT-Thread论坛用户「alight」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分