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:如何将诊断功能 FLA10和 FLA11加载到 RAM 中?

Guru**** 2463330 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1124158/tms570lc4357-how-to-load-diagnostic-functions-fla10-and-fla11-into-ram

器件型号:TMS570LC4357

各位专家、您好!

我们正在尝试将 FLA10和 FLA11加载到 RAM 中以供执行。
我们使用的是 ARM 编译器、并遵循以下示例: https://developer.arm.com/documentation/ka003187/latest

我们所面临的问题是、当应调用函数时、我们会获得预取中止。

什么可能导致此问题?

谢谢、此致、
最大

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

     尊敬的 Max:

    [引用 userid="430202" URL"~/support/microcontrollers/arm-based microcontrollers-group/arm-based microcontrollers/f/arm-based microcontrollers-forume/1124158/tms570lc4357-how-to-load-diagnostic-functions-fla10-and-fla11-to-quote"我们正尝试加载 LAFRAM/FRAM[]并引用 FRAM[LA10]。

    我不熟悉 Keil 工具。 如果要从 SRAM 执行代码、则应手动将包含代码的段从闪存复制到 SRAM。

    您是否检查代码是否已复制到 SRAM?  

    在执行代码复制或执行闪存自检(FLA10/11)时、您是否获得了预取中止?  

    请检查 IFSR 和 IFAR 的状态以确定故障类型和导致中止的地址。 地中止始终是同步的。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="430202" URL"~/support/microcontrollers/arm-based microcontrollers-group/arm-based microcontrollers/f/arm-based microcontrollers-forume/1124158/tms570lc4357-how-to-load-diagnostic-functions-fla10-and-fla11-to-prefetch ]我们在获取函数时遇到的问题[引用时]。

    需要检查的事项:

    1. 是否已将 MPU 配置为向 RAM 授予执行权限?
    2. 如果将代码复制到 RAM 时已启用处理器高速缓存、则在 尝试调用 RAM 函数之前、您需要清理高速缓存以将数据高速缓存刷新到 RAM。 我看到调用 RAM 函数的预取中止无法执行、因为 RAM 中的"过时"数据可以加载到指令缓存中。 请参阅 TMS570LC4357:将函数移至 RAM