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.

[参考译文] CC2640R2F:已尝试针对 SysCtrlSystemReset()在刷写设备后首次调用时挂起的建议修复,但仍然无法正常工作

Guru**** 2587345 points
Other Parts Discussed in Thread: UNIFLASH, CC3120, CC2640R2F

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/661565/cc2640r2f-tried-suggested-fixes-for-sysctrlsystemreset-hanging-the-1st-time-it-is-called-after-flashing-device-still-not-working

器件型号:CC2640R2F
主题中讨论的其他器件:UNIFLASHCC3120

我已经尝试过此主题中建议的修复: https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/t/632725

调用 SysCtrlSystemReset()后,设备仍然挂起。 如果我对器件进行下电上电、则一切都正常。

我的环境的不同之处在于、我使用的是 XDS100v3。 引用的主题上的最后一篇文章来自同时使用 XDS100v3但仍有问题的人。 XDS100v3是否有修复程序、或者我是否必须切换到 XDS110?

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

    这听起来像是启动时停止问题。 我尚未对该问题如何影响 XDS100v3进行广泛研究。
    我们将跟进我们的工具团队。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您能告诉我您使用的软件的具体细节吗?

    • IAR 版本(例如8.11.2)
    • 德州仪器(TI)仿真软件("emupack")版本(例如7.0.48.0)
      • 通过浏览(在 IAR 中)到 Project > Options > TI XDS、可找到 IAR emupack 的安装目录。
      • 相对于上面列出的文件夹,您应该找到版本号为的./install_logs/文件夹。  

    如果您能分享情景和重现此问题的步骤、以便我们可以在我的身边尝试一下、那将会很棒。

    谢谢

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

    您好!

    我们实际上使用的是 CCS v7.4、但我们使用 SmartRF Flash Programmer 2 v1.7.5来刷写代码、emupack 版本为7.0.100.1。

    但我认为关键是我们使用 XDS100v3调试器而不是 CDS110。

    重现问题的步骤如下:

    1) 1)使用闪存编程器2、擦除/编程/验证器件上的映像

    2) 2)闪存编程器2将器件复位

    3)设备上的应用程序运行,发出 SysCtrlSystemReset(),然后挂起

    谢谢、

    -Ed

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我今天收到了我的 XDS110调试器、并尝试了混合结果。

    如果我使用闪存编程器2刷写了我的器件,则一切都运行良好,并且在调用 SysCtrlSystemReset()后器件不会挂起。

    但是、如果我尝试使用 CCS v7.4或 Uniflash v4.2.0、我会收到此错误、并尝试验证与目标的连接:

    --------------
    此错误由 TI 的 USCIF 驱动程序或实用程序生成。

    值为'-267'(0xfffef5)。
    标题为"SC_ERR_XDS110_TARGET_SUPPLY"。

    说明如下:
    控制器无法检测到有效的目标电源。 检查目标
    指定电压电平的 JTAG 连接和/或连接设置。
    --------------------

    此错误在以下主题中讨论: e2e.ti.com/.../635939

    我不认为这是 XDS110问题、因为它可以与闪存编程器2配合使用、但我不知道它为什么不能与 CCS 或 Uniflash 配合使用。 有什么想法吗?

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

    您是否已将目标配置文件(.ccxml)配置为使用 XDS110 +正确的器件?

    BR、
    TIABO

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

    是的、我是这样做的。 我昨天在搜索闪存编程器2使用的.ccxml 或等效文件、因为该应用程序起作用。 您知道我可以在哪里找到它吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ed:

    从 Uniflash 4.2.x 开始、应该会显示检测到的器件屏幕、您可以根据器件的 XDS 序列号选择器件

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    两个电路板的 JTAG 设置是否有任何其他差异(即 PC 端设置)、您是否已将 Vtref 连接到芯片的 VCC?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Sean、

    我对这两个板使用完全相同的设置。 与您通常看到的情况不同的一点是、我们在 XDS100v3/XDS110和目标板之间有一个适配器板。 调试器线路全部通过、但我们通过 USB 而不是调试器为目标供电。 这是因为我们的目标上有一个 CC3120芯片、我们在早期发现调试器无法为目标板提供足够的电流。 但同样、这适用于 XDS100v3、而 XDS110适用于闪存编程器2、但不适用于 CCS 或 Uniflash。 因此、闪存编程器2的目标设置中必须有一些不同的东西才能使所有内容正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、抱歉-它现在起作用了。 我在.ccxml"编辑器"的高级设置区域中没有看到目标配置选项、当您双击项目的目标配置文件时、该选项会显示出来。 当我单击它、然后在"Target Configuration"页面中突出显示"Texas Instruments XDS110 USB Debug Probe_0"行时、有一个"Power Selection"条目、您可以在其中选择"Target supplied Power"或"Probe supplied Power"。 当我选择"Target supplied Power"时、一切都开始工作。 很抱歉造成混淆。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢后续 Ed!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我遇到了这方面的新问题。 我最近将计算机升级到了 Windows 10、因此我安装了 CCS v7.4、Flash Programmer 2 v1.7.5和 emupack v7.0.188.0。 我也将 emupack 文件复制到闪存编程器2配置/XDS 文件夹、如本主题前面所述。 但是,在刷写设备之后,我返回到首次调用 SysCtrlSystemReset()后挂起的设备。

    是否存在与 XDS110相关的 Windows 10特定问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、我不知道。

    您能否共享显示 TCK 和 TMS 引脚的逻辑分析仪屏幕截图?

    TIABO

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

    您好!

    当然、在这里。 复位后、似乎确认 TCK 上有活动、我认为这会导致 HIB 问题。 我进行了双重检查、并将 emupack 7.0.188.0文件复制到 Flash Programmer 2 config\XDS 文件夹中、这就是我认为修复 HIB 问题所需的全部操作。 我是否错过了什么?

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

    大家好、我在使用 emupack 7.0.188.0修补我的 srfprog2 v1.7.5安装时无法看到同样的情况。 是否确定安装了修补程序

    我一侧的以下文件已更改:

    bin/ftd2xx.dll
    CONFIG/XDS/CARD_CONFIG/XDS110.dat
    CONFIG/XDS/CARD_CONFIG/XDS110c2.dat
    CONFIG/XDS/Ccommon/bin/libusb-1.0.dll
    config/xds/common/bin/ti_targetdb_parser.dll
    config/xds/common/bin/xerces-c_2_8.dll
    CONFIG/XDS/CON./uscif/jioserdesusb.dll
    config/xds/common/uscif/jioserdesusbv3.dll
    CONFIG/XDS/CON./uscif/jioxds110.dll
    config/xds/common/uscif/jscserdes.dll
    config/xds/common/uscif/jscserdesv3.dll
    config/xds/common/uscif/jscxds110.dll
    CONFIG/XDS/Ccommon/uscif/xds110/firmware.bin
    CONFIG/XDS/Ccommon/uscif/xds2xx.bin
    CONFIG/XDS/Ccommon/uscif/xds2xx/update_xds2xx.bat
    CONFIG/XDS/Ccommon/uscif/xds2xx/xds2xx_conf.exe
    config/xds/common/uscif/xds2xx/xds2xx_usbconf.dll
    CONFIG/XDS/CON/uscif/xds2xx_eCom.dll
    config/xds/common/uscif/xds2xxu_io.dll
    CONFIG/XDS/Ccommon/uscif/xdsalias.cfg
    config/xds/common/uscif/xdsboard.dll
    config/xds/common/uscif/xdsecom3.dll
    CONFIG/XDS/Ccommon/uscif/xdserror.cfg
    config/xds/common/uscif/xdsericror.dll
    CONFIG/XDS/Ccommon/uscif/xdsfamily.cfg
    config/xds/common/uscif/xdsfast3.dll
    config/Xds/common/uscif/xdsicle.dll
    config/xds/common/uscif/xdslocal.dll
    config/xds/common/uscif/xdsroute.dll
    Config/Xds/common/uscif/xdstrove.dll
    Config/XDS/emulation/drivers/TargetAdapter.dll
    Config/Xds/emulation/drivers/cmapi.dll
    CONFIG/XDS/emulation/drivers/PRSC.dll
    CONFIG/XDS/仿真/驱动程序/tixds510cortexM.dvr
    CONFIG/XDS/仿真/驱动程序/tixds510cs_DAP.DVR
    CONFIG/XDS/emulation/drivers/tixds510dap_PC.dvr
    CONFIG/XDS/仿真/驱动程序/tixds510icepick_c.dvr
    CONFIG/XDS/仿真/驱动程序/tixds560cortexM.dvr
    CONFIG/XDS/emulation/drivers/tixds560dap_PC.dvr
    CONFIG/XDS/仿真/驱动程序/tixds560icepick_c.dvr

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

    您好、Tiabo、

    与我修补的内容不匹配。 我认为该过程是将 C:\Program Files (x86)\Texas Instruments\SmartRF Tools\Flash Programmer 2\config\XDS 中的文件替换为 emupack 安装中的文件。 因此、在本例中、我替换了:

    C:\Program Files (x86)\Texas Instruments\SmartRF Tools\Flash Programmer 2\config\XDS\common、其中包含 C:\ti\ccs_base\common 文件

    C:\Program Files (x86)\Texas Instruments\SmartRF Tools\Flash Programmer 2\config\XDS\emulation、其中包含 C:\ti\ccs_base\emulation 文件

    您能否提供有关您更换过的产品的详细信息?

    谢谢!

    -Ed

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ed、感谢您的跟进。 我将关闭此主题、因为您单击了"已解决"按钮。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sean、

    请不要关闭此主题、因为我仍在使用 Windows 10时遇到问题。

    谢谢、

    ED

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

    明白了、我将使该线程保持打开状态。
    这是我的错误、因为我们的跟踪系统未显示您与其他 TI 员工之间的进一步讨论。 抱歉、这个话题是开放的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好。

    很抱歉、我在本主题中提出了我的问题。

    您能否解释 HAL_SYSTEM_RESET()和 SysCtrlSystemReset()之间的区别?

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

    您应该将 emupack 安装程序中的所有内容复制到中 /config/xds

    您发布的步骤似乎会错过一些文件。 此外、您能否确认 C:\ti\ccs_base\common 的内容包含正确的 emupack 版本?

    您好 Oleg、

    HAL_SYSTEM_RESET 是一个宏、它直接写入 AON_SYSCTL_O_RESETCTL 寄存器以触发引脚复位。

    SysCtrlSystemReset()与之类似,但会在到达寄存器之前禁用中断。 并将旋转以等待复位。

    您可以在 hal_mcu.h 和 sys_ctrl.h 中检查它们的实现
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sean、

    是的、C:\ti\ccs_base\common 包含正确的 emupack 版本。

    我希望清楚要复制的内容。 查看安装日志、我应该复制:

    C:\ti\ccs_base\common

    C:\ti\ccs_base\emulation

    C:\ti\ccs_base\scripting

    更改为 C:\Program Files (x86)\Texas Instruments\SmartRF Tools\Flash Programmer 2\config\XDS?

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

    您似乎处于正确的轨道上、将 CCS_base 的全部内容复制到 CONFIG\XDS\board_config 不会有任何影响
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Sean、感谢您的响应。
    什么类型的复位函数更有用、更安全?
    因为我在重置过程中遇到了一些问题。 我的主题是 :e2e.ti.com/.../674296
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    SysCtrlSystemReset()更加全面,因为它将禁用中断并在等待复位传播而不是写入寄存器并在复位发生之前继续执行。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、Sean、谢谢。 我将尝试测试它...

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

    我将 CCS_base 复制到了 config\XDS\board_config、但问题仍然存在。 还有其他想法、比如您知道可以使用的特定 XDS110固件版本吗?

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

    没有、我没有任何其他想法、我已联系工具团队以获得更多信息。
    您能否确认您使用的 XDS 110固件?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    XDS110固件可能会出现问题、导致 XDS110使 TCK 引脚悬空。 在带有转换器的 LaunchPad 上,这可能会导致 TCK 在目标端闪烁,导致触发启动机制停止(这反过来使 SysCtrlSystemReset()在第一次调用时挂起)。 您可以为 XDS110尝试此初始固件映像、该映像应可解决该特定问题。

    1. 浏览 \config\XDS\common\uscif\xds110并将附加的文件复制到其中。
    2. 打开 Windows 命令窗口、确保只有1个 XDS110仿真器连接到您的 PC。
    3. 运行以下命令将 XDS110设置为升级模式:
      > xdsdfu.exe -m
    4. 运行以下命令以升级到新固件映像
      > xdsdfu.exe -f firmware_xds110_prelim.bin -r
    5. 对电路板进行下电上电(仅需确保)

    如果要恢复到以前的固件映像、请执行相同的步骤、但在步骤4中使用"firmware.bin"。

    BR、
    TIABO

    e2e.ti.com/.../firmware_5F00_xds110_5F00_prelim.bin

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

    您好、Tiabo、

    感谢您提供固件映像。 我将其刷写到 XDS110中、但后来无法将映像刷写到器件中。 闪存编程器2在尝试验证 CC2640r2F 映像时失败。 当我用之前的映像替换 XDS110固件时、一切正常。 我使用您提供的 XDS110映像将闪存内容读取到文件中、原始 XDS110映像将闪存内容读取到文件中、而 CC2640r2F 器件闪存的内容确实不同。 每个 CC2640r2闪存页面的最后17个字节看起来都不同。 第一页末尾是一个示例:

    原始 XDS110固件:

    :102FE000012002200CF048F905E0C046640C0020E6
    :102FF0000846FFF709F80949487800280CBF022065

    新 XDS110固件:

    :102FE000012002200CF048F905E0C046640C000006
    :102FF00000000000000000000000007D0300000051

    谢谢、

    -Ed

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

    我还应该提到、我尝试了一个技巧、在这个技巧中、我使用原始 XDS110固件刷写了 CC2640r2器件、在闪存编程器2复位器件后、我快速刷写了新的 XDS110固件、然后读取了 CC2640r2闪存、 完成后将器件复位。 当我的 CC2640r2应用程序发出 SysCtrlSystemReset()时,设备仍然挂起。

    但是,如果在应用程序调用 SysCtrlSystemReset()之前运行 xds110reset.exe,则调用 SysCtrlSystemReset()时,设备不会挂起。 因此、有关 xds110reset.exe 的内容似乎可以清除启动时停止的情况。

    谢谢、
    -Ed