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:TMS570LS1227:F021 v02.01.01 API 会导致预取中止

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1108513/tms570ls1227-tms570ls1227-f021-v02-01-01-api-causes-prefetch-abort

器件型号:TMS570LS1227

大家好、

我将 TI 的闪存 API V2.01.0用于 TMS570LS1227。  我正在与 您分享我的代码、这些代码会落入无限循环。 我在代码中看到了两个不同的错误。 当我在调试模式下直接按“播放”按钮时, 代码会运行到 Fapi_BlockErase 函数中(在 F_API_2.PNG 中),代码会进入第201行(Picture BlockEraseFunction)的无限循环,但当我暂停调试时,代码会进入预取中止页面。 但是,如果我 将其与“StepOver”按钮一步一步地配合使用,我可以传递 BlockErase 函数,代码可以在闪存组在调试模式下运行到第439行 Fapi_issue_ProgrammingCommand 函数(图片 F_API_1)的无限循环后使其变得容易。 然后、我停止了代码并在调试模式下在闪存中看到了我的两个字节数据。

 此外,在  进入 fapi 函数之前,我还使用了三个不同的禁用中断函数(_disable_interrupt_()/_disable_IRQ_interrupt_())。

您能不能提供这方面的不同信息,也能提供 TMS570LS1227的闪存编程代码示例吗?

  

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

    您好、Onur、

    F021闪存 API 和相关代码/常量是否已复制到 RAM 中并从 SRAM 中执行?

    在您的示例中、与 API 相关的代码是 bl_flash.c。 您可以使用这种方法将段映射到 RAM,然后将该段复制到 main()中的 SRAM:

    部分

    .intvecs:{}>向量

    闪存 API:

      .\source\fapi_UserDefinedFuncations.obj (.text、.data)
      .\source\BL_flash.obj (.text、.data)
      --library="c:\ti\hercules\F021闪存 API\02.01.01\F021_API_CortexR4_be.lib"(.text、.data)
    }palign = 8 load = FLASH0、run = SRAM、load_start (apiLoadStart)、run_start (apiRunStart)、size (apiLoadSize)

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

    谢谢你王先生、我在别人的问题上看到了同样的答案、我问了这里 、然后使用了这个代码片段、解决了这个问题。

    我可以在下面这个主题中提出有关 fapi 的不同问题吗?

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

    您好、Onur、

    我想为不同的问题打开一个新的主题。 谢谢