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.

[参考译文] TMS320F280039:使用闪存 API 对同一地址进行两次编程

Guru**** 2394305 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1318605/tms320f280039-program-same-address-twice-using-flash-api

器件型号:TMS320F280039

大家好!

从闪存 API 文档中、有一个限制条件、即每个64位字在每个写入或擦除周期只能编程一次。  

但是、当我尝试对它进行两次编程时 、在某些情况下会成功、例如:

如果 testBuffer2[0]是0x00005a5a,则第二个写入命令可覆盖在第一个写入命令中被写入闪存的 testBuffer1[0]的0x5a5affff。

如果 testBuffer2[0]不是0x00005a5a,例如 0x000f5a5a,则第二个写入命令不起作用。

如何解释这一点?

谢谢。

挂起。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Hang:

    您使用的是哪种编程模式?  Fapi_Auto 预生成模式?  出于某种原因、图像没有下载供我查看详细信息。

    谢谢。此致、
    瓦姆西

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vamsi:

    很抱歉耽误你的时间。 是的、这是自动 ECC 生成功能。

    此致、

    挂起。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    挂起、

    只要您将位从1更改为0、编程命令就会成功。  但是、只有在这对于 ECC 存储器也适用时、才能成功。  当您针对给定的64位对齐闪存地址以及数据对 ECC 进行编程时(使用 Fapi_Auto ECCGeneration)、您可能会也可能无法再次成功地对该位置进行编程-这是因为在第一个编程命令期间会对相应的 ECC 空间进行编程、 当您在第二次或更高的迭代中对相应的闪存位置进行编程时、ECC 空间中编程的0可能会与由新 ECC 值产生的任何1发生冲突。   

    您还需要注意、按照闪存 API 指南和数据表所述、给定的64位位置只能编程一次。   

    谢谢。此致、
    瓦姆西

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vamsi:

    这很好地 解释了、谢谢回答!

    此致、

    挂起。