您好,NXP团队:
我正在使用以下环境开发一个S32K311项目:
MCU: S32K311
IDE: S32 设计工作室 3.6.7
RTD: S32K3_RTD_5.0.0_D2408_ASR_REL_4_7_REV_0000_20241002
AUTOSAR: 4.7
项目初期进展顺利。
随着项目的推进,我启用并配置了多个 RTD 驱动程序,包括 ADC、eMIOS、LCU、ICU、PIT、PORT、LPUART、LPSPI、TRGMUX、MCL 以及我的应用程序所需的其他外设。
集成这些驱动程序后,项目在链接阶段失败,并出现以下错误:
.non_cacheable_bss will not fit in region 'int_sram_no_cacheable' section .int_results overlaps section .non_cacheable_bss region 'int_sram_no_cacheable' overflowed by 440 bytes collect2.exe: error: ld returned 1 exit status
默认链接器脚本包含以下 SRAM 区域:
int_sram : ORIGIN = 0x20400000, LENGTH = 0x00003F00 int_sram_fls_rsv : ORIGIN = 0x20403F00, LENGTH = 0x00000100 int_sram_no_cacheable : ORIGIN = 0x20404000, LENGTH = 0x00003B00 int_sram_results : ORIGIN = 0x20407B00, LENGTH = 0x00000100 int_sram_shareable : ORIGIN = 0x20407C00, LENGTH = 0x00000400
链接器报告.non_cacheable_bss该部分超出分配的 int_sram_no_cacheable 区域约440 字节。
在 S32K311 上启用多个 RTD 驱动程序时,这种内存使用量是否正常?
是否有推荐的方法来减小 .non_cacheable_bss 的大小?
是否建议修改链接器脚本并增加 int_sram_no_cacheable 区域?如果是这样,S32K311 的推荐内存布局是什么?
是否有任何 RTD 配置选项可以减少分配给不可缓存部分的内存?
有人在集成多个RTD外设时遇到过类似的问题吗?
任何指导或建议都将不胜感激。
谢谢!
以下讨论帖可能对您有所帮助,因为它们讨论了类似的问题,并提供了一些有用的故障排除建议。
此外,还有一份 S32K3 应用笔记,更详细地解释了链接器文件和启动代码,包括如何修改和自定义内存区域。
AN14893 :S32K3xx 链接器文件和启动代码
最后一个帖子包含了与代码优化技术相关的一些建议。
BR,VaneB