FAQSRAM分区分布问题

Q:按照S32K1系列的SRAM配置,在软件中定义一个比较大的数组总会出现RAM溢出,而实际上根据map文件中的区域定义,并没有到达SRAM的最大值,出现此类问题的原因是什么,有什么方法处理此类错误?
更新时间:2022.03.12 浏览量:0

A:由于SRAM在物理上分成了两个Block,因此在S32DS默认的链接文件定义下,也会出现两个Block,而定义的未初始化数组或者是初始化的数据会由于链接文件文件的链接规则同样会变为不连续的两个空间,而定义的数组一般都需要连续的空间,连续的空间按照默认的链接规则会存放进同一个Bolck,一个Block的空间并不是总的SRAM空间,因此会产生此类错误。

避免类似错误的方式有两种,一种是顺从链接文件的定义规则,尽量避免定义非常长的数组;另一种,根据定义的数组调整SRAM每个Block的大小,但需注意不要超过芯片实际的SRAM中的存储空间。

  • 上一篇:SRAM 分区问题
  • 下一篇:S32K144 休眠问题