Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
sdk-bsp-gd32vf103v-eval提交记录(二)
发布于 2022-05-22 13:22:18 浏览:288
订阅该版
[tocm] sdk-bsp-gd32vf103v-eval的提交分为三部分: 1. gd32vf103v-eval 在rtthread studio可编译的demo 工程,gcc和debug 工具测试 2. PR nuclei gcc , nuclei openocd 和 sdk-bsp-gd32vf103v-eval(v1.0.0版本) 3. 优化源码部分,提供jlink调试配置(v1.0.1版本) 上一篇已经介绍了 [sdk-bsp-gd32vf103v-eval提交记录(一)](https://club.rt-thread.org/ask/article/450adf542fa20b1b.html) 这次补一下第二部分 :PR nuclei gcc , nuclei openocd 和 sdk-bsp-gd32vf103v-eval(v1.0.0版本) 这次主要是流程问题,稍显枯燥。 # 1 PR tools 因为SDK 管理器里关于 gd32vf103 只有GD32VF103-NuCLEI-RVSTA 一个BSP,这个kit 是Nuclei的评估板,大家使用的并不多  另外这个sdk 在studio里只能编译,不能直接下载和调试,比较鸡肋,这也是要做gd32vf103v-eval sdk的原因 它的编译和下载,readme里推荐的是在scons 使用nuclei的 gcc 和 openocd。为了同步官方工具,我们也使用同样的工具,但 studio SDK里目前并没有 所以需要我们自己先添加nuclei的gcc 和debugger tools两个包。 ## 1.1 Nuclei GCC ### 1.1.1 下载 先从官网https://www.nucleisys.com/download.php上下载最新的2022.04 版gcc  ### 1.1.2 新建仓库 在github上新建 sdk-toolchain-risc-v-gcc-nuclei公开仓库,  在本地按照SDK命名方式新建sdk-toolchain-risc-v-gcc-nuclei文件夹,把下载的gcc解压至该目录,保证bin在根目录下 新建本地仓库,添加并提交所有文件  然后,添加远程仓库为刚刚新建的github 仓库,并push  ### 1.1.3 clone 对比 因为这些都是预编译的可以执行文件,虽然我们没有ignore任何文件,但不保证git提交时会自动忽略某些文件。保险起见,拉下来对比一下:  > 除了几个空文件夹不同,其他均相同 ### 1.1.4 更新 sdk-index 从rtt 远程更新本地master分支,然后新建feature/nuclei_tools ``` LT@DESKTOP-Win10 MINGW64 /e/Gitea/sdk-index (feature/nuclei_tools) $ git remote -v origin git@github.com:blta/sdk-index.git (fetch) origin git@github.com:blta/sdk-index.git (push) rtt https://github.com/RT-Thread-Studio/sdk-index.git (fetch) rtt https://github.com/RT-Thread-Studio/sdk-index.git (push) ``` 1)在 sdk-index/Tool_Chain/index.json 追加 "RISC-V-GCC-NUCLEI" 工具链  2)然后在 Tool_Chain目录下新建 RISC-V-GCC-NUCLEI目录 并新建index.json文件如下  > - URL 一定要以zip结尾的格式,不然CI不识别,不能下载 > > - 第一个版本上传出错了, 2022.05还是2022.04版本 ## 1.2 NuClei OpenOCD 和GCC操作几乎一致 ### 1.2.1 下载 先从官网https://www.nucleisys.com/download.php上下载最新的2022.04 版 Nuclei OpenOCD  ### 1.2.2 新建仓库 在github上新建**[sdk-debugger-openocd-nuclei](https://github.com/blta/sdk-debugger-openocd-nuclei)** 公开仓库,  在本地按照SDK命名方式新建 sdk-debugger-openocd-nuclei文件夹,把下载的openocd解压至该目录,保证bin在根目录下 新建本地仓库,添加所有文件并提交  然后,添加远程仓库为刚刚新建的github 仓库,并push  ### 1.2.3 clone 对比 完全一致  ### 1.2.4 更新 sdk-index 在 feature/nuclei_tools基础上继续: 1)在 sdk-index/Debugger/index.json 追加 "OpenOCD-Nuclei" 工具链  2)然后在 Debugger目录下新建 OpenOCD-Nuclei目录, 并新建index.json文件如下  > - URL 一定要以zip结尾的格式,不然CI不识别,不能下载 > > - 第一个版本上传出错了, 2022.05还是2022.04版本 ## 1.3 PR 本地提交修改后,push到自己的github仓库,就可以向[RT-Thread-Studio/sdk-index](https://github.com/RT-Thread-Studio/sdk-index) 发起PR 需要注意的是: 1.目前studio SDK 并不支持 ToolChain_Support_Packages 和 Debugger_Support_Packages 本地导入自测 2.如果你的PR已经被合并,CI会自动把你的zip包下载国内的gitee服务器上,新建分支或者仓库 [riscv-gnu_toolchain](https://gitee.com/RT-Thread-Studio-Mirror/riscv-gnu-toolchain)下新建了一个分支  [RT-Thread-Studio-Mirror](https://gitee.com/RT-Thread-Studio-Mirror)下新建了一个仓库  3.前两条意味着,**只要你的PR被合并,CI同步完成后, 你在本地测试发现问题了,也只能更新升级,重新PR,还要升级版本号**. **所以提交之前多检测几遍!** ## 1.4 测试 PR合并后,在SDK manager里发现了最新的 Nuclei GCC and OpenOCD,具体的功能测试放在后面的工程里。  # 2 PR BSP ## 2.1 配置demo 在[sdk-bsp-gd32vf103v-eval提交记录(一)](https://club.rt-thread.org/ask/article/450adf542fa20b1b.html) 里我们新建了一个可以运行的Demo,还需要调整一下配置  ### 2.1.1 输出文件名 把输出文件名统一改成rtthread, 最后会生成rtthread.elf 用于debugger配置  ### 2.1.2 添加nature 属性 如果.project文件内缺少了 org.rt-thread.studio.rttnature 属性,请添加一下,不然后面不能生成和打开debugger配置  > 感谢RTT工作人员的支持 ### 2.1.3 Toolchains设置 更新一下Nuclei GCC系统路径(需要提前在SDK里下载好)  ### 2.1.4 hardware_adapter projcfg.ini 里的 hardware_adapter决定了使用那种debugger配置  ### 2.1.5 .Debug.rttlaunch 如果.setting下没有`.Debug.rttlaunch`文件,单击配置工程时,会自动生成一个`工程名.调试器类型.Debug.rttlaunch`文件 并根据它生成配置界面  基于最新的SDK Nuclei tools 调整OpenOCD 和 GDB路径  ### 2.1.6 再次编译测试 重新编译,并debugger一次,测试一下新的toolchains 和 opeocd debugger ### 2.1.7 readme.md 编译测试没有问题后,就需要在工程根目录下添加或修改readme.md,提示用户编译,下载,驱动支持等注意事项  上述步骤全部没有问题后,就可以保存工程作为制作sdk-bsp的demo了。 ## 2.2 新建 sdk-bsp Studio里 文件->新建->开发板支持包 ### 2.2.1 开发版支持包信息  ### 2.2.2 开发板信息  ### 2.2.3 开发板特性  ### 2.2.4 文档信息  ### 2.2.5 工程信息 添加一个工程模板,工程路径选择我们的demo工程。  ### 2.2.6 生成 点击右上角生成按钮,生成sdk-bsp  ### 2.2.7 本地repo track sdk-bsp 一次性成功的概率很小,需要不断测试(我这里省略了很多中间调试),另外也要往github上推送。所以先建立一个本地仓库追踪一下  另外建议把生成的sdk-bsp 放到仓库根目录: 1. 平时修改基于根目录下的 project0 和 yaml文件,忽略 sdk-bsp-gd32vf103v-eval文件夹变更 2. 测试没有问题后,把最后的sdk-bsp-gd32vf103v-eval里的内容拷贝到根目录 ## 2.3 本地导入测试 ### 2.3.1 sdk-bsp导入 压缩刚刚生成的sdk-bsp为zip类型文件, sdk manager本地导入  导入成功后看到一个offline的 bsp support packages  ### 2.3.2 新建工程测试 基于刚刚的SDK-bsp新建一个测试工程  ### 2.3.3 工程测试 测试一下新生成工程下面的功能是否正确: - RT-Thread Setting, - 编译 - OpenOCD 下载和Debugger功能  ## 2.4 PR ### 2.4.1 sdk-bsp 远程仓库 本地测试生成的sdk-bsp没有问题后,就可以推送到远程github自己的账号下了 ``` $ git remote -v gitea ssh://git@192.168.0.103:10022/Emb_RT-Thread/sdk-bsp-gd32vf103v-eval.git (fetch) gitea ssh://git@192.168.0.103:10022/Emb_RT-Thread/sdk-bsp-gd32vf103v-eval.git (push) origin git@github.com:blta/sdk-bsp-gd32vf103v-eval.git (fetch) origin git@github.com:blta/sdk-bsp-gd32vf103v-eval.git (push) LT@DESKTOP-Win10 MINGW64 /e/Gitea/sdk-bsp-gd32vf103v-eval (master) $ git push origin master Everything up-to-date ``` ### 2.4.2 远程仓库release 远程仓库需要release一个版本给下面的sdk-index使用  ### 2.4.3 再次更新sdk-index 这次更新的是Board_Support_Packages, 基于最新的RT-Thread-Studio/sdk-index 新建本地分支feature/sdk-bsp-gd32vf103v-eval ``` LT@DESKTOP-Win10 MINGW64 /e/Gitea/sdk-index (master) $ git remote -v origin git@github.com:blta/sdk-index.git (fetch) origin git@github.com:blta/sdk-index.git (push) rtt https://github.com/RT-Thread-Studio/sdk-index.git (fetch) rtt https://github.com/RT-Thread-Studio/sdk-index.git (push) LT@DESKTOP-Win10 MINGW64 /e/Gitea/sdk-index (master) $ git pull rtt master From https://github.com/RT-Thread-Studio/sdk-index * branch master -> FETCH_HEAD Already up to date. LT@DESKTOP-Win10 MINGW64 /e/Gitea/sdk-index (master) $ git ck -b feature/sdk-bsp-gd32vf103v-eval Switched to a new branch 'feature/sdk-bsp-gd32vf103v-eval' ``` ### 2.4.4 追加`"GD32VF103V-GD-EVAL"` BSP 在Board_Support_Packages/GigaDevice/index.json里最追加`"GD32VF103V-GD-EVAL"` BSP  ### 2.4.5 新建GD32VF103V-GD-EVAL/index.json  > Note: > > - repository : 要填写`2.4.1 sdk-bsp 远程仓库`中使用的仓库地址 > > - releases/url: 要填写`2.4.2 远程仓库release`得到的URL ### 2.4.6 PR 把上述更改本地提交后,推送到github自己账户下,随后向https://github.com/RT-Thread-Studio/sdk-index发起PR  > 另外说一下这个sdk-bsp 不支持Nuclei GCC and OpenOCD两个依赖包的自动下载, 尝试加了,但生成的工程有问题,v1.0.0版本先放弃了 > > 请在本地先手动下载它们。 > > ## 2.5 本地测试 PR合并后就可以在SDK manager里发现最新的bsp了,下载后,基于`bsp 1.0.0` 新建工程测试一下  > Note: bsp 后面带`(offline)`的是本地导入的 **第二部分PR v1.0.0 完成**
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
blta
这家伙很懒,什么也没写!
文章
12
回答
9
被采纳
2
关注TA
发私信
相关文章
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
五分钟玩转RT-Thread新社区
5
国产MCU移植系列教程汇总,欢迎查看!
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
FinSH
ART-Pi
Bootloader
CAN总线
Hardfault
文件系统
USB
DMA
RT-Thread
线程
SCons
RT-Thread Nano
stm32
MQTT
ESP8266
ota
WIZnet_W5500
RTC
rt-smart
UART
flash
rtthread
packages_软件包
freemodbus
潘多拉开发板_Pandora
I2C
cubemx
FAL
定时器
PWM
BSP
AB32VG1
ADC
中断
消息队列_msg_queue
SDIO
msh
keil
编译报错
Debug
socket
SFUD
LVGL
C++_cpp
本月问答贡献
宇宙码蚁
12
个答案
4
次被采纳
张世争
27
个答案
3
次被采纳
rcp
13
个答案
3
次被采纳
a1012112796
5
个答案
2
次被采纳
JonasWen
4
个答案
2
次被采纳
本月文章贡献
IcyFeather
5
篇文章
9
次点赞
chejia12
4
篇文章
1
次点赞
燕十三
3
篇文章
22
次点赞
dejavudwh
3
篇文章
9
次点赞
kurisaW
3
篇文章
7
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部