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.

[参考译文] TMS320F2.8377万D:闪存API在执行Flash Fapi_setActiveFlashBank时挂起

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/572428/tms320f28377d-flash-api-hangs-on-flash-fapi_setactiveflashbank-execution

部件号:TMS320F2.8377万D

支持路径:/Product/开发和故障排除/

尊敬的各位:

我们正在开发一种需要读/写闪存的应用程序,并且我们正在使用TI提供的闪存API。

我们遵循了flash_programming_cpu01示例中提供的步骤,这些步骤基本上是:

  • 将关键函数(从ramfuncs部分)复制到RAM  
  • 执行设置等待状态的InitFlash
  • 执行eSeiz造FlashPump
  • 执行Fapi_initializeAPI
  • 在Fapi_FlashBank0上执行Fapi_setActiveFlashBank

在开发开始时,此序列工作正常,但是在添加更多代码后,Fapi_setActiveFlashBank函数开始挂起,并且从不返回。  

最初,我们认为这可能是一个与将闪存功能加载到RAM有关的问题,我们增加了负载ramfuncs中使用的RAM扇区的大小,但没有成功。  

我们开始调试到反汇编Fapi_setActiveFlashBank函数,发现调用Fapi_setupFlashStateMachine似乎会产生问题

是否有人遇到类似问题? 欢迎就如何解决问题提出任何建议!

此致,

罗杰。

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

    Roger,

    在对代码进行某些编辑之前,它已经工作了,这一事实告诉我函数本身不是问题。

    检查地图文件并查看此函数的位置。  确保应用程序本身(或堆栈溢出)未覆盖加载此函数的ramfuncts RAM空间。

    谢谢,此致,

    Vamsi

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

    按照您的建议查看地图文件,我们刚刚意识到F021_API_F2837xD_FPU32库不在ramfuncs区域内。 我们需要扩大测试范围,但至少在初步测试之后,一切似乎都恢复了。

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

    知道问题已解决很好。 我要结束这条线。

    谢谢,此致,
    Vamsi