您好,
我们目前正在测试FRDM-S32K344上从App1到App2的应用程序跳转。
我们的应用程序布局如下:
应用程序1起始地址: 0x00400000
应用程序2起始地址: 0x00500000
为了进行调试,我们使用了启用闪存保护的独立调试配置。
调试App1时,内存保护范围配置如下:
0x00500000 到 0x005FFFFF(用于保护 App2)
调试App2时,内存保护范围配置如下:
0x00400000 到 0x004FFFFF(用于保护 App1)
然而,在通过调试配置进行编程时,我们发现即使已经配置了内存保护范围,受保护的闪存区域仍然会被擦除。
请问有人能解释一下以下问题吗?
Flash Programmer 在擦除/编程操作期间是否应遵守配置的内存保护范围?
是否需要进行任何额外的配置来防止受保护的闪存区域被擦除?
有没有人成功地使用内存保护功能,在 FRDM-S32K344 上只编写一个应用程序的同时,保留另一个应用程序?
任何指导或建议都将不胜感激。
谢谢!
我在相同版本的 S32 Design Studio 中进行了快速测试,以确保它能够正常工作。我使用了相同的设置——一个应用程序被强制使用 0x40_0000 地址,而 0x50_0000 地址区域配置为保留;第二个应用程序被强制使用 0x50_0000 地址,而 0x40_0000 地址区域配置为保留:
以下日志显示此配置已被应用:
而且我可以看到内存中的内容确实被保留了下来,所以它运行正常。
我从你的截图中看到你配置了地址范围,但是“保留此范围”复选框没有启用。问题不就出在这里吗?
此致,
Lukas
你好 @lukaszadrapa
谢谢回复,是的,正如您所说,复选框确实是问题所在,现在一切正常了。