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.

[参考译文] TMS570LS1227:F021库的预取中止

Guru**** 2524550 points
Other Parts Discussed in Thread: TMS570LS0714

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/839510/tms570ls1227-prefetch-abort-with-f021-library

器件型号:TMS570LS1227
主题中讨论的其他器件:TMS570LS0714

您好!

我遇到的问题与"TMS570LS0714:F021操作将在允许 FIQ 中断的情况下中止预取"主题中的问题完全相同(由于 TI 论坛软件出现故障、无法提供直接链接)。  它被 ti 标记为"已解决"、但就我所见而言、f.k 已全部解决。

当我单步执行 RAM 中运行的 F021函数时、一切都很完美。   当我运行代码时、它失败并出现预取中止。   我没有启用 FIQ、这将需要我正在擦除的闪存组。

我查看了 TI 提供的示例引导加载程序软件、并使用了链接器脚本的部分以及在我更正其中的一个主要故障后可以正常工作的复制到 RAM 函数(我无法自行确定链接器脚本); 是否有 TI 提供的文档?)。

那么、为什么软件在单步执行时起作用、为什么它在自由运行时会崩溃?   实现完全符合 TI 文档 SPNU501H。

有什么想法 F021软件崩溃的原因?

此致、

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

    大家好、哈根、

    在闪存 API 内部未禁用中断、您能否在 调用闪存 API 之前尝试禁用中断?

    谢谢、

    David

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

    尊敬的 David:

    是的、谢谢、这很成功。

    作为建议、您可能应该在您的闪存库中执行该操作。   

    此外、应该在那里复制到合适的 RAM 位置。  您是否真的认为普通 CCS Eclipse 用户能够从(闭源码)对象库中提取所有内部函数并将其包含在某些加密链接器命令中?  您的 F021应用手册不包含有关该操作的任何详细信息。

    此致、

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

    大家好、哈根、

    感谢您的建议。

    您的评论有效。 F021缺少一些很好的示例。  

    仅供参考:我们刚刚发布了一些由应用团队开发的示例。

    https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/839983

    我相信 bl_flash.c 对于 您 来说会很有帮助、可作为此链接中的参考。

    https://git.ti.com/hercules_examples/hercules_examples/trees/master/Bootloaders/SafetyMCU_Bootloaders/source

    此致、

    周德伟