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.

[参考译文] TMS320F28388D:闪存 API 擦除时间

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1520447/tms320f28388d-flash-api-erase-times

器件型号:TMS320F28388D

工具/软件:

你好,当我阅读 Fapi_issueAsyncCommandWithAddress 函数使用此函数  fapi_eraseSector
说明符应该擦除一个扇区,但当我在实时系统中使用它时,它会导致计时故障,即使我只使用它。

我能解释为什么吗?
当我在 fapi 文档中阅读时、该函数只发出 erase 命令并返回以下值:
但对我来说似乎需要很长时间、我的周期约为 20kHz、我希望擦除在该限制范围内进行。

我将使用 C2000 F2838x 架构创建一个 EEPROM 仿真器。

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

    您好、Michael:

    您能解释一下您到底在问什么吗? 数据表中提供了典型的闪存扇区擦除时间 (7.10.4.1)。  

    您是否询问可以采取哪些措施来减少调用 Fapi_issueAsyncCommandWithAddress() 函数所需的时间?

    此致、

    Skyler

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

    因此根据数据表、该命令是异步命令、不应该停止我的程序运行、但我会中断程序流、我的问题是什么 Fapi_issueAsyncCommandWithAddress 实际执行时间及其在运行主程序后对我的主程序有何影响。

    谢谢、

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

    您好、Michael:

    是否正在等待擦除操作完成? 例如、在调用 Fapi_issueAsyncCommandWithAddress 之后的示例中通常添加了以下行。

    //
    // Wait until the erase operation is over
    //
    while (Fapi_checkFsmForReady() != Fapi_Status_FsmReady){}
    

    对于周期为 50 微秒的实时系统、在 FSM 准备就绪之前、您不应该等到、如上所示。 在我的设置中运行该命令时、完成 Fapi_issueAsyncCommandWithAddress 函数只需要大约 1.3 微秒。

    此致、

    Skyler

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

    我根本不等待我运行命令“clean"我“我的意思是我运行:
    Fapi_issueAsyncCommandWithAddress (Fapi_Erase 扇区、(uint32_t *) FLASH_BANK_SELECT);

    然而,与微控制器的同步在一段时间内失败,好像他忙了几毫秒。

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

    您好、Michael:

    您如何执行此同步? 您能否测量在您的设置中运行 FAP 命令所需的时钟周期数? 在 CCS 中连接 CPU1 并选择 Run -> Clock -> Enable 后、您可以在左下角查看 CPU 时钟周期。 您可以在命令前面设置一个断点、通过双击周期计数来清除周期计数、然后运行到 FAP 调用之后的下一行代码。 您应该会看到该命令未在毫秒刻度上运行。

    此致、

    Skyler

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

    是的、~我没有误认为擦除命令需要大约 400 μ s 的时钟周期、这对于我的同步故障原因很陌生。

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

    您好、Michael:

    好的、因此 FAP 命令似乎并不是时序故障的原因。 FAP 命令之后是否发生了可能导致该问题的事情? 此外、您是从闪存还是 RAM 运行 Fapi_命令 吗?

    此致、

    Skyler

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

    从 RAM 中,当我跟踪它时,我可以看到它的唯一命令,它的执行导致它,也许它与微控制器使用率%有关。

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

    您好、Michael:

    您能否确认调用闪存 API 函数的函数也在从 RAM 运行? 后台可能会发生一些其他闪存操作(读取)。

    此致、

    Skyler

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

    我会仔细检查一下、确认一下、然后我将在这里写下

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

    您好、Michael:

    好的、请告诉我您找到了什么。

    -斯凯勒