Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
CH32V103R-EVT RT-Thread Studio开发板支持包制作
发布于 2022-04-07 12:56:05 浏览:1490
订阅该版
[tocm] CH32V103R-EVT的BSP提交已经合并了,开始制作对应的RT-Thread Studio开发板支持包 # 1 准备 - 最新的RT-Thread Studio - MounRiver Stuido生成的 RT-Thread Demo 工程 ![image-20220406151853081.png](https://oss-club.rt-thread.org/uploads/20220407/434f14fbfc9a3ced0ee318ba64754805.png.webp) - [官方开发板资源包制作指导](https://www.rt-thread.org/document/site/#/development-tools/rtthread-studio/um/studio-user-manual?id=%e5%bc%80%e5%8f%91%e6%9d%bf%e8%b5%84%e6%ba%90%e5%8c%85%e5%88%b6%e4%bd%9c) # 2 导入BSP工程 ## 2.1 官方 scons --dist-ide 虽然官方推荐在Env里使用下面命令直接生成BSP包,然后直接制作 ```shell LT@DESKTOP-WIN10 E:\WorkSpaces\rt-thread\bsp\wch\risc-v\ch32v103r-evt > scons --dist-ide --project-path=ch32v103r-evt --project-name=ch32v103r-evt scons: Reading SConscript files ... Newlib version:3.0.0 make distribution.... => ch32v103r-evt => components => include => libcpu => src => tools Update configuration files... done! ``` 生成的工程,未导入library ,配置估计也是错的。所以我们选择先直接导入bsp,调整可正常编译后再制作开发板支持包 ![image-20220406210316244.png](https://oss-club.rt-thread.org/uploads/20220407/714e8a058352e103e8f2087a3fa93b66.png.webp) ## 2.2 直接导入BSP工程 发现import支持BSP的直接导入,但是需要先把 MounRiver Stuido生成的 RT-Thread Demo 工程的几个文件拷贝到BSP目录,不然导入不成功! ![image-20220406153840370.png](https://oss-club.rt-thread.org/uploads/20220407/56a87e522354ab3d045ae2370509d0ee.png.webp) 选择导入`RT-Thread BSP到工作空间` ![image-20220406154116251.png](https://oss-club.rt-thread.org/uploads/20220407/247b489102c5e030e51cf9bdf1b5591d.png.webp) 目录选择最新master上的CH32V103R-EVT BSP 目录 ![image-20220406154445554.png](https://oss-club.rt-thread.org/uploads/20220407/06da1eb9e4cf31d121e59cd6040332f2.png.webp) 导入完成 ![image-20220406154733310.png](https://oss-club.rt-thread.org/uploads/20220407/8dbb5f30cf84a359c354e46e9220c8ad.png.webp) ## 2.3 libraries 导入的工程明显丢失了BSP上一层的Libraries目录,首先copy过来,重命名libraries(一般小写) ![image-20220406173912903.png](https://oss-club.rt-thread.org/uploads/20220407/bf04fd08d08fa23c8f7a4876c7163caa.png.webp) # 3 调整配置 ## 3.1 配置工具链 ![image-20220406155155093.png](https://oss-club.rt-thread.org/uploads/20220407/7a8d7c2963dd31a13c8a6f6c36ad6d84.png.webp) ## 3.2 同步scons配置到项目 现在工程src, include ,group基本都是错了,包含了很多不该包含的文件,或者找不到文件,需要借助scons 快速生成正确的配置。 ![image-20220406160020100.png](https://oss-club.rt-thread.org/uploads/20220407/6a59c417002e41d5ecd5670ab1e0a34b.png) > scons 果然很强大 ### 3.2.1 先重配 target 现需要一个编译目标,一般使用Debug ![image-20220406172039777.png](https://oss-club.rt-thread.org/uploads/20220407/09e75b30a12a69dd408805595747a3e0.png.webp) ### 3.2.2 同步scons 在 .setting 文件夹下新建projcfg.ini 配置 ``` #RT-Thread Studio Project Configuration #Wed Apr 06 15:50:01 CST 2022 cfg_version=v3.0 board_name=CH32V103R-EVT example_name= hardware_adapter=J-Link board_base_nano_proj=False project_type=rt-thread chip_name=CH32V103R8T6 bsp_version=1.0.0 selected_rtt_version=4.0.4 os_branch=full project_base_bsp=true is_use_scons_build=True is_base_example_project=True output_project_path=E\:\\WorkSpaces\\RT_Thread_Studio\\CH32V103R-EVT project_name=CH32V103R-EVT bsp_path= os_version=4.0.4 ``` 然后右击选择`同步scons配置至项目` ![image-20220406155330854.png](https://oss-club.rt-thread.org/uploads/20220407/f9c2b2b6308cda06d0285dfb64e6060c.png.webp) 打开配置发现已自动更新了include and src, 手动删除上面的错误路径,同时发现Libraries路径存在问题(我们之前改成了libraries) ![image-20220406173355311.png](https://oss-club.rt-thread.org/uploads/20220407/0485ad8d5791ea85382bf7516f23a9ba.png.webp) 在SConstruct中修正一下,再次Scons同步 ![image-20220406174931821.png](https://oss-club.rt-thread.org/uploads/20220407/c8a58eb6e8c46c1044a14ffed230b71d.png.webp) 最终得到正确的路径和符号 ![image-20220406175116446.png](https://oss-club.rt-thread.org/uploads/20220407/4f580d6d800467c7ce46b27df745cb80.png.webp) ## 3.3 link.lds 再次编译,发现链接文件有问题 ![image-20220406175953647.png](https://oss-club.rt-thread.org/uploads/20220407/c56c96a9fc933bf22b9e0e8bece2f9db.png) 配置正确的.lds路径 ``` "${workspace_loc:/${ProjName}/board/linker_scripts/link.lds}" ``` ![image-20220406180050831.png](https://oss-club.rt-thread.org/uploads/20220407/b0b4e9f5f379cf4c67fa21108058061e.png) 再次编译,通过 ![image-20220406180314782.png](https://oss-club.rt-thread.org/uploads/20220407/20e287351b5f66c4bc10119a575457c9.png) # 4 测试优化 ## 4.1 新固件测试 ![image-20220406181139847.png](https://oss-club.rt-thread.org/uploads/20220407/a6d0ccde33cbe9c05625196d5f39c471.png.webp) 看下终端,编译时间正确,LED,MSH运行正常。 ![image-20220406181807731.png](https://oss-club.rt-thread.org/uploads/20220407/235a6451f763a1800f539c77e9c5ff7a.png) ## 4.2 RT-Thread Setting配置 ![image-20220406184147392.png](https://oss-club.rt-thread.org/uploads/20220407/4210154e27ee20d58bb8b0b0a86ea229.png) 更新根目录下的Kconfig,再次配置正常 ![image-20220406184253458.png](https://oss-club.rt-thread.org/uploads/20220407/6a2c8708b14e02b1a21e89b1518e1846.png.webp) 把暂时未使用的软件定时器关掉,测试 ![image-20220406184607168.png](https://oss-club.rt-thread.org/uploads/20220407/1a0fc33b2b3794bf4da7f02b04c39e53.png.webp) 结果正确,这个就是需要的软件包工程了 ![image-20220406184757226.png](https://oss-club.rt-thread.org/uploads/20220407/44941afe311df943dc1e3081b84b94a1.png) # 5 制作本地开发板支持包 ## 5.1 源码精简 拷贝一份源码到另一个目录clone,删除git和package目录 ![image-20220406193458972.png](https://oss-club.rt-thread.org/uploads/20220407/6d8d423a4b7c0a498ffaa98de79d5c0f.png.webp) ## 5.2 新建开发板支持包 ### 5.2.1 开发板支持包信息 ![image-20220406194304250.png](https://oss-club.rt-thread.org/uploads/20220407/eb38588fe3b66507bfe951113e02cdff.png.webp) ### 5.2.2 开发板信息 ![image-20220406194433061.png](https://oss-club.rt-thread.org/uploads/20220407/479bd1b7f824a3fb2e0751af26830cf3.png.webp) ### 5.2.3 开发板特性 ![image-20220406194903251.png](https://oss-club.rt-thread.org/uploads/20220407/e520ec246d14382489b759d52b075788.png.webp) ### 5.2.4 文档信息 ![image-20220406210952155.png](https://oss-club.rt-thread.org/uploads/20220407/e351df4ca741084c4a321503a05dc7ac.png.webp) ### 5.2.5 工程信息 #### 5.2.5.1 模板工程 这个模板最好选择固定的rtthread 版本, 同时不要移除RTT目录,这样可以最大程度保留项目配置信息,让生成的工程不需要调整即可正常编译。 ![image-20220407094417197.png](https://oss-club.rt-thread.org/uploads/20220407/40a9e49e41f2acd28fa4e51b81316ea3.png.webp) #### 5.2.5.2 例子工程 这个和上面的没啥区别,就是基于最新的rt-thread版本,测试一下。 如果像ART-Pi一样有很多不同的DEMO,可以在这里添加。 ![image-20220407094844764.png](https://oss-club.rt-thread.org/uploads/20220407/ae17a67c330c598f3f4e288b55b31166.png.webp) > **Note**: latest 默认去除工程的rtthread源码 #### 5.2.5.3 已知的BUG 这里不得不吐槽一下这个BSP package 制作工具,也许个人用的不多,bug真多,我试了至少20次才达到我的预期,分支部分老是抽风。 模板工程只有一个会存在莫名其妙一大堆问题。两个的话,默认只使用第二个,生成的工程不会有问题。 ![image-20220407105816210.png](https://oss-club.rt-thread.org/uploads/20220407/2629d026e5507a2046987209741bd72b.png.webp) ## 5.3 生成 先预览一下 ![image-20220406200245832.png](https://oss-club.rt-thread.org/uploads/20220407/8be7f78d53d1d17b0edbb140e784105b.png.webp) 没有问题,查看生成的bsp 软件包,同时压缩成zip ![image-20220406210043575.png](https://oss-club.rt-thread.org/uploads/20220407/bc6f9cd79864174030131ada22745a5c.png.webp) # 6 测试本地资源包 ## 6.1 导入本地资源包 把刚刚生成的zip压缩包打入 SDK管理器 ![image-20220406211703684.png](https://oss-club.rt-thread.org/uploads/20220407/1a959a6fbf6fd4f70029db5c0fa3def9.png.webp) 导入成功 ![image-20220406211854036.png](https://oss-club.rt-thread.org/uploads/20220407/ada4a3903da8d3ba90bb24e4ed40a9bc.png.webp) ## 6.2 工程测试 ### 6.2.1 模板工程测试 新建模板工程,实际用到的是提交里的RTT源码,latest不保证实时最新,提交时使用的是2022.4.6后的版本。 ![image-20220407103854947.png](https://oss-club.rt-thread.org/uploads/20220407/79c8741dbcf93d04c12d0184287cafa1.png.webp) > rt-thread 版本未变灰色,不从软件包更新,使用提交的原始的rtthread源码 编译,没有问题 ![image-20220407095755162.png](https://oss-club.rt-thread.org/uploads/20220407/3b212ee00f6aa5236609e98534fa9be3.png.webp) ### 6.2.2 例子工程测试 ![image-20220407103913189.png](https://oss-club.rt-thread.org/uploads/20220407/5c4842183d538cc16e74e7f26f17877c.png.webp) > rt-thread 版本变灰色,从软件包根据版本更新rtthread源码 latest package更新的不及时,我新提交合并的ch32v103r-evt还没有更新进来。需要手动copy一份最新rtthread/libcpu/risc-v相关文件,scons 更新一下再编译就OK了 ![image-20220407104922359.png](https://oss-club.rt-thread.org/uploads/20220407/023eb26222968ab974dffdeee62dfcd2.png.webp) > 我提交的BSP在2022.4.6合入master分支,之后的rtthread版本不存在这个问题 ## 6.3 其他测试结果 这部分模板和例子工程一样 - [x] 开发板实测: LED,MSH ok - [x] RT-Thread Setting - [ ] Board Information can't view - [x] Package update - [x] Scons update - [x] Clean project # 7 上传开发板支持包 ## 7.1 推送本地仓库到github 把第3节的配置正确的仓库,推送到自己的github上,远程仓库名字`sdk-bsp-ch32v103r-evt` ``` LT@DESKTOP-Win10 MINGW64 /e/WorkSpaces/RT_Thread_Studio/CH32V103R-EVT (master) $ git remote add github git@github.com:blta/sdk-bsp-ch32v103r-evt.git LT@DESKTOP-Win10 MINGW64 /e/WorkSpaces/RT_Thread_Studio/CH32V103R-EVT (master) $ git push github master Enumerating objects: 1932, done. Counting objects: 100% (1932/1932), done. Delta compression using up to 8 threads Compressing objects: 100% (1877/1877), done. Writing objects: 100% (1932/1932), 8.48 MiB | 1.29 MiB/s, done. Total 1932 (delta 469), reused 0 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (469/469), done. To github.com:blta/sdk-bsp-ch32v103r-evt.git * [new branch] master -> master ``` ## 7.2 新建 v1.0.0 release ![image-20220407113006280.png](https://oss-club.rt-thread.org/uploads/20220407/754ae6f45232ce777036f0e0e1843c25.png.webp) ## 7.3 更新SDK index 1.Fork 一份RT-Thread Studio 的 SDK 索引仓库 https://github.com/RT-Thread-Studio/sdk-index 到个人 github 账号下,同时clone到本地 2.Copy本地仓库Board_Support_Packages/WCH/sdk-bsp-ch32v307v-r0另存为`sdk-bsp-ch32v103r-evt`,放到同级目录下 ![image-20220407115050026.png](https://oss-club.rt-thread.org/uploads/20220407/f67cef9332ec45f171fcc175abae65ed.png.webp) 3.更新WCH/index.json,新增`sdk-bsp-ch32v103r-evt` ![image-20220407125402331.png](https://oss-club.rt-thread.org/uploads/20220407/07070c3fcea8a39c8c4d5173a1373f03.png.webp) 4.更新sdk-bsp-ch32v103r-evt/index.json ![image-20220407114616293.png](https://oss-club.rt-thread.org/uploads/20220407/d1d05d5a0d57fad121c369d1b2ecf013.png.webp) 5.提交并推送到github ``` LT@DESKTOP-Win10 MINGW64 /e/Gitea/sdk-index (feature/sdk-bsp-ch32v103r-evt) $ git push origin feature/sdk-bsp-ch32v103r-evt Enumerating objects: 11, done. Counting objects: 100% (11/11), done. Delta compression using up to 8 threads Compressing objects: 100% (6/6), done. Writing objects: 100% (7/7), 805 bytes | 805.00 KiB/s, done. Total 7 (delta 3), reused 0 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (3/3), completed with 3 local objects. remote: remote: Create a pull request for 'feature/sdk-bsp-ch32v103r-evt' on GitHub by visiting: remote: https://github.com/blta/sdk-index/pull/new/feature/sdk-bsp-ch32v103r-evt remote: To github.com:blta/sdk-index.git * [new branch] feature/sdk-bsp-ch32v103r-evt -> feature/sdk-bsp-ch32v103r-evt ``` 6.pull request ![image-20220407120232643.png](https://oss-club.rt-thread.org/uploads/20220407/e5bed8927fdaf35f22ae85f45d437210.png.webp) **大功告成!**
3
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
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
国产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
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
xiaorui
1
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部