S32K310MCU SRAM过载
各位兄弟们,慎重使用S32K310这个MCU的RTD包。
目前NXP稳定版本的RTD6.0存在SRAM空间和FLASH空间占用过大的问题。
我接下来的内容基础是S32DS 3.6.2、RTD6.0.0、FreeRTOS11.1.0如果你使用的版本与我的不同,建议根据你的实际使用版本再检查下
如果你是使用的是S32K3系列其他型号的MCU出现SRAM/FLASH overflowed问题,也可以按照我的内容检查下。万一就差那么一点就过了呢
SRAM过载
在RTD包中部分外设的操作中都有操作变量msr_BASENXP_EXCLUSIVE_AREA_00和reentry_guard_BASENXP_EXCLUSIVE_AREA_00
这两个变量的长度等于MCU的核心数,但是问题在于核心数并没有和芯片的型号相关联。这就导致NUMBER_OF_CORES的数量一直是4。
这个问题只对于S32K310有较大的影响,这是因为S32K310只有16K的SRAM,而且NXP还将SRAM分了4个区
可以修改NUMBER_OF_CORES的值为1,或者直接删除这个变量
修改前后差异可以阅读
https://community.nxp.com/t5/S32K/S32K310-SRAM-overflowed/m-p/2265998?profile.language=en
FLASH过载
FLASH的占用也很浪费,检查.map文件可以发现很多SchM_Enter_Gpt_GPT_EXCLUSIVE_AREA_xx格式的函数,这些函数你去查询的话就会发现很多都没有被使用。

这些函数别看每个都不大,但是它数量多啊,而且不知道为什么没有被编译器自动优化掉。
可以把这一块代码删除掉用于释放FLASH空间。
更多推荐
所有评论(0)