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

    文章

    7148

    浏览量

    161993
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1321

    浏览量

    113706
  • RT-Thread
    +关注

    关注

    31

    文章

    1148

    浏览量

    38877
  • Flash存储
    +关注

    关注

    0

    文章

    38

    浏览量

    8235
  • CH32V307VCT6
    +关注

    关注

    0

    文章

    2

    浏览量

    930
收藏 人收藏

    评论

    相关推荐

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

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

    rt-studio潘多拉开发板最新rt-thread不能运行解决办法

    rt-studio 上 选择基于开发板的项目,选择潘多拉,rt-thread选择lasted ,如下图
    的头像 发表于 10-16 14:50 624次阅读
    <b class='flag-5'>rt-studio</b>潘多拉开发板最新<b class='flag-5'>rt-thread</b>不能运行解决办法

    RT-Thread使用Soft RTC(软件模拟RTC)

    开发环境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,rt-thread 使用版本为4.0.3,stm32f4的资源包为0.2.2。
    的头像 发表于 10-12 17:39 353次阅读
    <b class='flag-5'>RT-Thread</b>使用Soft RTC(软件模拟RTC)

    试用RT-Thread Studio(VSCode)

    想尝试RT-Thread studio (VSCode),先下载安装VSCode,再搜索RT-Thread
    的头像 发表于 10-12 10:58 572次阅读
    试用<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>(VSCode)

    RT-Thread Studio上配置rtthread CANFD驱动来控制M3508电机

    本文旨在RT-Thread Studio上配置rtthread CANFD驱动来控制M3508电机,不涉及任何原理 开发环境:RT-Thread Studio v2.2.6
    发表于 10-08 11:44 558次阅读
    在<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>上配置rtthread CANFD驱动来控制M3508电机

    如何在RT-Thread Studio完成对RA2L1板的环境搭建以及gpio的输入输出检测?

    有幸参加RT-Thread的活动,体验RT-Thread Studio 和瑞萨 CPK-RA2L1评估板。本篇文章主要讲解如何在RT-Thread
    的头像 发表于 09-28 15:51 2192次阅读
    如何在<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>完成对RA2L1板的环境搭建以及gpio的输入输出检测?

    ch32v307和stm32的区别

    ch32v307和stm32的区别  Ch32v307和STM32是两款不同的微控制器芯片。本文将详尽、详实、细致地分析这两款芯片的区别。 首先,我们可以从厂商的不同来看这两款芯片的区别
    的头像 发表于 08-22 15:53 1034次阅读

    ch32优势 ch32v307可以做什么?

    ch32优势 ch32v307可以做什么? Ch32v307是现代技术中的一种优势产品,它可以为用户提供各种功能和服务,包括但不限于节能、高效、安全、灵活等特点。 一、节能: Ch32v307
    的头像 发表于 08-22 15:19 896次阅读

    ch32v307和stm32的区别

    ch32v307和stm32的区别 Ch32v307与STM32是两款不同的微控制器,它们在设计和功能上都存在一些区别。 首先,Ch32v307是一款中国自主研发的微控制器,而STM32是来自瑞士
    的头像 发表于 08-16 11:15 1120次阅读

    使用RT-Thread Studio进行智能家居终端的设计

    本次方案基于星火一号开发板开发,使用RT-Thread Studio进行工程创建,代码编辑,RT-Thread配置,调试配置,程序下载等功能。
    的头像 发表于 07-28 16:41 1383次阅读
    使用<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>进行智能家居终端的设计

    教你手上没有开发板如何跑RT-THREAD STM32应用?

    首先打开 RT-Thread Studio,新建RT-Thread
    的头像 发表于 07-18 16:09 1052次阅读
    教你手上没有开发板如何跑<b class='flag-5'>RT-THREAD</b> STM32应用?

    求助ch32v307怎么使用ad转换

    我想使用ch32v307中ad转换功能,不会用,求助大家,拜托了
    发表于 06-24 13:51

    STM32L4 RT-Thread Studio解决lptimer不工作的问题

    使用RT-Thread Studio 生成的基于STM32L4 的工程,发现开启PM框架后,lptimer不能工作。
    的头像 发表于 06-07 14:29 670次阅读
    STM32L4 <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>解决lptimer不工作的问题

    CH32V307模板工程不能运行是怎么回事?

    rt thread studio 环境中,选择WCH的CH32V307开发板,创建的模板工程不能运行,这个是芯片厂商提供的,还是贵司提供的?是否测试过?
    发表于 05-17 10:41

    基于RT-Thread Studio学习

    前期准备:从官网下载 RT-Thread Studio,弄个账号登陆,开启rt-thread学习之旅。
    的头像 发表于 05-15 11:00 2580次阅读
    基于<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>学习