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

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

3天内不再提示

RTT黑科技: 添加手动打包和编译特定bsp功能

RTThread物联网操作系统 来源:未知 2023-06-12 19:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

如何手动打包RTT 上的bsp

PART01

简介

有很多小伙伴喜欢用scons --dist功能下载包,但是又有时候不想下载RT-THREAD的所有的包,这个时候,可以考虑看下这篇文章,说不定对你有帮助。这边我提供了一种手动来trigger 生成特定bsp的project文件。

PART02

如何使用

打开仓库:https://github.com/RT-Thread/rt-thread比如想生成qemu-vexpress-a9的单独的project,可以参考下面图的操作:824f7104-0915-11ee-962d-dac502259ad0.jpg这个时候,你可以选择自己熟悉的bsp,只需要告诉action你需要编译的bsp路径就可以了,然后选择一下tool_chain, 自己应该知道平时用的是哪个toolchain。
  • 注意事项:你需要有这个仓库的权限才行,所以如果小伙伴发现没有这个按钮,你可以把仓库fork下来,在自己fork之后的仓库来操作
最后如果需要,可以选择一个配置进行选择配置,比如CONFIG_BSP_USING_I2C ,最后执行Run worflow 绿色的小按钮。之后就可以让action帮你生成了。

PART03

生成之后的文件在哪里

点完之后,会稍微需要等一会,因为action在跑运行。826f242c-0915-11ee-962d-dac502259ad0.png稍微等个5分钟以内吧。然后就可以获得工程文件,参考下图:8296c824-0915-11ee-962d-dac502259ad0.jpg这个时候,你就可以把这个下载下来。当然这个action也会帮你检查bsp的scons编译情况(可以加特定config 配置情况),你不需要每次都把最新的代码下载下来。

PART04

最后文件

最后zip包里面有两个文件,project.zipqemu-vexpress-a9 这两个文件,project.zip 就是我们平时用的scons --dist 生成出来的。另外一个文件就是原来master分支上bsp经过scons编译之后,里面包含可执行文件,如果qemu-vexpress-a9,你可以在scons直接执行,里面已经有rtthread.elf 文件。

PART05

原理讲解

