GD32H7 如何修改DTCM的大小
在把ITCM和DTCM修改成0后,芯片锁死,不能再下载代码,哪位大神知道是怎么回事 之前问过代理的技术,没有明确的回答,最后试出来ITCM分配64K,DTCM分配0程序可以正常转 没法直接修改 DTCM 大小吧我们。 可以通过分散加载文件来指定代码和数据的存储位置。通过这种方式,可以手动控制哪些数据或代码放入 DTCM。 GD32H7 的 HAL 库或 LL 库可能提供了一些配置选项,用于启用或禁用 DTCM。 ITCM 和 DTCM 是 GD32H7 芯片中用于高速访问的关键内存区域。ITCM 用于存储关键指令,DTCM 用于存储关键数据。如果将这些区域配置为 0,芯片可能无法正常启动或执行代码,导致锁死。 用 J-Link重新烧录固件。 芯片启动时,可能需要从 ITCM 加载关键启动代码。如果 ITCM 被禁用,芯片可能无法完成启动过程,导致无法进入调试模式或下载代码。 laocuo1142 发表于 2025-5-19 11:46没法直接修改 DTCM 大小吧我们。
可以通过配置选项字节配置大小 将ITCM和DTCM设置为0后可能会导致:
1、芯片无法正常执行内部Flash中的程序;
2、调试接口可能被禁用;
3、芯片进入不可恢复状态;
这个时候你试试通过ISP编程模式能不能重新下载程序。
检查硬件连接和电源是否有问题。 某些调试接口的实现可能依赖 DTCM 进行数据传输。如果 DTCM 被禁用,调试接口可能无法正常工作,导致无法下载代码。 建议不要随意禁用关键内存区域,尽量使用芯片厂商提供的官方工具和库进行配置,避免使用第三方工具导致的不兼容问题。 寒域吖 发表于 2025-5-19 11:03
之前问过代理的技术,没有明确的回答,最后试出来ITCM分配64K,DTCM分配0程序可以正常转 ...
我看了一下数据手册,DTCM和ITCM默认值好像是下面这个:
默认不配置状态下都不能正常运行程序吗?
下面这个帖子可以参考看下:
https://cloud.tencent.com/developer/article/1461978 似乎不应该,除非芯片设计有bug 你改它做甚呢?大小不合适? dffzh 发表于 2025-5-19 16:51
我看了一下数据手册,DTCM和ITCM默认值好像是下面这个:
默认不配置状态下都不能正常运行程序吗?
默认配置可以执行,但是项目里RAM占用比较多,需要缩小TCM内存的分配 寒域吖 发表于 2025-5-23 14:05
默认配置可以执行,但是项目里RAM占用比较多,需要缩小TCM内存的分配
下面这个帖子对你有帮助吗?
https://cloud.tencent.com/developer/article/1461978 dffzh 发表于 2025-5-23 14:28
下面这个帖子对你有帮助吗?
https://cloud.tencent.com/developer/article/1461978
目前ITCM分配了64K,DTCM分配为0,现在遇到的问题是调试过程中芯片死机,同时Jlink和KEIL也会中断不能恢复,读不到寄存器信息,也用了cm_backtrace工具,一样不能输出信息,找不到问题,不确定和DCM分配是否有关
页:
[1]
2