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.

[参考译文] CCS/TMS320F28377D:28377D 处于 CCS 调试模式、复位 NG

Guru**** 2512565 points
Other Parts Discussed in Thread: TMDSDOCK28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/595842/ccs-tms320f28377d-28377d-in-ccs-debug-mode-reset-ng

器件型号:TMS320F28377D
主题中讨论的其他器件:TMDSDOCK28379D

工具/软件:Code Composer Studio

大家好、

 我正在使用  TMDSDOCK28379D 实验套件,下面是我的问题

1. 有时,当我调试的编程是 CCS 时,我想复位 CPU 并运行它 来测试  CPU 复位(0x3FFFC0)后运行 的代码启动函数,并 为 Main ()生成;

  但是,只有当 CPU 首次加电时,此操作才起作用,除此之外,例如,如果 我已经运行 代码 start,然后 我复位 CPU,运行它(F8), CPU 在0x3fe2ee 停止;

 

  CPU2 没有编程、  

3. 当我之前使用28335时,这个操作在每个定时器上都正常运行;

 任何帮助都将不胜感激!

Webber  

 

 

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

    需要检查的是引导模式引脚设置。 我假设您要将代码加载到闪存中、并且引导模式引脚应设置为引导至闪存。

    此致、

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

    是,引导至 FLASH。 正如 TMDSCNCD28377D-Infosheet_v1_6.pdf 所描述的那样,在第10页上,controlCARD SW1被设定为 GetMode (缺省情况下为闪存)。

    我的问题是 CPU 在 CCS 复位中工作 NG (在 addr 0x3fe2ee 中的 ESTOP0处停止);

    如果我断开 CPU 连接并重新加电,CPU 工作正常;

    在 CCS 调试复位时可能发生了一些事情,导致 Bootrom 代码执行失败。 0x3fe2ee 是 bootrom 地址;但这是我的猜测、我不确定;

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

    您是否为闪存编程了 ECC 值? 请检查 NMISHDFLG 寄存器中的值(表2-67)。 TRM 中的 NMISHDFLG 寄存器字段说明)、以查看是否设置了任何错误标志。

    Vivek Singh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Vivek
    我检查 NMISHDFLG,所有位都为0。

    但我发现了一些线索。

    代码启动是由我自己自定义的代码,我想使用它来实现 IAP 闪存程序,因此,在代码启动执行期间,我更改了 PieVectTable 和 NG COM;
    如果我没有更改 PieVectTable,例如,在该操作之前设置 while (1),在 while (1)处设置代码开始循环,然后按 CCS 中的 Reset 按钮 CPU reset,然后按 Run 按钮,代码开始正常执行。
    如果我通过设置操作后的 while (1)来执行更改操作,那么,在我重置 CPU 并按运行后,CPU 在0x3fe2ee 停止,不要输入代码开始,这就是我上面说的 NG;

    我现在都取得了进展。

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

    当调试器被连接时、PieVectTable 的0xD00位置被用于引导信息(被称为仿真引导)。 如果更改此值、则连接调试器后器件可能无法按预期引导。 不过、这在独立模式下不会出现问题。 在这种情况下、复位后、您可以点击 CCS 菜单"Scripts -> EMU Boot Mode Select -> "、然后运行代码。 希望这可以解决这个问题。

    此致、

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