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.

[参考译文] TMS570LC4357:Fapi_initiatalizeFlashBanks 挂起或返回 Fapi_Error_OtpChecksumMismatch

Guru**** 2537540 points
Other Parts Discussed in Thread: TMS570LS3137

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/865679/tms570lc4357-fapi_initializeflashbanks-hangs-or-returns-fapi_error_otpchecksummismatch

器件型号:TMS570LC4357
主题中讨论的其他器件:TMS570LS3137

您好!
我正在尝试在特权 模式下初始化闪存组、如下所示:
静态 constexpr uint32_t kHclk频率= 150U;
 
Fapi_StatusType initialization_status_= Fapi_initializeFlashBanks (kHclkFresquencyMHz);
 Fapi_initializeFlashBanks()行为不一致 且取决于生成。 它挂起或返回 Fapi_Error_OtpChecksumMismatch。 RWAIT 和 EWAIT 值分别为3和9。  如果在调用 Fapi_initiatizeFlashBanks()之前将它们设置为任何值,则 API 会挂起。
库信息:F021_API_CortexR4_BE_L2FMC_V3D16.lib
ApiMajorVersion = 2、ApiMinorVersion = 1、 ApiRevision = 1、ApiBuildNumber = 830
注意:在 F021_API_CortexR4_BE_V3D16.lib 和 kHclkFrequencyMHz = 180U 的情况下、TMS570LS3137的代码同样正常。
提前感谢您!
R.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    对于 HCLK=150MHz、RWAIT=3 是正确的、而用于 LC43x 的 API 库也是正确的。 请启用 管道模式:flashWREG->FRDCNTL

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

    QJ Wang、您好!

    非常感谢您的回答! 似乎已启用流水线模式。 我仍然尝试按如下方式设置控制它的位:
    flash_control_register->FrdCntL.FRDCNTRL_bits。PFUENA = 1U;
    我还尝试了*不*来定义`ë_L2FMC`宏(这是正确的吗?) 并将该位设置为
    flash_control_register->FrdCntL.FRDCNTRL_bits。ENPIPE = 1U;
    在这两种情况下、该位都已预先设置、设置它不会更改 API 行为。 它仍然挂起。
    我是否正确启用了流水线模式、如果是、我还应该尝试其他什么?
    谢谢!
    R.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、正确。 我使用了相同的设置、但没有看到问题。

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

    当然、感谢您的回复。

    无论设置如何、都会启用流水线模式、但会出现 API 挂起的问题。

    您建议做什么?

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

    您好!

    附件是我的 CCS 项目。 您可以将其用作测试 FlashAPI 的参考。 我可以将64个字编程到闪存中、而不会出现任何问题。

    e2e.ti.com/.../2318.TMS570LC4357_5F00_FlashAPI_5F00_Test.7z

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

    谢谢、QJ! 我将查看并告诉您它是如何工作的。

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

    您好 QJ、

    再次感谢您的示例。

    我发现我们以 完全相同的方式使用了 Fapi_initializeFlashBanks (150U)。 闪存库二进制文件也是相同的。 我们都  定义了`_L2FMC`宏。 我注意到您没有设置 EWAIT/RWAIT 寄存器。 基本上、您从 Fapi_initializeFlashBanks (150U)开始、这也正是我最初所做的。

    • -如果我从对`Fapi_initializeFlashBanks (150U)`的调用开始(正如您所做的那样、不设置任何寄存器)、它将返回`Fapi_Error_OtpChecksumMismatch`。
    • -设置 EWAIT/RWAIT/PFUENA 似乎没有必要,因为它们从一开始就具有正确的值。 但是、如果我在调用 `Fapi_initializeFlashBanks (150U)`之前尝试设置任一个、则 API 会挂起。

    我还应该尝试其他什么?

    谢谢、

    R.

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

    您好!

    我的项目在您的电路板上是否正常工作?

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

    您好 QJ、

    请参阅我之前的消息...

    我使用 API 的方式与您在项目中所做的相同。 我没有将您的项目部署到我的板上。 不过、这值得尝试、您能否提供有关如何部署的说明。 没有 CCS 是否可行? (我无法获得 CSS 工作)。

    谢谢、

    R.  

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

    您好!

    RWAIT 在 HL_System.c 的 setupFlash()中设置 当 HCLK=150MHz 时、RWAIT = 3。

    此函数在 hL_sys_startup.c 中调用

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

    您好!

    您是否已解决此问题?

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

    您好 QJWang

    我有同样的问题、我遵循了此帖子中的所有建议。 但是。 Fapi_initializeFlashBanks (150)调用也会对我执行中止操作。

    我能够在电路板上成功运行您的示例代码。 在调用 Fapi_initiatizeFlashBanks()之前是否可以检查其他寄存器状态以确保正确设置我的器件?

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

    您好!

     每次调用 Fapi_initializeFlashBanks (150)时、代码是否会运行为中止? 您能简单地为我发布您的项目吗? 谢谢