FAQWakeUp例程中,启动文件为什么有两个SRAM初始化函数

如上面题目描述,WakeUp例程的StartUp_cm7.s中,使用了两个SRAM初始化函数,为什么不在复位后直接对所有SRAM进行初始化
更新时间:2022.03.07 浏览量:0

S32K3的RAM分为2部分:

  1.     Standby RAM(32KB)

  2.     SRAM

默认的SRAM初始化函数init_data_bss(),在每次复位后都会对SRAM进行初始化(将全局变量拷贝到对应段,清除BSS段)

而另一个SRAM初始化函数FastWkup_StandbyRAMECCInit()的对SRAM进行初始化前(初始化ECC,拷贝全局变量到对应段)会先判断本次复位原因,如果属于唤醒复位,则不对SRAM进行初始化,即,可以符合S32K344唤醒之后StandbyRAM内容保持的特性。

若属于POR,则初始化ECC并将全局变量拷贝到SRAM

  • 上一篇:WakeUp为什么要使用自己定义的向量表
  • 下一篇:休眠唤醒流程中,pad keeping无法正常工作