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:CPU2上的闪存擦除命令失败

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/634170/tms320f28377d-flash-erase-command-fails-on-cpu2

部件号:TMS320F2.8377万D

您好,

我正在为F2.8377万D设备内的两个CPU开发自定义引导加载程序,我正面临一个奇怪的情况。

引导加载程序很简单:

  1. 首先在CPU1上执行,
  2. 完成后,将所有外围设备分配给CPU2,  
  3. CPU1引导CPU2并等待此操作完成
  4. 执行CPU2引导
  5. CPU2通知CPU1
  6. CPU1执行重置

如果我将引导加载程序加载到空设备,它第一次就会工作,并且应用程序会成功执行。 但是,如果我再次"进入引导模式"(重置CPU1),则引导加载程序也会再次工作,但CPU2无法擦除包含应用程序数据和程序的闪存扇区。 另一方面,CPU1工作正常。

我使用 的是F021 API,产生的错误是来自fmstat的位EV处于活动状态。

我已经查看了从闪存执行的引导加载程序代码中是否有任何内容(中断或某些内容),但两个CPU的RAM中都有。 我已经查看了闪存泵信号的使用,并且对于每个闪存命令,都请求信号。

有什么想法吗?

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

    您好,

    1)您是否按照图2-23中的建议对密码位置执行了虚拟读取。 TRM中的CSM密码匹配流程(PMF)是否会取消您正在尝试擦除的区域的安全?

    2)您是否确定闪存擦除失败时PLL配置是合适的?

    3)您使用的等待状态配置是什么?

    4)空白支票功能出现了什么错误?  您是否检查了空白支票功能返回的地址?  是扇区的第一个地址位置吗?

    谢谢,此致,

    Vamsi

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

    您好,

    感谢您的快速响应。

    检查PLL配置时,我意识到我在发出erase命令之前就失去了信号泵。 现在,它已经完美工作了! 谢谢!

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

    很高兴它有所帮助。 请注意,您不必为每个命令声明信号量。 当CPU2获取信号时,它将与CPU2一起使用,直到放弃信号(只要没有任何重置)。

    谢谢,此致,
    Vamsi