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:TMS570LS3137:在运行时写入闪存

Guru**** 1133960 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/1252675/tms570ls3137-tms570ls3137-writing-flash-during-runtime

器件型号:TMS570LS3137

对于 TMS570LS3137处理器、是否可以在运行时写入闪存? 我认为它在"Flash API"中可用、但我无法找到使用方法和方法。

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

    尊敬的 Ktmn:

    我认为它在"Flash API"中可用、但我找不到如何使用和使用什么。

    请参阅 "F021 Flash API"库参考指南、并了解不同的 API。

    F021闪存 API 参考指南(v2.01.00)(修订版 H)(TI.com)

    我创建了一个简单示例并进行了测试、这里是:

    e2e.ti.com/.../2474.FAPI_5F00_TEST_5F00_LS3137.zip

    --
    谢谢。此致、
    Jagadish。

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

    非常感谢您的回答和示例。

    当我编辑您的闪存示例时、它适用于 Bank1和 Bank7、但当我尝试对 Bank0进行写入时、它未显示在"Fapi_setActiveFlashBank (Fapi_FlashBank0)"函数中、并且不会继续。

    我在 Bank1和 Bank7中不存在此问题。

    这样做的原因是什么?

    再次感谢您的答复。

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

    尊敬的 Ktmn:

    当我编辑您的闪存示例时,它可以对 Bank1和 Bank7正常工作,但当我尝试写入 Bank0时,它没有显示在"Fapi_setActiveFlashBank(Fapi_BankFlash0)"函数中,它不会继续。

    这是预期行为:

    请参阅以上 FAPI 参考指南中突出显示的行。 "F021闪存 API 库无法与活动存储体从同一存储体中执行
    使 API 命令在"上操作"。

    这意味着如果 FAPI 库存储在闪存组0中、那么您不应该在组0上执行 FAPI 命令。

    (+) F021闪存 API 库-(Hercules)能否对同一组中的一个扇区进行编程? -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    如果您确实要执行此操作、则应将所有闪存 API 从闪存组0复制到 RAM。 一旦将闪存 API 复制到 RAM、则可以擦除和写入闪存组0中的扇区。

    为此、请参阅以下主题:

    (+) TMS570LC4357:F021 API 将数据从闪存复制到 RAM 时出现问题-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    --

    谢谢。此致、
    Jagadish。

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

    您完全正确。 再次感谢您的参与。

    我一直很忙、但我还有最后一个问题。 在您的示例中、ECC 的模式是"Fapi_AutoEccGeneration"。

    据我所知、ECC 是在这种模式下针对给定数据生成的。

    但我怎么能读这个 ECC 或我误解了。 如果生成了 ECC、如何查找该 ECC 的地址?

    再次感谢您。

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

    尊敬的 Ktmn:

    据我所知,由于这种模式,ECC 是为给定数据生成的。

    是的、这种编程模式将为相应数据生成 ECC、并将 ECC 写入相应的 ECC 段。

    但是我怎么能阅读此 ECC 或误解。 如果生成了 ECC、如何查找此 ECC 的地址?

    请参阅 TRM 中的 ECC 部分

    另请参阅 TRM 中的 FMC 章节、

    --

    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    非常感谢您的答复。

    该函数会生成 ECC、当我查看与 ECC 对应的地址时、我只会看到一个问号(??????? )。

    因此、我不确定它写入的确切位置。 例如、 当将 ECC 写入 RAM 时、只有该 ECC 字段显示为问号(??????? )、但在"Flash Data Space ECC"(闪存数据空间 ECC)中、所有地址都显示为问号(??????)  闪存 ECC 启用。

    我该如何阅读或确保?

    谢谢、此致。

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

    Jagadish、您好!

    我们解决了之前的问题、现在可以读取 ECC、但现在在"Fapi_issueProgrammingCommand"函数的最后一个参数中输入的 ECC 值以及在"Fapi_AutoEcc_Generation"和"Fapi_calculateEcc"函数中计算的 ECC 值会针对相同的数据和地址给出不同的结果。

    我可以知道原因吗? 我应该信任哪个?

    -Fapi_AutoEcc_Generation?
    - fapi_calculateEcc?

    谢谢、此致。

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

    尊敬的 Ktmn:

    我需要在结束时对其进行调试、
    您能分享您的代码吗? 以便我能够了解您是如何调试该问题的。

    --
    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    我解决了这个问题。 问题与我的算法有关。  

    谢谢。此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我解决了问题。 问题与我的算法有关。  [/报价]

    很高兴听到您自己解决了问题。