GD32H7 如何修改DTCM的大小

[复制链接]
 楼主| ycy9999 发表于 2025-5-18 20:45 | 显示全部楼层 |阅读模式
在把ITCM和DTCM修改成0后,芯片锁死,不能再下载代码,哪位大神知道是怎么回事
寒域吖 发表于 2025-5-19 11:03 | 显示全部楼层
之前问过代理的技术,没有明确的回答,最后试出来ITCM分配64K,DTCM分配0程序可以正常转
laocuo1142 发表于 2025-5-19 11:46 | 显示全部楼层
没法直接修改 DTCM 大小吧我们。
laocuo1142 发表于 2025-5-19 11:47 | 显示全部楼层
可以通过分散加载文件来指定代码和数据的存储位置。通过这种方式,可以手动控制哪些数据或代码放入 DTCM。
flycamelaaa 发表于 2025-5-19 11:47 | 显示全部楼层
GD32H7 的 HAL 库或 LL 库可能提供了一些配置选项,用于启用或禁用 DTCM。
powerantone 发表于 2025-5-19 11:48 | 显示全部楼层
ITCM 和 DTCM 是 GD32H7 芯片中用于高速访问的关键内存区域。ITCM 用于存储关键指令,DTCM 用于存储关键数据。如果将这些区域配置为 0,芯片可能无法正常启动或执行代码,导致锁死。
classroom 发表于 2025-5-19 11:50 | 显示全部楼层
用 J-Link重新烧录固件。
stormwind123 发表于 2025-5-19 13:00 | 显示全部楼层
芯片启动时,可能需要从 ITCM 加载关键启动代码。如果 ITCM 被禁用,芯片可能无法完成启动过程,导致无法进入调试模式或下载代码。
寒域吖 发表于 2025-5-19 13:08 | 显示全部楼层
laocuo1142 发表于 2025-5-19 11:46
没法直接修改 DTCM 大小吧我们。

可以通过配置选项字节配置大小
dffzh 发表于 2025-5-19 13:16 | 显示全部楼层
将ITCM和DTCM设置为0后可能会导致:
1、芯片无法正常执行内部Flash中的程序;
2、调试接口可能被禁用;
3、芯片进入不可恢复状态;
这个时候你试试通过ISP编程模式能不能重新下载程序。


jcky001 发表于 2025-5-19 13:35 | 显示全部楼层
检查硬件连接和电源是否有问题。
probedog 发表于 2025-5-19 14:00 | 显示全部楼层
某些调试接口的实现可能依赖 DTCM 进行数据传输。如果 DTCM 被禁用,调试接口可能无法正常工作,导致无法下载代码。
cr315 发表于 2025-5-19 14:19 | 显示全部楼层
建议不要随意禁用关键内存区域,尽量使用芯片厂商提供的官方工具和库进行配置,避免使用第三方工具导致的不兼容问题。
dffzh 发表于 2025-5-19 16:51 | 显示全部楼层
寒域吖 发表于 2025-5-19 11:03
之前问过代理的技术,没有明确的回答,最后试出来ITCM分配64K,DTCM分配0程序可以正常转 ...

我看了一下数据手册,DTCM和ITCM默认值好像是下面这个: 80924682af0eb25415.png
14987682af1292047b.png
默认不配置状态下都不能正常运行程序吗?
dffzh 发表于 2025-5-19 17:20 | 显示全部楼层
下面这个帖子可以参考看下:
https://cloud.tencent.com/developer/article/1461978
zchong 发表于 2025-5-19 20:32 | 显示全部楼层
似乎不应该,除非芯片设计有bug
zhouyong77 发表于 2025-5-20 08:09 来自手机 | 显示全部楼层
你改它做甚呢?大小不合适?
寒域吖 发表于 2025-5-23 14:05 | 显示全部楼层
dffzh 发表于 2025-5-19 16:51
我看了一下数据手册,DTCM和ITCM默认值好像是下面这个:

默认不配置状态下都不能正常运行程序吗?

默认配置可以执行,但是项目里RAM占用比较多,需要缩小TCM内存的分配
dffzh 发表于 2025-5-23 14:28 | 显示全部楼层
寒域吖 发表于 2025-5-23 14:05
默认配置可以执行,但是项目里RAM占用比较多,需要缩小TCM内存的分配

下面这个帖子对你有帮助吗?
https://cloud.tencent.com/developer/article/1461978
寒域吖 发表于 2025-5-23 14:40 | 显示全部楼层
dffzh 发表于 2025-5-23 14:28
下面这个帖子对你有帮助吗?
https://cloud.tencent.com/developer/article/1461978

目前ITCM分配了64K,DTCM分配为0,现在遇到的问题是调试过程中芯片死机,同时Jlink和KEIL也会中断不能恢复,读不到寄存器信息,也用了cm_backtrace工具,一样不能输出信息,找不到问题,不确定和DCM分配是否有关
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

54

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部