0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

RT-Thread官方账号 2025-02-20 19:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言


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

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

实际操作


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

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

scons --attach=?

d60417f6-ef81-11ef-9434-92fbcf53809c.png

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

那么在终端里就可以输入

scons --attach=peripheral.rw007

d627c034-ef81-11ef-9434-92fbcf53809c.png

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

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

最后是恢复命令

scons --attach=default

d64b5350-ef81-11ef-9434-92fbcf53809c.png

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

如何编写attachconfig


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

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

d6671ca2-ef81-11ef-9434-92fbcf53809c.png

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

d684e1ba-ef81-11ef-9434-92fbcf53809c.png

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

比如说:

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

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

d69f2656-ef81-11ef-9434-92fbcf53809c.png

比如说我想配置nano的attach

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

nano: kconfig: - CONFIG_RT_USING_NANO=y

d6c1669e-ef81-11ef-9434-92fbcf53809c.png

其中的<<: *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版权协议,转载请附上原文出处链接及本声明。

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

    关注

    25

    文章

    6125

    浏览量

    113374
  • RT-Thread
    +关注

    关注

    32

    文章

    1540

    浏览量

    44286
  • scons
    +关注

    关注

    0

    文章

    2

    浏览量

    1111
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RT-Thread学习笔记】使用scons命令生成静态库

    RT-Thread学习笔记】如何使用scons 命令中buildlib的生成静态库?
    的头像 发表于 07-27 09:13 7972次阅读
    【<b class='flag-5'>RT-Thread</b>学习笔记】使用<b class='flag-5'>scons</b>命令生成静态库

    基于RT-Thread的RoboMaster电控框架设计

    由于 RT-Thread 稳定高效的内核,丰富的文档教程,积极活跃的社区氛围,以及设备驱动框架、Kconfig、Scons、日志系统、海量的软件包……很难不选择 RT-Thread 进行项目开发。
    发表于 09-06 15:21 1470次阅读

    使用RT-Threadscons构建系统来编译ESP32C3固件?

    我正在尝试使用 RT-Threadscons 构建系统来编译 ESP32C3 固件。目前 ESP32C3 的 bsp 已经被社区小伙伴们 PR 到 RT-Thread 主仓库了([[url
    发表于 06-07 06:18

    ENV的scons能生成RT-Thread studio工程吗?

    scons能生成RT-Thread studio工程吗?教程中使用scons —target==MDK5来生成MDK工程,怎么生成RT-Thread Stdudio工程呢?
    发表于 10-13 07:42

    如何在RT-Thread中用好SCons工具

    各类复杂的处理,而不局限于 Makefile 设定的规则。在 SCons 的网站上可以找到详细的 SCons 用户手册,本章节讲述 SCons 的基本用法,以及如何在RT-Thread
    发表于 04-11 11:01

    RT-Thread系统中的Scons构建工具资料推荐

    CMake 和 SCons 等。1.2 RT-Thread 构建工具RT-Thread 早期使用 Make/Makefile 构建。从 RT-Thread 0.3.0 开始,
    发表于 05-07 15:35

    介绍一个RT-Thread进行持续集成的容器化Linux环境

    RT-Thread Linux CI Environment一个用于嵌入式实时操作系统 RT-Thread 进行持续集成的容器化环境。使用步骤:拉取并启动镜像 maikebing
    发表于 07-28 10:51

    RT-Thread Linux CI 环境使用教程

    RT-Thread Linux CI 环境一个嵌入式实时操作系统 RT-Thread 进行持续集成的容器化环境。使用教程:Docker本地步骤拉取并启动镜像 maikebing
    发表于 08-17 15:00

    RT-Thread SCons编译不稳定问题debug总结

    摘要在使用RT-Thread的过程中,发现RT-Thread SCons存在编译不稳定的问题。在源文件相同的情况下连续编译,相邻两次生成的map文件和bin文件差异巨大、运行效果不同,不利于版本
    发表于 09-19 16:44

    如何在自己软件包上添加CI集成工具

    的软件包背景在我们PR的时候,经常会遇到CI不通过的情况,其实是RT-THREAD仓库里面的action文件起作用受这个启发,我们把它整合到我们自己的软件包仓库下面。欢迎star步骤第一步 下载软件包
    发表于 09-21 15:55

    如何在RT-Thread中用好SCons工具

    SCons的网站上可以找到详细的SCons用户手册,本章节讲述SCons的基本用法,以及如何在RT-Thread中用好SCons工具。什么是
    发表于 11-08 14:38

    RT-Thread Smart已正式上线

    rt-smart内核即可包含基本功能,同时也可定制裁剪。rt-smart用户态应用环境采用musl libc提供POSIX接口调用及C运行环境,延续 RT-Thread 原有的生态,使用sco
    的头像 发表于 11-29 10:31 3402次阅读

    RT-Thread 4.1.0的CMake构建教程

    CMake 支持 在 RT-Thread 4.1.0 正式发布版中,添加了对 CMake 的支持。开发者可以使用 SCons 工具来生成 CMakeLists.txt 文件。 为何要支持 CMake
    的头像 发表于 05-25 11:06 4294次阅读

    RT-Thread全球技术大会:关于SCons构建引擎的主要部分介绍

    RT-Thread全球技术大会:关于SCons构建引擎的主要部分介绍         审核编辑:彭静  
    的头像 发表于 05-27 14:55 1421次阅读
    <b class='flag-5'>RT-Thread</b>全球技术大会:关于<b class='flag-5'>SCons</b>构建引擎的主要部分介绍

    基于RT-Thread的RoboMaster电控框架(二)

    由于 RT-Thread 稳定高效的内核,丰富的文档教程,积极活跃的社区氛围,以及设备驱动框架、Kconfig、Scons、日志系统、海量的软件包
    的头像 发表于 09-20 15:16 1406次阅读