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.

[参考译文] TMS320F28P559SJ-Q1:为什么可以使用循环函数擦除闪存?#39

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1588085/tms320f28p559sj-q1-why-the-flash-can-t-be-erased-using-a-loop-function

器件型号: TMS320F28P559SJ-Q1

您好的团队、

我向我的客户询问这个问题。

我的客户 Wiite 了一个函数来擦除闪存、如下所示、num 是扇区编号

image.png

image.png

它们首先将数据编程为 0x9C400、可以成功地将数据编程到该扇区。 他们将数字设置为 110~115、发现无法擦除扇区 110~扇区 115、这意味着在循环之后、数据仍然存在于 0x9C400(扇区 113)中、并且闪存 API 不返回错误

然后他们不使用此循环、他们只使用 Fapi_issueAsyncCommandWithAddress () 函数直接擦除 0x9C400(113 扇区)、就可以成功擦除此循环

image.png

然后、他们将闪存地址更改为 0x82C00、并使用循环擦除功能成功擦除此地址。

你能帮助找出这种现象的原因吗?

我上传演示工程:tidrive.itg.ti.com/.../169523ec-37df-4e2c-b0f6-376643554e60

您可以在 LaunchPad 中尝试

BRS

Shuqing

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

    尊敬的 Shuqing:

    我 将审查代码、并尝试在我结束时重现问题、然后返回给您。

    此致、

    Rajeshwary

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

    此问题已解决 — 已通过电子邮件关闭。

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

    你(们)好  

    我们解出函数参数应该定义 unit32 而非 unit16