我发现擦除闪存时无法进入定时器中断。为了满足我的需求,我计划在 RAM 中运行定时器中断。我修改了 linker_flash_s32k388.ld 文件,将 IntCtrl_Ip.o 和 Pit_Ip.o 放入 RAM 中,但是当我擦除闪存时,由于定时器中断的到来,我仍然会遇到错误。请告诉我我遗漏了哪些细节。#s32k388
你好,
只需放置 IntCtrl_Ip.o 和 Pit_Ip.o仅仅存入内存通常是不够的。在 PFLASH 擦除操作期间,CPU 必须避免对受影响的闪存阵列进行任何访问。
请确认中断向量表、PIT ISR、ISR 调用的所有函数以及 ISR 使用的任何数据/常量也位于 SRAM 中。此外,确保 VTOR 寄存器指向基于 RAM 的向量表。链接器映射文件通常是识别剩余闪存访问的最佳方法。
S32K3 参考手册还指出,当闪存操作需要持续执行时,代码执行必须移至 SRAM。
顺祝商祺!
Peter