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.

[参考译文] TMS570LS3137:关于使用闪存 API 的一些问题(F021版本2.01.01)

Guru**** 2595805 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/741080/tms570ls3137-re-some-questions-about-using-the-flash-api-f021-version2-01-01

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

我正在尝试使用 F021闪存 API 从应用程序中擦除闪存组7的某个区域并对其进行编程。 我遵循 了 e2e.ti.com/.../430873中提供的指导 、但仍然遇到困难。

我正在使用 HALCoGen 生成处理器初始化代码。 HALCoGen 闪存选项卡指示所有闪存组均处于活动状态。 我还尝试从我的应用程序调用 TI_fee_Init(),但没有明显的效果。 (很清楚、我不打算使用 FEE 接口。 但是、上述主题表明、即使在使用 F021 API 时也可能需要执行此操作。)

我的测试程序基于 SPNA148中提供的示例代码。 我从第3节中列出的 main()函数开始。 在该代码中、注释为"Place specific example code here"、我调用一个函数来擦除闪存。 我已经尝试调用第3.3.1节中的组擦除代码和第3.3.2节中的扇区擦除代码、但没有效果。 当我在 Code Composer 中使用内存浏览器检查尝试擦除的内存时、它不会被擦除。

我在尝试擦除之后检查了 FLASH_CONTINL_REGISTER->fmstat.u32Register 的内容、在所有情况下它都包含0x00004010。

我出了什么问题? 我是否忽略了任何其他所需的初始化步骤?

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

    您好、Hugh、

     请查看随附的代码、看看是否与您的存在一些差异。

    附件是我尝试过的内容。 它在工作。

    e2e.ti.com/.../4532.sys_5F00_main.c

    此致、

    米罗

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

    米罗

    感谢您发送此示例。 我立即被下面的代码行所震惊。 作为函数调用的参数给出的值"80"似乎与下面注释中的"180MHz"不一致。 您能解释一下吗?

    oReturnCheck = Fapi_initializeFlashBanks (80);//示例代码假设运行频率为180MHz */

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

    您好!
    这应该是180... 我意外删除了“1”。 如果您使用的 HCLK 不同、它可能与180不同。

    此致、
    米罗

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在工作:)我的错误未在以下行中提供正确的值:

    FLASH_CONTRAL_REGISTER->Faddr.u32Register = 0xF0200000U;