Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
沁恒CH32V
risc-v_RISCV
RT-Thread Studio
踩坑记一、RT-Thread Studio烧录ch32v307
发布于 2023-01-10 22:08:55 浏览:2562
订阅该版
[tocm] > 从[基于CH32V的RT-Thread学习笔记(持续更新中)](https://club.rt-thread.org/ask/article/e7d5612fb6d17df5.html)挪出来的,方便浏览器直接搜到 用RT-Thread Studio向ch32v307vct6烧录程序,有个前置条件要完成。 ### 1坑中坑(这部分可以看看,不要跟着操作) 要先用沁恒的烧录工具WCHISPStudio将ch32v307vct6的ROM改为224K,RAM改为96K, 参考数据手册可以发现ch32v307的FLASH和RAM是可以自己配置大小的,第一次见。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230110/bffaef42749e18b67ed221b4dd3f634e.png.webp) 用WCH-LINK配置是不行的,要先把板子BOOT脚拨到从系统存储器启动, ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230110/7122a41e14e60962d47bb28d990234a6.png.webp) 然后可以通过芯片的USB或串口1用WCHISPStudio下载程序,我们仅仅修改下FLASH为224K,RAM为96K。之后就可以用RT-Thread Studio烧写程序了。将BOOT设置好,再将板子USB或者串口1连到电脑,点击WCHISPStudio搜索,就可以发现设备和查看FLASH了,如图 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230110/36e56b964be69748570fb7d06a17ba2b.png.webp) 然后,然后。。。就不写了,说多了都是坑。想顺着这个坑踩一遍的可以看看这个: [CH32V307配置Flash和RAM](https://blog.csdn.net/RISCVnet/article/details/123107288) [link.ld/link.lds链接脚本详解](https://www.cnblogs.com/wahahahehehe/p/15149960.html) 总之,这个方法不可取! ### 2踩坑顿悟 经历了前面的坑中坑,我发现用RT-Thread Studio向ch32v307烧录程序其实很简单,只要避开一个点就行。 我们先用RT-Thread Studio新建一个ch32v307的模板工程 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230110/ba73b85447847d8e5673d810ce60b7a3.png.webp) 这是模板main线程 int main(void) { rt_kprintf("MCU: CH32V307\n"); rt_kprintf("SysClk: %dHz\n",SystemCoreClock); rt_kprintf("www.wch.cn\n"); LED1_BLINK_INIT(); GPIO_ResetBits(GPIOA,GPIO_Pin_0); while(1) { GPIO_SetBits(GPIOA,GPIO_Pin_0); rt_thread_mdelay(500); GPIO_ResetBits(GPIOA,GPIO_Pin_0); rt_thread_mdelay(500); } } 然后打开链接脚本link.lds看看FLASH和RAM大小 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230110/a620bf80062d3d57b5a8583e1fefb40a.png.webp) 可以看到FLASH:224K RAM:96K,这里是根据自己手里的ch32v307修改的,因为ch32v307有好几种存储分配方式。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230110/bffaef42749e18b67ed221b4dd3f634e.png.webp) 这个链接脚本没有任何问题,我们先编译下程序,再点击下载,会跳出一个界面 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230110/88cc21a9d7f794b30f66e5fefd71575a.png.webp) 我们可以在这里用Get和Set按钮查看和修改芯片的存储分配,可以看到我的芯片现在存储分配实际256K ROM+64K RAM,和链接脚本里的224K ROM+96K RAM,所以你刚刚在RT-Thread Studio编译程序得到的镜像(bin,hex等)无论通过那种途径烧录到了芯片都是无效的! 我们想要程序起作用,要么按芯片实际存储分配修改链接脚本link.lds,要么根据link.lds设置芯片存储分配,我这里就直接修改link.lds了, ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230110/68be046560928ce4bcd9f74f692feb22.png.webp) 想修改芯片配置的直接在刚刚跳出的下载界面通过下拉框选择,在点击Set就好,非常简单。 然后我们再次编译程序点击下载界面的下载按钮, ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230110/8d3ec06b86ca520df946474dd448c236.png.webp) 有意思的来了,你会发现控制台输出空空如也!无论再怎么狂按复位间它都无动于衷。 没错,这就是我最开始说的那个BUG,这时候就要上WCH-LinkUtility了,可以到沁恒的官网下载,我们打开它,轻轻点击一下Get或者其它按钮,总之让WCH-LinkUtility与芯片进行一次通讯就行,程序就正常运转了,控制台有了输出,复位键也正常了,皆大欢喜! ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230110/be8ce785435c206e3bf868ec43d2225f.png.webp) 控制台输出: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230110/015d62304c566b6ac21c4fa8013bce3b.png.webp) 但当我们再次通过RT-Thread Studio下载程序后,芯片又没反应了。 所以,BUG确定了,是RT-Thread Studio那个下载工具的问题,如果通过WCH-LinkUtility或者其它工具下载,都是一切正常。 ### 3 总结与吐槽 总结就是用RT-Thread Studio编译得到镜像文件,再通过其它烧录工具(WCH-LinkUtility/WCHISPStudio)下载程序,或者换IDE比如MounRiver Studio。这个问题仅限ch32。 希望有人能早日解决这个问题吧,还有能不能不要下载程序的时候跳出一个下载界面让用户二次操作吗,太反人类了,直接给一个进度条就好啦。
3
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
初级踩坑仔
这家伙很懒,什么也没写!
文章
6
回答
4
被采纳
0
关注TA
发私信
相关文章
1
rt_thread studio 啥时候能用呢
2
RT_Thread使用反馈帖子
3
RTT studio 下的 AT指令问题。
4
什么时候RTT Sdudio支持Ubuntu,Deepin和UOS操作系统
5
rt thread Studio 关于J-LINK下载问题
6
RT-Thread studio 调试设置问题
7
RTT-Studio 如何设置调试配置参数?
8
rt_thread studio 软件包配置
9
RT-Studio目前只能开发STM32的项目吗?
10
rtt studio 生成hex名字修改
推荐文章
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在线升级
PWM
freemodbus
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
Debug
中断
编译报错
rt_mq_消息队列_msg_queue
SFUD
keil_MDK
msh
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
20
个答案
3
次被采纳
红枫
8
个答案
2
次被采纳
踩姑娘的小蘑菇
7
个答案
2
次被采纳
张世争
7
个答案
1
次被采纳
三世执戟
7
个答案
1
次被采纳
本月文章贡献
YZRD
3
篇文章
6
次点赞
catcatbing
3
篇文章
6
次点赞
lizimu
2
篇文章
12
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部