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

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

3天内不再提示

踩坑记录—RT-Thread Studio烧录ch32v307

冬至子 来源:初级踩坑仔 作者:初级踩坑仔 2023-10-13 15:28 次阅读

RT-Thread Studio向ch32v307vct6烧录程序,有个前置条件要完成。

1坑中坑(这部分可以看看,不要跟着操作)

要先用沁恒的烧录工具WCHISPStudio将ch32v307vct6的ROM改为224K,RAM改为96K,
参考数据手册可以发现ch32v307的FLASH和RAM是可以自己配置大小的,第一次见。

1.jpg

然后可以通过芯片USB或串口1用WCHISPStudio下载程序,我们仅仅修改下FLASH为224K,RAM为96K。之后就可以用RT-Thread Studio烧写程序了。将BOOT设置好,再将板子USB或者串口1连到电脑,点击WCHISPStudio搜索,就可以发现设备和查看FLASH了,如图

1.jpg

总之,这个方法不可取!

2踩坑顿悟

经历了前面的坑中坑,我发现用RT-Thread Studio向ch32v307烧录程序其实很简单,只要避开一个点就行。

我们先用RT-Thread Studio新建一个ch32v307的模板工程

1.jpg

这是模板main线程

int main(void)
{
rt_kprintf("MCU: CH32V307n");
rt_kprintf("SysClk: %dHzn",SystemCoreClock);
rt_kprintf("www.wch.cnn");
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大小

1.jpg

可以看到FLASH:224K RAM:96K,这里是根据自己手里的ch32v307修改的,因为ch32v307有好几种存储分配方式。

1.jpg

这个链接脚本没有任何问题,我们先编译下程序,再点击下载,会跳出一个界面

1.jpg

我们可以在这里用Get和Set按钮查看和修改芯片的存储分配,可以看到我的芯片现在存储分配实际256K ROM+64K RAM,和链接脚本里的224K ROM+96K RAM,所以你刚刚在RT-Thread Studio编译程序得到的镜像(bin,hex等)无论通过那种途径烧录到了芯片都是无效的!

我们想要程序起作用,要么按芯片实际存储分配修改链接脚本link.lds,要么根据link.lds设置芯片存储分配,我这里就直接修改link.lds了,

1.jpg

想修改芯片配置的直接在刚刚跳出的下载界面通过下拉框选择,在点击Set就好,非常简单。
然后我们再次编译程序点击下载界面的下载按钮,

1.jpg

有意思的来了,你会发现控制台输出空空如也!无论再怎么狂按复位间它都无动于衷。
没错,这就是我最开始说的那个BUG,这时候就要上WCH-LinkUtility了,可以到沁恒的官网下载,我们打开它,轻轻点击一下Get或者其它按钮,总之让WCH-LinkUtility与芯片进行一次通讯就行,程序就正常运转了,控制台有了输出,复位键也正常了,皆大欢喜!

1.jpg

控制台输出:

1.jpg

但当我们再次通过RT-Thread Studio下载程序后,芯片又没反应了。
所以,BUG确定了,是RT-Thread Studio那个下载工具的问题,如果通过WCH-LinkUtility或者其它工具下载,都是一切正常。

3 总结与吐槽

总结就是用RT-Thread Studio编译得到镜像文件,再通过其它烧录工具(WCH-LinkUtility/WCHISPStudio)下载程序,或者换IDE比如MounRiver Studio。这个问题仅限ch32。

希望有人能早日解决这个问题吧,还有能不能不要下载程序的时候跳出一个下载界面让用户二次操作吗,太反人类了,直接给一个进度条就好啦。

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

    关注

    38

    文章

    7484

    浏览量

    163764
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1368

    浏览量

    114641
  • RT-Thread
    +关注

    关注

    31

    文章

    1285

    浏览量

    40085
  • Flash存储
    +关注

    关注

    0

    文章

    38

    浏览量

    8288
  • CH32V307VCT6
    +关注

    关注

    0

    文章

    2

    浏览量

    1027
收藏 人收藏

    评论

    相关推荐

    rt-thread studio导入bsp失败的原因?

    rt-thread studio导入bsp失败,bsp:gd32470z-lckfb
    发表于 09-27 09:54

    rt-thread studio导入bsp失败的原因?

    rt-thread studio导入bsp失败,bsp:gd32470z-lckfb
    发表于 09-13 07:49

    rt-thread studio手动导入bsp失败的原因?怎么处理?

    rt-thread studio 手动导入bsp 失败。 版本: 2.2.8 构建ID: 202405200930 导入的bsp 是直接从rt-thread 代码仓库下载的
    发表于 09-13 06:45

    如何在RT-thread studio的裸机例程上移植freertos?

    如何在RT-thread studio的裸机例程上移植freertos
    发表于 09-13 06:32

    RT-Thread Studio导入keil MDK工程失败的原因?怎么解决?

    RT-Thread Studio导入keil MDK工程失败
    发表于 07-15 06:56

    ch32v307_RTT】1、使用RT-Thread studio新建工程

    【前言】 ch32v307有成熟的RT-Thread 支持,使用RT-Thread studio可以快速的建立工程,我将分享系列文章,这一篇是如何快速建立工程。 【前题】 安装好
    发表于 06-29 18:25

    6月6日杭州站RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    6月6日下午我们将在杭州举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread资深
    的头像 发表于 05-28 08:35 441次阅读
    6月6日杭州站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月25日北京站RT-Thread线下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我们将在北京举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread资深
    的头像 发表于 04-16 08:35 417次阅读
    4月25日北京站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread资深
    的头像 发表于 03-27 08:34 527次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread Studio添加软件包报错怎么解决?

    RT-Thread Studio添加软件包报错ImportError: No module named psutil
    发表于 03-01 08:41

    使用RT-Thread Studio下载代码不能运行是为什么?

    直接使用源码包里面的keil工程下载代码正常执行,但是使用RT-Thread Studio下载就不行了 使用的是TM4C123H6PM的例程,但是我的芯片是TM4C123H6PZ的,keil上是可以直接下载并正常工作的,但是RT-Thr
    发表于 03-01 08:22

    RT-Thread Studio使用GD-LINK下载,选择DAP-LINK,编译报错怎么解决?

    下载源码5.0.2, 使用RT-Thread Studio v2.2.7,导入bsp里面的RT-Thread Studio项目 MCU使用G
    发表于 02-26 06:47

    rt-thread studio地址偏移怎么配置?

    rt-thread studio地址偏移配置,这个再哪配置?
    发表于 02-23 06:24

    RT-Thread Studio为什么没有找到外部中断的配置?

    使用版本 RT-Thread Studio 版本: 2.2.7 构建ID: 202308112000 使用接口 使用RT-Thread,STM32因为默认是屏蔽掉外部中断的接口代码的 这样用起来
    发表于 02-22 07:01

    ch32v307-r1 BSP按照README说明导入RT-Thread Studio编译报错的原因?怎么解决?

    Github上下载的RT-Thread v5.0.2 ,按照ch32v307-r1 的README.md说明导入RT-Thread Studio
    发表于 02-19 06:05