打印

GD32H7 如何修改DTCM的大小

[复制链接]
1400|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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。

使用特权

评论回复
5
flycamelaaa| | 2025-5-19 11:47 | 只看该作者
GD32H7 的 HAL 库或 LL 库可能提供了一些配置选项,用于启用或禁用 DTCM。

使用特权

评论回复
6
powerantone| | 2025-5-19 11:48 | 只看该作者
ITCM 和 DTCM 是 GD32H7 芯片中用于高速访问的关键内存区域。ITCM 用于存储关键指令,DTCM 用于存储关键数据。如果将这些区域配置为 0,芯片可能无法正常启动或执行代码,导致锁死。

使用特权

评论回复
7
classroom| | 2025-5-19 11:50 | 只看该作者
用 J-Link重新烧录固件。

使用特权

评论回复
8
stormwind123| | 2025-5-19 13:00 | 只看该作者
芯片启动时,可能需要从 ITCM 加载关键启动代码。如果 ITCM 被禁用,芯片可能无法完成启动过程,导致无法进入调试模式或下载代码。

使用特权

评论回复
9
寒域吖| | 2025-5-19 13:08 | 只看该作者
laocuo1142 发表于 2025-5-19 11:46
没法直接修改 DTCM 大小吧我们。

可以通过配置选项字节配置大小

使用特权

评论回复
10
dffzh| | 2025-5-19 13:16 | 只看该作者
将ITCM和DTCM设置为0后可能会导致:
1、芯片无法正常执行内部Flash中的程序;
2、调试接口可能被禁用;
3、芯片进入不可恢复状态;
这个时候你试试通过ISP编程模式能不能重新下载程序。


使用特权

评论回复
11
jcky001| | 2025-5-19 13:35 | 只看该作者
检查硬件连接和电源是否有问题。

使用特权

评论回复
12
probedog| | 2025-5-19 14:00 | 只看该作者
某些调试接口的实现可能依赖 DTCM 进行数据传输。如果 DTCM 被禁用,调试接口可能无法正常工作,导致无法下载代码。

使用特权

评论回复
13
cr315| | 2025-5-19 14:19 | 只看该作者
建议不要随意禁用关键内存区域,尽量使用芯片厂商提供的官方工具和库进行配置,避免使用第三方工具导致的不兼容问题。

使用特权

评论回复
14
dffzh| | 2025-5-19 16:51 | 只看该作者
寒域吖 发表于 2025-5-19 11:03
之前问过代理的技术,没有明确的回答,最后试出来ITCM分配64K,DTCM分配0程序可以正常转 ...

我看了一下数据手册,DTCM和ITCM默认值好像是下面这个:

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

使用特权

评论回复
15
dffzh| | 2025-5-19 17:20 | 只看该作者
下面这个帖子可以参考看下:
https://cloud.tencent.com/developer/article/1461978

使用特权

评论回复
16
zchong| | 2025-5-19 20:32 | 只看该作者
似乎不应该,除非芯片设计有bug

使用特权

评论回复
17
zhouyong77| | 2025-5-20 08:09 | 只看该作者
你改它做甚呢?大小不合适?

使用特权

评论回复
18
寒域吖| | 2025-5-23 14:05 | 只看该作者
dffzh 发表于 2025-5-19 16:51
我看了一下数据手册,DTCM和ITCM默认值好像是下面这个:

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

默认配置可以执行,但是项目里RAM占用比较多,需要缩小TCM内存的分配

使用特权

评论回复
19
dffzh| | 2025-5-23 14:28 | 只看该作者
寒域吖 发表于 2025-5-23 14:05
默认配置可以执行,但是项目里RAM占用比较多,需要缩小TCM内存的分配

下面这个帖子对你有帮助吗?
https://cloud.tencent.com/developer/article/1461978

使用特权

评论回复
20
寒域吖| | 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

粉丝