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.

[参考译文] TMS320F28069:F28069U 型号上的 DFU 模式问题-器件在运行时从正常模式恢复到 DFU 模式

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1192977/tms320f28069-issue-with-dfu-mode-on-f28069u-models---device-reverts-back-into-dfu-mode-from-normal-mode-in-runtime

器件型号:TMS320F28069
主题中讨论的其他器件:UNIFLASH

大家好、

我们现在在使用 F28069 DSP 开发的固件中遇到问题 、该 DSP 适用于启用了 USB 的 F28069U、F28069F 和 F28069M 模型、因此固件的总体设计基本如下:

  1. 运行时代码
  2. 引导加载程序代码

运行时代码是我们不断开发和扩展的代码、它利用 DSP 的各种功能、包括作为虚拟 COM 端口的 USB 通信。

引导加载程序可与德州仪器发布的 USB 器件固件升级程序配合使用、只需进行极少的更改。

现在的问题是、我们已经使用这种组合超过3年了、没有任何问题、但是随着运行时代码的扩展和占用更多 RAM 和闪存、我们现在看到、启动后运行时代码不运行、器件返回 DFU 模式! 在我们的系统中、只有当特定 GPIO 下拉时才会发生 DFU 模式、但由于某些奇怪的原因、运行时代码会强制恢复 DFU。

我们发现、一旦我们完全禁用运行时代码中的 USB 功能、通过删除 usblib.lib 和 driverlib.lib 以及 USB 的所有相关库、运行时代码就会再次运行、 但当然、我们失去了拥有 COM 端口的可能性、而 COM 端口对于我们的应用是不可接受的。

因此、我想知道我们应该从哪里开始寻找、因为我们尝试了各种方法、但没有成功。

John

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

    您好!

    我这边的另一个更新:

    我尝试将运行时代码直接编程到闪存中,并将链接器更改为指向代码的初始部分而不是引导加载程序,现在程序正在运行,因此基本上我们似乎遇到了以下问题之一:

    1. 由于闪存大小较大,引导加载程序代码无法启动,可能在操作或 JTAG 到期期间失败,或沿这些行(在引导加载程序中禁用 JTAG)
    2. PC 上的 dfuprog.exe 程序无法将十六进制文件正确发送到引导加载程序
    3. 运行时代码会以某种方式干扰引导加载程序、并再次将器件置于 DFU 模式。

    我将等待你对此进行审查。

    John

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

    John、

    我们已将该线程分配给 USB 闪存编程器。 请期待明天的回复。

    此致、Santosh

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

    您好 Santosh、

    想知道这方面是否有任何更新。 我们现在一直在解决这个问题、请就此提供建议。

    John

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

     :请看一下吗?

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

    John、  

    要缩小问题的范围,运行  dfuprog.exe 时是否看到与上载数据相关的任何错误?  

    您可以 在没有 Quiet 选项的情况下运行 dfuprog,以便它打印出与上载应用程序相关的消息。

    此致

    Siddharth

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

    您好 

    很抱歉耽误了时间、很忙、因此基本上 DFU 程序将程序放在器件上没有任何问题、但是我的器件仍然处于 DFU 模式、永远不会退出:

    那么、您认为问题可能出在哪呢?

    John

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

    为了进一步说明这一点、我在编译代码时看到以下警告、它始终存在、即使引导加载程序运行正常、但现在我担心引导加载程序可能无法在运行时或沿着这些行完成 CRC。

    如何消除此警告?

    John

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

    我刚刚注意到的另一点是堆栈使用、如下面所示、这对问题是否有任何影响?  

    可以看到、ADC_ISR 已完全占用、但我不清楚这是否是问题、因为 CCS 不会显示任何警告或错误。

    John

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

    John、  

    是否可以使用详细选项(-v)重新运行?  从快照中、看起来十六进制文件没有完全下载。  

    其他选项是使用 uniflash 导出存储器、并将其与您创建的十六进制文件进行比较。 如果十六进制文件已成功下载、则会启用该选项。

    此致

    Siddharth