如何实现上述功能呢?这里很多是关于github action的内容,方便后续维护。这个功能添加的PR 链接:https://github.com/RT-Thread/rt-thread/pull/7648 输入功能github action 有一个input输入功能,可以用来手动trigger

				1#Controlswhentheactionwillrun.Triggers'scons--dist'tobuildthedist  2on:  3workflow_dispatch:  4#https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onworkflow_dispatchinputs  5inputs:  6bsp_options:  7description:'WhichbsppathWouldyouwantdistinbsp?likestm32/stm32l496-st-nucleo'  8required:false  9type:string 10default:'qemu-vexpress-a9' 11bsp_tool_chain: 12description:'Choicetool_chain' 13required:false 14default:'sourcery-arm' 15type:choice 16options: 17-"sourcery-arm" 18-"llvm-arm" 19-"sourcery-aarch64" 20-"sourcery-mips" 21-"sourcery-riscv-none-embed" 22-"sourcery-riscv64-unknown-elf" 23bsp_config: 24description:'Typeaconfigyouwantmannualtestin.config,likeCONFIG_BSP_USING_I2CCONFIG_BSP_USING_WDT' 25required:false 26type:string 27default:'CONFIG_BSP_USING_GPIO'
				这里可以具体内容参考github中的文档:https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onworkflow_dispatchinputs大概看yaml也能大概看懂,就是输入的一些参数改成变量bsp_options, bsp_tool_chain, bsp_config有了这3个变量,我们就可以编译特定的bsp了。
				如何编译执行如何编译执行,这里参考了一下action.yml中的操作,将.config按照要求修改,然后执行pkgs --update 更新下软件包,然后执行下scons, 把scons之后的bsp先拷贝出来,之后再执行scons --dist 最后将project.zip也拷贝出来,方便后面上传。

				1-name:BspSconsCompile  2if:${{success()}}  3shell:bash  4env:  5RTT_BSP:${{github.event.inputs.bsp_options}}  6RTT_TOOL_CHAIN:${{github.event.inputs.bsp_tool_chain}}  7run:|  8source~/.env/env.sh  9echo$RTT_BSP 10lsbsp/$RTT_BSP/Kconfig&&scons-Cbsp/$RTT_BSP--pyconfig-silent 11sed-i"s/#${{github.event.inputs.bsp_config}}isnotset/${{github.event.inputs.bsp_config}}=y/g"bsp/$RTT_BSP/.config 12pushdbsp/$RTT_BSP&&pkgs--update&&popd 13scons-Cbsp/$RTT_BSP-j$(nproc) 14mkdir-p${{github.workspace}}/$RTT_BSP 15cp-rbsp/$RTT_BSP${{github.workspace}}/$RTT_BSP/ 16scons--dist-Cbsp/$RTT_BSP 17cpbsp/$RTT_BSP/dist/project.zip${{github.workspace}}/$RTT_BSP/ 18lsbsp/$RTT_BSP/dist 19pwd
				
				如何上传中间文件那如何上传中间文件的呢?这里就要用到github中的一个小功能了。只需要在action中添加下面的代码。·name 是你要显示的名字·path 是你要上传的文件路径

				1-uses:actions/upload-artifact@v3 2with: 3name:dist_file 4path:${{github.workspace}}/${{github.event.inputs.bsp_options}}/*
				

PART06

总结

这个方便生成dist之后的文件。大家如果觉得好用,可以在评论区留言。如果觉得有哪里还有可以改进的地方,也可也在评论区里面建议或者提PR,都可以~非常欢迎。这个功能刚开始做,所以肯定有很多地方可以完善的地方。后续我会继续考虑完善它。大家可以试试帮我试试自己常用的bsp,看下是否ok。如果有问题欢迎反馈~。

原文:https://club.rt-thread.org/ask/article/419a30e57384a239.html

———————End———————

RT-Thread线下入门培训

7月 -上海,南京

1.免费2.动手实验+理论3.主办方免费提供开发板4.自行携带电脑,及插线板用于笔记本电脑充电5.参与者需要有C语言单片机(ARM Cortex-M核)基础,请提前安装好RT-Thread Studio 开发环境

82b43260-0915-11ee-962d-dac502259ad0.png

立即扫码报名

报名链接

https://jinshuju.net/f/UYxS2k

巡回城市:青岛、北京、西安、成都、武汉、郑州、杭州、深圳、上海、南京

你可以添加微信:rtthread2020 为好友,注明:公司+姓名,拉进RT-Thread官方微信交流群!

点击阅读原文,进入RT-Thread 官网


原文标题:RTT黑科技: 添加手动打包和编译特定bsp功能

文章出处:【微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。


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

    关注

    32

    文章

    1540

    浏览量

    44250

原文标题:RTT黑科技: 添加手动打包和编译特定bsp功能

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    gd323230bsp编译报错如何处理?

    使用的是rt5.0的gd32e230kstart bsp编译的时候报错了,显示数据类型不匹配 没有改动过,是编译器设置的问题吗
    发表于 10-13 07:52

    STM32G103ZE使用金点原子战舰3的BSP,SCONS添加SD卡功能后可以读出卡容量但是不能挂载,为什么?

    RTT版本4.1.1 SCONS1.2 BSP金点原子战舰3的BSP 板子是jiezhi之前的收音机开发板,硬件用之前的收音机的固件测试过是正常的。 驱动方式SDIO,现在可以正常读取卡的容量,但是不能识别。 做过尝试:通过修改
    发表于 10-09 06:08

    RTT stduio编译速度慢的原因?

    笔记本配置:i5-8250U 8G 全固态硬盘点RTT stduio小锤子编译项目,5-10分钟才编译完成,第一次编译长一点可以理解,每次修改重新
    发表于 09-28 15:06

    BB Black使用uboot启动rtt,data abort错误怎么解决?

    事情是这样的,我想在Beaglebone Black板上启动RT-Thread。 硬件环境:Beaglebone Black 编译器:arm-none-eabi-gcc 首先rtt源代码是从
    发表于 09-28 06:45

    同芯片不同开发板的BSP能不能用?

    RTT studio中基于开发板创建项目,芯片选择是一样的,但是弹出的开发板和我购买到的不一样,这种情况下会有问题吗? 不用RTT studio,使用env工具,选择开发板使用的芯片BSP,再
    发表于 09-16 06:40

    RTT如何添加文件夹并加入编译

    想把一个新的工程文件夹(包含若干个源文件和头文件)放入同一个工程内编译。 试了下把在文件系统添加了文件夹到相关位置,rtthread studio也自动识别了该文件夹。但是编译时总是找不到头文件或者源文件。是不是scons或者k
    发表于 09-15 07:50

    使用ENV工具scons —dist打包GD32F470的BSP一直报错,是什么原因导致?

    最近使用ENV工具scons —dist打包GD32F470的BSP一直出现下面的错误,不知道是什么原因;STM32的BSP,scons —dist打包正常的。 $ scons --
    发表于 09-09 06:07

    【RA-Eco-RA6M4开发板评测】SEGGER_RTT打印日志

    ;amp;g_ioport_ctrl,BSP_IO_PORT_01_PIN_06,BSP_IO_LEVEL_LOW); } } 编译后下载到开发板中。 【RTT_view的配置】
    发表于 07-31 14:40

    手动添加cubeMX的软件自动生成代码后,编译出现’rtthread.elf’:No Such File 的错误怎么解决?

    手动添加cubeMX的软件自动生成代码后,编译出现’rtthread.elf’:No Such File 的错误。
    发表于 06-12 07:46

    【RA4L1-SENSOR】+ RA4L1-SENSOR开发版之使用Jlink的RTT打印功能代替串口

    */ R_BSP_NonSecureEnter(); #endif 编译完成,烧录软件到板子 4。打开JLINK 的RTT View软件 选择R7FA4L1BD 无法连接,需要修改起始地址 打开map文件 找到它 填入地址
    发表于 06-09 09:03

    【RA-Eco-RA4M2开发板评测】使用Jlink的RTT来实现串口打印功能

    生成代码 2。打开KEIL软件 选好芯片 Jlink设置 先编译一遍 没有错误,因为没有配置串口,就不会报错,只使用Jlink 3。将前面说的RTT文件复制到keil工程中 添加头文件
    发表于 04-30 12:19

    【RA-Eco-RA2L1-48PIN-V1.0开发板试用】——使用Jlink的RTT实现串口打印功能

    能干瞪眼了?????? 当然不行啊,刚好JLINK自带的RTT就能弥补这个缺陷,它能进行串口printf打印的所有功能。 本期测评就让我来给大家讲解一下使用JLINK的RTT实现printf打印的
    发表于 01-23 11:33

    使用OpenVINO™条件编译功能,压缩Windows应用体积

    cmake -DENABLE_INTEL_GPU=OFF 便可以取消 GPU plugin 库的编译。除此以外 OpenVINO 还提供了条件编译功能,用于针对特定模型进行运行库压缩
    的头像 发表于 01-13 10:26 828次阅读
    使用OpenVINO™条件<b class='flag-5'>编译</b><b class='flag-5'>功能</b>,压缩Windows应用体积

    Triton编译功能介绍 Triton编译器使用教程

    。以下是 Triton 编译器的一些功能介绍和使用教程。 Triton 编译功能介绍 多语言支持 :Triton 支持多种编程语言,使得开发者可以在同一个
    的头像 发表于 12-24 17:23 2667次阅读

    【敏矽微ME32G070开发板免费体验】使用JLINK的RTT功能实现类似串口printf打印功能

    是坏的,非常影响我的测评使用。 我这个串口是坏的,非常影响我的测评使用。 我这个串口是坏的,非常影响我的测评使用。 为了先代替串口打印功能,我就先使用Jlink自带的RTT软件来进行打印测试log输出
    发表于 12-15 20:30