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:在引导加载程序期间运行 FAPI F21库对闪存进行编程时遇到问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/733557/tms570ls3137-having-trouble-running-fapi-f21-libraries-to-program-flash-during-bootloader

器件型号:TMS570LS3137

帮助、

在引导加载程序 UART 示例代码中使用以下 API 调用时  

Fapi_BlockErase

Fapi_initializeFlashBanks

Fapi_setActiveFlashBank

Fapi_enableMainBankSectors

 Fapi_issue19 CommandWithAddress

我可以单步执行这些函数、但 当我运行这些函数时、我最终陷入 undef_entry 或 prefetch_entry。  

我们将调用  Fapi_initiataleAPI (((Fapi_FmcRegisterType *) F021_CPU0_register_address、(uint32_t) SYS_CLK_FREQ); 其中 SYS_CLK_FREQ = 160和 F021_CPU0_REGISTER_ADDRESS = FFF87000

我们正在从 RAM 运行 F21和 BL_FLASH。 请提供任何帮助。

谢谢、

Ron  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    顺便说一下、当我切换到使用 BANK1时、一切都很好、我可以对闪存进行编程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ron:

    您需要从 SRAM 或另一个闪存组执行所有与闪存 API 相关的代码和数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢主席先生,
    我们从 RAM 运行、但仍然不幸运。 我们可以在使用闪存 API 的同时使用调试器吗?

    我能够使 FAPI 库从 SRAM 运行、但无法使运行时支持库与我们的应用程序一起从 RAM 运行。

    我有2个中断、RTI Compare0和 SCI Rx/Tx。 我们在调用 BL_FLASH 函数之前尝试禁用中断。

    任何建议都很有用、
    Ron
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ron:

    您是否在引导加载程序中解决了闪存编程问题? 很抱歉我迟到了回复。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ron、

    在 bl_link.cmd 中、请将 bl_flash.obj (.const)段添加到 flashAPI 段中。 BL_FLASH[]数据表(常量数据)由 BL_FLASH.c 使用 除非.const 段也位于 RAM 中、否则执行可能会在以下行的 BL_FLASH.c 中挂起:

    while (fapi_get_FSM_status!= fapi_Status_Success);

    如果 bl_ymodem.c 调用 memcpy、最好也将 memcpy 放置到 RAM 中。