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.

[参考译文] TMS320F28388D:调试器目标复位不起作用-始终跳转到地址0x3FD2AE

Guru**** 2562320 points
Other Parts Discussed in Thread: TMS320F28388D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1274215/tms320f28388d-debugger-target-reset-does-not-work---jump-always-to-address-0x3fd2ae

器件型号:TMS320F28388D
主题中讨论的其他器件: C2000WARE

尊敬的 TI 团队和支持人员:

我´m´m 没有调试器来运行我的目标、也无法在调试器被连接到"目标复位"时运行(我正在使用 Lauterbach)

唯一的方法是将初始 PC 设置为默认入口点"_c_int00"

寄存器.初始化
寄存器.set PC _c_int00
转到主菜单

链接器外观  

……

 /*开始用于"引导至闪存"引导加载程序模式 */
  开始       :origin = 0x080000,length = 0x000002
...
  代码起始      :>开始,校准(4)
……
 
´d 而言、我喜欢在不连接调试器的情况下运行代码、但它永远不会起作用、一旦连接调试器、我就会看到代码挂起在 地址 0x3FD2AE 处。
´m: 如用户指南中所述、使用开发板 TMS320F28388D controlCARD 并将引导模式并行设置为闪存(表3. S2、引导模式选择表)
提前感谢。
此致、
伊万
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    伊凡、您好!

    若要排除任何链接器命令问题、可以在 c2000ware 中尝试使用 LED 闪烁示例吗? 请务必在构建工程时选择闪存配置选项。 我还会询问代码在热启动期间是否正确启动(即按下 controlCARD 上的复位按钮时)? 如果是这样,问题可能是启动时在 Device_init()函数中执行的时钟频率检查代码。 在冷启动期间(即、当您首次为 controlCARD 加电时)、外部时钟需要几毫秒的时间来启动。 由于 MCU 将使用内部振荡器引导、因此频率检查代码将失败、代码将进入 while (1)循环。 c2000ware 版本5.0已修复此问题。

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

    您好、Gus:

    我解决了这个问题。 这里有两个问题:

    1. 我需要实施自己的启动代码以在启动期间禁用看门狗、然后跳转到_c_int00 (我从 c2000ware 示例中接管了代码 f2838x_codestartbranch.asm)
    2. 进行上述更改后、热启动正常、但冷启动尚未开始。 为了实现冷启动、我必须增加 时钟初始化阶段使用的延迟、尤其是设置 SYSPLLCTL1后的延迟。
      此处 PLLCLKEN_WAITTIME 已从120增加到1000。
      我想这个新值与您在消息"not?"中提到的10ms 相关、
        /* SYSPLL Clock                             */
        *SYSPLLCTL1 &= ~(1 << PLLCLKEN_BIT_NR);           /* bypass SYSPLL Clock                      */
        for (i = 0; i < PLLCLKEN_WAITTIME; i++) {
            __asm(" nop");
        }
    此致、
    伊万
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这个新值可能是某种程度上,我认为,与您在消息中提到的10毫秒相关,不是?

    听起来就像这样。 如果您查看 controlCARD 原理图、会发现有一个外部振荡器为 MCU 提供时钟输入。 该时钟振荡器需要几 ms 的时间来上电。 在启动代码中、您需要在切换到该时钟源并启动 PLL 之前给该振荡器一些时间上电。