S32K146芯片在编译过程中爆出如下错误:

S32K146芯片在编译过程中遇到“section `.bss‘ will not fit in region `m_data‘”的问题_python

 查看ram.ld文件,查看内存分配

S32K146芯片在编译过程中遇到“section `.bss‘ will not fit in region `m_data‘”的问题_c++_02

看ram.ld文件,结合告警信息,应该是m_data的空间占用超出了分配大小。

代码使用了RTOS,会分配一个总得heap空间,如果该heap空间加上APP代码使用的RAM空间超过总得RAM大小,就会出现heap空间不足的告警。

S32K146芯片在编译过程中遇到“section `.bss‘ will not fit in region `m_data‘”的问题_c语言_03

现在分配的heap空间为:56*512,尝试着将该值减小,改为:20*512,再次编译代码

S32K146芯片在编译过程中遇到“section `.bss‘ will not fit in region `m_data‘”的问题_内存分配_04

此时发现代码编译通过,确实是RTOS分配的heap空间加上代码使用的RAM空间超过RAM总得空间。

虽然暂时通过缩减RTOS的heap空间来规避该问题,但是为了系统稳定,更应该保持分配的RTOS的heap空间,想办法优化APP代码使用的RAM空间,从而降低整体代码的RAM空间使用率。