主题中讨论的其他器件:HALCOGEN
尊敬的 TI:
我正在尝试写入和读取闪存的扇区7 (0xF0200000)。 我可以这么做。 但问题是、即使加载用于 调试和执行擦除功能的代码、闪存也无法正确擦除。 擦除后、闪存中会留下一些随机的垃圾值、如下所示
有时闪存不会完全擦除、如下面的 s 所示
由于这个问题、我的数据在写入闪存时有时会损坏。 这是什么原因以及如何解决该误差。 请就此为我提供帮助。
此致、
Nagaraju M
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的 TI:
我正在尝试写入和读取闪存的扇区7 (0xF0200000)。 我可以这么做。 但问题是、即使加载用于 调试和执行擦除功能的代码、闪存也无法正确擦除。 擦除后、闪存中会留下一些随机的垃圾值、如下所示
有时闪存不会完全擦除、如下面的 s 所示
由于这个问题、我的数据在写入闪存时有时会损坏。 这是什么原因以及如何解决该误差。 请就此为我提供帮助。
此致、
Nagaraju M
您好、Wang、
在测试期间、我们尝试擦除 EEPROM 扇区编号0和1。 但是、擦除 EEPROM 扇区时没有收到任何错误。
此外、擦除相应的 EEPROM 扇区后 、我们尝试读取并检查每个地址的数据值是否为0xFFFFFFFF、我们找到了一些上面发布的非 F 值。
EEPROM ECC 空间的地址和大小是多少? 是否有任何用于检索已擦除 ECC 空间的解决方案?
如何检查 EEPROM 扇区是否被正确擦除?
您好!
闪存包装程序有两条总线、总线1和总线2。
CPU 使用总线1来访问闪存的正常扇区(组0和组1)、针对这些扇区存储程序和数据。 CPU 将使用总线2来访问 OTP 扇区、EEPROM 仿真闪存组。
当 CPU 通过总线1访问程序闪存(组0和组1)时、CPU 的内置 SECDED 逻辑将执行 ECC 检查。 请注意、这个 ECC 逻辑位于 CPU 内部、而不是闪存包装程序内部。
当 CPU 访问 EEPROM 和 OTP 扇区时、ECC 检查在闪存包装程序内完成。 原因是连接到闪存存储器系统总线2的 CPU 2级接口(AXI-M 总线)没有 ECC 检查功能。 因此、闪存包装程序有其自身的 ECC 逻辑、仅用于总线2访问。
缺省情况下、闪存包装程序内的 ECC 检查不被启用。 如果未启用、则在读取擦除的 EEPROM 时不会出现错误、因此读取值为0xFFFFFFFF。
如果通过向 EE_CTL1寄存器的 EE_EDACEN 位字段写入0x0A 来启用 ECC、则在读取擦除的 EEPROM 时将看到非 F 字节。
您好、 Monish、
我建议使用 FEE 驱动器将数据编程到组7 (仿真 EEPROM)。
EEPROM 允许用户重复擦除和重新编程应用程序中存储的数据。 TI FEE 驱动器提供一组软件函数、这些函数旨在将片上闪存存储器(组7)的扇区用作仿真 EEPROM。 应用程序透明地使用这些软件函数来写入、读取和修改数据。
请阅读 HalCoGen 安装文件夹中的用户指南:
TI FEE 用户 Guide.pdf
HALCoGen 提供 了一个使用 FEE 驱动器进行 EEPROM 读取/写入的示例: