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.

[参考译文] F29H850TU:在程序加载或重新录制时复位目标

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1628136/f29h850tu-reset-target-on-program-load-or-resetart

器件型号: F29H850TU

客户的查询:

我们想使用“Reset the target on program load or restart“选项、但它没有按预期工作:

  •  对器件的闪存进行编程后、芯片不会按预期运行到 main ()。
  • 默认的引导选择 GPIO (GPIO72、GPIO84、我们使用 F29H850TU9TZEX) 配置有上拉电阻器、指示从闪存引导。
  • 在调试模式下、当调试器配置中启用“Reset the target on a program load or restart“复选框时:
  • CPU 永远不会到达 main() 的入口点。
  • 程序计数器 (PC) 在地址范围 0x000014XX 内循环。
  • 检查 0x10001000 处的存储器可以看到程序已正确下载。
  • 如果不选择“Reset the target on a program load or restart“选项、调试会话的行为将正常、执行将按预期达到 main ()。
  • 控制台中没有错误消息、只是设备未按预期运行到 main()。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Lori、  

    我认为这是 预料之中的。 如果您复位 CPU1 (C29) 而未复位 HSM、则 HSM <-> C29x 握手会中断、因此 CPU1 会卡在 ROM 中、等待 IPC 握手。 我们针对 HSM <->CPU1 握手对 Rev B 进行了一些修复、这可能解决了 Rev B 上的这个问题、但需要确认。

    此致、

    Vivek Singh

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

    您好、Vivek、

    您认为这是器件错误吗? (即 Rev B 是器件版本吗?)

    如果是、唯一的机会是使用最新/正确的 IC 进行更改。 对吧?

    或者是否会有软件权变措施?

    因为这些是第一个板/构建、我们并不需要所有功能、因此任何非硬件解决方案都更受欢迎(至少要不断改进,因为此错误目前正使我们的速度放慢很多...)

    谢谢  

    文森佐

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

    它是 ROM 代码的一部分、不是一个错误、但我们在 新器件上更新了 ROM 代码以改善用户体验。   

    Vivek Singh

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

    您好、Vivek、

    谢谢、明白了。

    如果我们也复位 HSM、我们应该解决这个问题。 对吧?

    请问您能为我提供一些关于如何制作的信息吗?

    文森佐

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

    是的、有一种方法是发出 XRSn(外部或通过 CCS 脚本,如下所示)

    此致、

    Vivek Singh

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

    您好、Vivek、

    感谢您的回答、我尝试了 Scripts->CPU 重置处理->CPUidoble. Device_Reset_ 这没有帮助。 CPU1 的 PC 将返回到 0x00000000、然后在范围 (0x00014258、0x00014260) 内循环。 在我们的电路板上、我们还有一个 RC 电源复位电路、其中 XRSn 使用 10K 电阻器上拉、并使用 0.1uF 电容器下拉。  

    实际上、当 CPU1 在 0x00014260 中循环时、我点击“Scripts"->"Emulation Boot“ Boot Mode“ Mode Select“->"CPU1"<xmt-block0>“ Enable_Flash_Emulation_Mode“ Enable_Flash_Emulation_Mode。 然后停止调试(点击红色按钮)并重新启动调试(点击绿色的向右箭头)CPU1 可以在 main () 的入口停止、并且连续的调试可以继续。

    但是、当我关闭电路板的电源时、从电路板上拔下 JTAG 电缆并再次为电路板上电、CPU1 似乎无法运行到应用程序、我们电路板上的 LED 不会闪烁。 我们还希望电路板可以独立运行而无需调试器。

    这是对我们遇到的问题的更详细的跟进、您是否对问题的原因有任何想法? 感谢您的答复。

    此致、

    方明

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

    尊敬的  Fangming:

    但是、当我关闭电路板电源时、从电路板上拔下 JTAG 电缆并再次为电路板上电、CPU1 似乎没有运行到应用程序、电路板上的 LED 不会闪烁。 [/报价]

    如果器件未在独立模式下引导、则可能是其他问题。 您可能需要检查当器件与调试器连接且 CPU 卡在范围 (0x00014258、0x00014260) 内的环路时、是否进入某种错误状态。

    您可以参阅此应用手册以了解错误条件调试 —  https://www.ti.com/lit/sdaa104

    Vivek Singh