你好,
在一个快速备用示例项目中,我定义了一个数组 编曲 在 .standby_data 虽然代码中包含这个数组,但它在代码中并没有被使用。然而,如果我注释掉这个数组定义,设备就无法从快速待机状态唤醒;如果我保留它,唤醒功能就能正常工作。此外,我还注意到优化级别也会影响设备的行为: -O0 优化失败,唤醒失败,但正在更改为 -Os 这样就能解决问题。为什么在……中定义变量会起作用? .standby_data 该部分是否会影响唤醒功能?为什么优化级别会产生如此大的影响?
Jason22_0-1785895168596.png
S32K312 RTD400 S32DS
BR,
杰森
嗨@ Jason22
程序中是否注释掉“arr”数组会影响__BSS_SRAM_START的值,该值将用作快速唤醒后MSP的初始值。
如果这个值太小,可能会导致堆栈溢出。
在我们的示例项目中,我们建议将此值设置为 0x20408000,这是备用 RAM 的结束地址。