Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
BSP
【bsp】如何添加.ci,attach文件完善bsp编译
发布于 2024-10-28 21:48:02 浏览:279
订阅该版
[tocm] # 【bsp】如何添加.ci,attach文件完善bsp编译 ## 一、什么是.ci,什么是attach > 如果你进行百度,得到的专业说法: “.ci” 通常指的是与持续集成(Continuous Integration)相关的配置文件或目录。它们包含一系列脚本或配置,用于自动化构建、测试和部署流程。常见的用途包括构建脚本、测试配置和部署配置。 “attach” 一般在计算机科学中指“附加”或“连接”的意思。具体上下文可能会有所不同,例如: - 在软件中,attach 可能指将一个文件或文档附加到邮件、消息或其他文件中。 - 在调试环境中,attach 可能用于将调试器附加到正在运行的进程,以便检查和分析程序的执行状态。 - 在数据库操作中,attach 可能指将某个数据库或表格“附加”到当前的数据库上下文中,以便进行数据操作。 > 在rtthread的bsp中的说法: **".ci文件"**:通过一系列脚本,在github中自动对脚本中选中的选项进行编译,并显示编译结果,也称"ci过程"。方便开发者快速测试,查找bug **"attach文件"**:ci脚本的一种,可以通过在里面开启menuconfig标志,自动在ci过程中进行bsp的menuconfig编译测试。由于从github上clone下来的bsp都有默认menuconfig配置,想要测试其他没开启的配置就可以用ci+attach的方式,这样既快捷又不会影响默认的配置。 ## 二、如何编写attach文件 > 前提:bsp已经添加进ci编译 打开 .github\workflows\bsp_buildings.yml 文件查看bsp是否已添加 ![image-20241028193041024](https://picture-note-1328988318.cos.ap-nanjing.myqcloud.com/Typora/202410281930131.png) > 问题:attach文件应该写在哪里? 是必须要写在.ci文件夹下的,这样才能被自动编译函数查找到,才能进行ci编译。可以参考官方开发板星火一号的格式: ![image-20241028194552082](https://picture-note-1328988318.cos.ap-nanjing.myqcloud.com/Typora/202410281945132.png) 如果bsp文件中没有.ci文件夹,可以自己创建一个。具体为什么要写在.ci文件夹里可以参考这篇文章: [RT-Thread-【1024】【ci】【github】【bsp】RT-THREAD中的attach文件使用(开启对应配置的CI检查)RT-Thread问答社区 - RT-Thread](https://club.rt-thread.org/ask/article/f129e62f91118746.html) ------ **接下来,我们就可以正式开始编写attach文件了** ### 1. 明确需要将哪些选项加入ci编译 我们之所以进行ci编译是为了快速检测bsp支持的外设是否都能正常编译,而bsp我们从github上clone下来时menuconfig是有默认配置的,如gpio,uart之类的,方便我们可以直接进行下载到板子里看到效果。像这些默认的配置我们就不用添加进attach文件了。而像内核、组件、软件包之类的配置也不是我们重点要检测的,一般像一些严格的bsp如星火一号才会要求ci检测。而我们要重点检测的是bsp的板载外设(Hardware Drivers Config),把这里关于外设驱动的全部添加进attach文件(除了初始默认的) 我们以nrf52840的bsp为例: ![image-20241028201438925](https://picture-note-1328988318.cos.ap-nanjing.myqcloud.com/Typora/202410282014962.png) ![image-20241028202320894](https://picture-note-1328988318.cos.ap-nanjing.myqcloud.com/Typora/202410282023929.png) 这些外设驱动除了初始选中的我们都添加进attach文件 ### 2. 编写格式 明确了要添加的menuconfig选项,接下来就是这些选项的使能写进attach文件。 这些使能也非常好找,在工程里会有一个.config文件,里面就是menuconfig菜单对应的使能标志,和menuconfig一一对应: ![image-20241028202620179](https://picture-note-1328988318.cos.ap-nanjing.myqcloud.com/Typora/202410282026230.png) ![image-20241028202703961](https://picture-note-1328988318.cos.ap-nanjing.myqcloud.com/Typora/202410282027003.png) attach文件里写的就是把这些使能开开了,和这个.config文件中的格式一样 ![image-20241028203042206](https://picture-note-1328988318.cos.ap-nanjing.myqcloud.com/Typora/202410282030252.png) > 问题:如何查找这些使能标志 在menuconfig中开启开关,就可以看到.config文件中的变化,变化的即是查找对象。 而且我们在查找时使能后可以顺便手动编译,看看是否有问题,就不用等ci编译出问题再去查了。 ### 3. 如何验证attach文件是否成功启动ci编译 简单粗暴,pr到rtthread的github主仓,github会自动ci编译,并显示结果,如果有问题可以自己先尝试解决,继续pr。如果解决不了也没关系,至少检测出了错误,维护工程师会注意到的。 可以在pr的Actions里查看 ![image-20241028204830579](https://picture-note-1328988318.cos.ap-nanjing.myqcloud.com/Typora/202410282048665.png) 可以很直观的看到ci编译的结果: ![image-20241028204617558](https://picture-note-1328988318.cos.ap-nanjing.myqcloud.com/Typora/202410282046606.png) ![image-20241028204627053](https://picture-note-1328988318.cos.ap-nanjing.myqcloud.com/Typora/202410282046102.png) ## 总结 编写步骤: 1. 进入目标bsp检查是否有.ci文件,有的话在里面写,没有的话自己创建 2. 通过.config和menconfig编写attach文件,期间可人工编译,尝试解决bug 3. pr验证 其实rtthread还是有很多bsp是没有添加.ci文件的,大家可大胆进行pr,解决bug,共同建设开源社区。 ------ rtthread pr教程: [PR提交规范](https://www.rt-thread.org/document/site/#/other/pr-rule/pr-rule) [从0教你如何给RT-Thread贡献代码_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1gr4y1w7yX/?spm_id_from=333.999.0.0&vd_source=cb3035aabee93b98268db84a2ab962fc) https://github.com/RT-Thread/rt-thread/issues/7426
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
东湖西泽
这家伙很懒,什么也没写!
文章
6
回答
0
被采纳
0
关注TA
发私信
相关文章
1
STM32 407 串口接收数据 系统卡死
2
RTT nrf24l01 设备驱动程序
3
stm32f10x串口只能发送数据,无法接收
4
第一次尝试移植rt-thread 到stm32F103系列问题
5
有人把stm32L07xx的bsp移到rtt上来了吗?求一个
6
rt-thread线程调度异常在stm32f103芯片上
7
RTT是否支持STM32F429
8
请问谁有 STM32F40x HAL + RT-THREAD 模板
9
rt-thread在stm32f411下的移植问题
10
针对STM32F7系列平台的MPU,Cache特性,需要注意哪些问题?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
8
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
9
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
RTT_逍遥
3
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
4
次点赞
Ghost_Girls
1
篇文章
7
次点赞
xiaorui
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部