单片机/MCU论坛
直播中

贺服窍

7年用户 890经验值
私信 关注
[问答]

XMC4200的EEPROM仿真时,EEPROM数据都被擦除了的原因?

你好,我们在 XMC4200 的 EEPROM 仿真中遇到了问题。发现的问题------------------- 我们使用 DAVE™ 应用程序分配了 70 字节的内存,但实际上,我们使用了 92 字节的内存。读写操作进展顺利,没有发现任何问题。 当微控制器开启时,所有EEPROM数据都被擦除了,所有数据都为零。 这在之前的 POWER_DRILL2GO 上 POWER_DRILL2GO 下行周期中没有观察到。 我们试图向该位置写入新数据,但无法访问。 我们检查了名为 " e_eeprom_xmc4_updateFlashContents " 的 API 返回的是 " E_EEPROM_XMC4_STATUS_WRITE_ERROR "。 然后进一步调查发现,API " e_eeprom_xmc4_lwritetoFlash " 返回了错误。这是它返回错误的条件。      if ((xmc_flash_getStatus ()   (uint32_t) (XMC_FLASH_STATUS_VERIFY_ERROR) |  XMC_FLASH_STATUS_OPERAtiON_ERROR))!= 0) {      status = E_EEPROM_XMC4_STATUS_WRITE_ERROR;      break;    }当我们擦掉整个闪存时,它又开始工作了。 所有读/写操作均正常运行。问题。--------------EEPROM是如何在微控制器 POWER_DRILL2GO 时被完全擦除的。为什么写入操作受到限制。整个闪存擦除后,EEPROM 如何重新开始运行。如何解决这个问题。有什么办法可以重现这个问题吗。

回帖(1)

维生素B2

2024-1-18 17:39:03
以下是可能导致EEPROM数据被擦除的一些原因:

1. 分配的内存大小不够:您提到使用了70字节的内存,但实际上使用了92字节。如果分配的内存不足以容纳实际写入的数据,那么可能会发生覆盖并且导致数据擦除。

2. 未正确保存数据:在EEPROM仿真中,数据通常在断电后仍然保持。如果您的代码没有正确保存数据到EEPROM中,那么在微控制器重新启动时数据将被擦除。

3. API调用错误:您提到使用的API返回了"E_EEPROM_XMC4_STATUS_WRITE_ERROR"。这可能表示在尝试写入EEPROM时发生了错误,导致数据被擦除。您可以进一步检查API的使用方式以及任何可能导致错误的参数或配置。

为了解决问题,您可以采取以下步骤:

1. 确保您正确分配了足够的内存空间用于存储数据。

2. 检查您的代码,确保在适当的地方保存数据到EEPROM中,以便在断电后仍然保持。

3. 仔细检查API的使用方式,确保传递正确的参数和配置。如果可能,查阅相关文档以了解API的正确使用方法。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分