本周,当我在集成开发环境中为 S32K310 项目构建外设时,它报告了 SRAM 溢出错误。
@Smartling Language Service
但是,我的项目是全新的,主功能是空的。根本没有应用代码,我只是为我的 MCU 配置了必要的外设。
我检查了 demo_310.map 文件,以确定内存使用过多的原因。
我发现 RTD 代码包中的一个文件占用了大量的 SRAM 空间。K310 的 SRAM 地址范围为 0×20400000 至 0×20404000,但现在的地址分配已达到 0x20404200。
仅 RTD/src/SchM_Gpt 文件就占用了超过 2KB 的空间。我知道 S32K310 MCU 的外部 SRAM 空间只有 16KB,我相信 RTD 软件包中肯定存在一些问题。
我打开了相应的文件,发现了下图所示的问题。
如图所示,在文件中,变量定义的长度设置为 4。我知道这是为多核系统准备的。但是,在我目前使用只有一个内核的 S32K310 的项目中,RTD 软件包仍然将内核数量设置为 4。这会导致变量占用的空间扩大四倍。
调整核心编号配置并重建项目后,我可以看到 RTD/src/SchM_Gpt 占用的空间从 0x860 降至 0x218,这是相当可观的。
因此,请解释为什么像 S32K310 这样的单核设备仍然将内核数设置为 4。这是错误吗?
我使用的版本如下:
用于 S32 平台的 S32S32 Design Studio 3.6.2
S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_20250610
我还在附件中上传了我的项目文件,供您确认。
我非常期待您的答复,因为这对我很重要。
谢谢!
Hi@khty
我已经向 RTD 设计团队报告了这个问题,需要一些时间才能得到回复。
Hi@khty
我收到了设计团队的回复,他们确认这是一个错误。
目前,您可以手动将内核数改为 1。
当有正式的解决方法或版本修复时,我会再次通知您。