打印
[研电赛技术支持]

GD32H737ZMT6无法下载hex和bin文件问题

[复制链接]
1016|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
项目场景:
在使用GD32H737ZMT6进行项目开发的时候,自己修改了sct分散加载文件,让code运行到ram中,但是遇到无法下载hex文件的问题。想要生成BIN文件试试的时候,又发现生成了一个.bin文件夹。

问题描述
问题1、修改了SCT文件后,使用Jlink驱动V7.94发现选择GD32H737ZMT6的device会无法连接芯片,只能通过选择CORTEX-M7的device才可以正常连接。但是下载HEX文件的时候发现会报错,如下图所示。





问题2、想要尝试生成.bin文件进行下载的时候又发现直接生成了一个bin文件夹,里面有很多个文件,如下图所示





解决方案:
问题1、将jlink版本更换成jlinkV8.10就正常了,hex文件可以下载了,芯片也可以连接了。但是如果没有用分散加载文件,code运行在flash中的话jlink7.94的驱动就没有这个问题,目前还不知道为啥。
这里我还用jlinkV7.94驱动生成的工程文件对比了一下(device=GD32H737ZMT6和device=CORTEX-M7),发现其实直接把.jflash文件中ChipName改成CORTEX-M7也是可以连接的(但是hex文件还是无法下载),可能是jlinkV7.94版本太老了。如下图所示:





问题2、因为看到Bin文件夹中有_at_0x30000000的提示,因此去搜索了一下工程中所有的代码,看有没有地方把代码或者变量放到了0x30000000的地址中去执行的,结果还真发现GD32自带的库文件gd32h7xx_enet.c中会把变量放到这个地址。看了一下GD32手册这个地址是外部sram的,因此可能是网络相关的库文件,把缓存变量放到外部SRAM中了。目前没用到相关功能,因此把该文件从工程中移除就正常了。后面如果需要使用该功能,那应该在sct文件中配置相关执行域吧,或者keil的RAM设置中要进行配置,不然可能就会报错。








————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_43695159/article/details/145931536

使用特权

评论回复
沙发
weifeng90| | 2025-3-7 23:12 | 只看该作者
感谢分享经验,国产芯片用起来还是有些坑。

使用特权

评论回复
板凳
classroom| | 2025-3-12 10:37 | 只看该作者
J-Link驱动版本不兼容

使用特权

评论回复
地板
laocuo1142| | 2025-3-12 16:00 | 只看该作者
Bin文件生成异常以及硬件连接或芯片问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

100

帖子

0

粉丝