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.

[参考译文] TMS320F280049:TMS320F280049和 TMS320F280049C 在与 XDS200的 CCXML 连接方面有何差异

Guru**** 2582295 points
Other Parts Discussed in Thread: TMS320F280049C, TMS320F280049, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1270016/tms320f280049-what-is-the-difference-between-the-tms320f280049-and-tms320f280049c-in-terms-of-the-ccxml-connection-to-the-xds200

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

在与 XDS200调试器的 CCXML 连接方面、TMS320F280049和 TMS320F280049C 之间有何差异?

我们有一个项目、在49C 上自定义硬件运行正常、但是当我们移到49时、我们遇到了代码未正确刷新的问题。  我们要写入 OTP、以便代码从闪存引导、再说一次、它在49C 上可以正常工作、但在49 C 上不能正常工作。   用 OTP 进行刷写后、 我们在连接调试器时遇到问题、在读取闪存存储器时、它将读取全0、代码不会运行、似乎会卡在引导 ROM 中。

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

    您好!  

    F280049和 F280049C 与 CCXML 连接之间不应有任何差异。  "C"后缀表示器件包含器件上的 CLB (可配置逻辑块)。  因此、非 C 语言器件就无法访问该外设。  

    将把您的问题转发给 Flash 专家、帮助您解决这个问题。

    此致

    西达尔特

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

    Jose、

    对 F280049进行编程时、您提到了闪存编程问题;CCS 是否给出了任何错误等、或者过程是否中断?

    您能否使用 CCS 中的闪存工具尝试"解锁"器件?   如果失败、则表示密码已编程(即使是意外地编程)。  我想看看是否以上情况导致了这种情况、您能评论一下您尝试在 F280049器件上编程的 OTP 地址是什么吗?

    此致!
    马修

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

    您好、Mathew:

    我将回答您的问题、但我们方面取得了一些新的进展。

    当我们刷写时 、我们没有得到任何我可以回忆的错误(不幸的是、我们 在前一个板中习惯了这样做、因此我们实际上并没有太多关注)、但软件无法正常工作。 尝试之后连接到电路板比往常更困难、处理器通常拒绝连接、有时当连接一段时间后、它可能会进入 CCS 所说的"低功耗模式"。

    我们的电路板作为多个处理器、一对 Hercules 和一些 F280049、它们全部以菊花链形式连接。  我们有一个定制的 ccxml、用于理解这一切。 我们 使用使用 uniflash (v8.3.0)命令行的批处理脚本、按顺序将所有处理器从上一个(F280049)刷写到第一个(Hercules)。  

    我们使用链接器选项将 ECC 包含在输出可执行文件中、并且在调用 uniflash 时、我们将 FlashAutoECCSetting 选项设置为 false。  我们尝试写入的 OTP 旨在让我们无论引脚如何、都能够从闪存引导。  我们的输出十六进制文件具有以下内容:

    我们注意到、在我们的输出十六进制文件中、这些存储器范围没有 ECC。

    我们修改了执行 OTP 转储的 GEL 文件、也转储与 OTP 相关的 ECC、并在旧的49C 和新的49板之间进行比较。 好像49块电路板的 ECC 范围与我们在0xFFFF 中更改的 OTP 相关。  

    我相信这可能意味着我们能够恢复电路板、我们仍然不知道如何解决的唯一问题 是、很难连接到像这样刷写的 F28处理器、 每10次尝试中有8次连接被拒绝、尝试刷写任何内容始终失败。  

    如果您需要其他信息、请告诉我们。

    谢谢。

    何塞·洛佩斯

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

    Jose、

    如果将 F280049设置为等待引导模式、您是否看到连接问题解决了?  如果器件在 JTAG 尝试连接时进入安全存储器区域、则会拒绝 JTAG 连接。  等待启动将使器件保留在不安全引导存储器中。

    此致!

    马修

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

    您好、Mathew:

    很抱歉这么晚才回复。  我们已尝试将器件保持在等待引导模式、但我不确定是否出现了问题。  如果我们 设法连接到处理器并在引导 ROM 中逐步开始调试、当我们到达代码的以下部分时、器件会拒绝连接:

    为了避免这种情况、我们只需使 PC 跳转到下一行代码。

    我们还注意到代码的另一部分存在不可纠正的 ECC 错误、我们使用寄存器窗口禁用 ECC 以避免这种错误。

    继续代码,我们强制它输入此部分(靠近 cbrom_system_init()的末尾):

    此时我们断开调试器、软件应该会卡在无限循环中、禁用内部看门狗。   我们会尝试用我们的闪存脚本再次刷写代码、但 连接被拒绝。  我们已经尝试删除 GEL 文件、以确保它没有尝试进行奇怪的初始化、但似乎没有效果。  我们得到的错误通常与处理器处于"低功耗模式"或与 PLL 有关、但我认为也不是这样。

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

    Jose、

    我重新阅读了您之前发表的有关新发展的文章、正如您提到的、如果您为 OTP 的擦除区域计算 ECC、这将为 ECC 提供非0xFFFF 值并进行编程。  

    OTP 区域的 ECC 也只能一次性编程、因此、当您想要返回并在 OTP 中对任何真实数据进行编程时、这会带来问题、其中包括 Z1安全和 JTAG 设置。

    回到上一篇文章中看到代码出现故障的地方、此函数用于禁用生产器件的 JTAG 连接、更多的是具有防篡改功能。  除了编程到这个空间中的0xFFFF000F 是否有不同的内容(忘记了 ECC)?  

    此致!

    马修

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

    Matthew 您好!

    在尝试读取器件的 DCSM 存储器时遇到问题、此时会刷写器件。  我们修改了 GEL 文件以便能够转储内存、似乎我们成功了一次、但从那时起就不成功(因此、 我无法真正相信这个转储是从正确的处理器获得的)。 我们将 继续尝试再次获取内存转储以确认这些值。

    JTAG 的特定部分 似乎 在数据表中被记录为"保留"、我认为我们单位中的值为0x7FFF FFFF。  您可以看到随附的文件、其中包含我们在 闪存单元中遇到问题的用户 OTP 存储体1的转储。  

    e2e.ti.com/.../0508.USER_5F00_OTP_5F00_Bank1.dat

    我们已确认该地址与其他单元完全相同、除地址0x7800C 和 0x7801C 之外、我们不会遇到任何问题、这两个地址是我们尝试 写入闪存以从闪存加载的地址。

    此致、

    何塞·洛佩斯

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

    Jose、

    根据我的判断、在您发送给我的图像中可以确定 JTAG 的目标区域(与我们在工厂中编程的默认值匹配)。  您是否也可以向我发送地址0x1071000=0x10710710710710710F?  这些是您尝试写入的 OTP 的相应 ECC 值。  我想看看这些位的饱和。

    此致!
    马修

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

    Matthew 您好!

    自上次回复后、我还没有连接到处理器。  这是我拥有的最新 OTP 存储器转储:

    e2e.ti.com/.../USER_5F00_OTP_5F00_Bank1_5F00_ECC.dat

    如您所见、所有 ECC 均为0xFFFF、我认为这意味着我们从未对其进行写入、如果我们设法对其进行写入、器件可能仍可恢复。

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

    Jose、

    这是正确的、应该没有任何东西会阻止您写入这些位置。  

    您是否还有另一个 F280049器件可以尝试交换和编程、以查看是否有多个器件上发生此问题?  考虑到影响因素、即我们没有理由看到此问题正在发生、因此、如果可能、我将排除这是有缺陷的器件。

    此致!

    马修

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

    Matthew 您好!

     在确定该问题之前、我们最初尝试刷写5个不同的 F280049器件。  然后、我们刷写了一个额外的 F280049以测试 略有不同的 Uniflash 配置。   使用调试器很难连接所有这些 F280049。  

    此后、我们刷写了9个不同的 F280049器件、刷写了不包含 ECC 的十六进制文件、并使用 Uniflash 自动计算和刷写 OTP 和嵌入式 软件的 ECC。  对于这 9种器件、我们能够随意连接和调试、不会出现任何问题。

    我认为这不是器件有缺陷的问题、而是闪存不正确的问题。 再次提醒、不确定这是如何影响与调试器的连接和刷写新的 OTP/软件的。

    此致、

    何塞·洛佩斯

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

    Jose、

    感谢更新,同意它听起来像什么,当我们尝试手动添加 ECC 综合征 vs 自动计算.  我将拜访其他一些对工具有更多经验的人、看看他们是否有一些想法、因为这不是硬件问题。

    此致!

    马修

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

    您好、Jose、

    我负责查看此帖子。

    我会在下周早些时候再次与您联系。

    谢谢。此致、

    瓦姆西

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

    您好、Jose、

    如果我理解正确、您可以使用 Uniflash 以及 Fapi_Auto SceGeneration 模式对 OTP Fine 进行编程。  但是、您认为、 在使用链接器 ECC 选项生成 ECC 时、没有针对 OTP 正确地对 ECC 进行编程。  

    您 过去即使使用由链接器生成的 ECC 也能够成功地对 ECC 进行编程。

    使用链接器生成的 ECC 时:只有通过情况和失败情况之间的差值是您正在  新设置中加载地址范围0x7800C - 0x7801C 内的某些内容。

    到目前为止、我的理解是否正确?

    如果需要、您在链接器命令文件中进行了哪些更改以包含此新地址范围?

    谢谢。此致、
    瓦姆西

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

    您好 Vamsi、

    总结一下以下几点:

    • 当使用链接器生成 ECC 时、OTP 的 ECC 不包含在输出十六进制 文件中
      • 这表示 我们使用该 hex 文件刷写的所有处理器、存在 ECC 不可纠正的错误
      • 对于用此 hex 文件刷写的处理器、我们在连接调试器时遇到问题。
      • 当我们可以连接时、我们已尝试使处理器进入等待状态、但即使这样、我们也无法将其刷写
    • 我们更改为使用 Uniflash 计算 ECC 并对其进行编程、这似乎包括 OTP
      • 我们 在闪存中刷写的处理器没有问题

    我们 将更改为继续使用 UniFlash、因此不再需要链接器方法。 我们不必更改链接器命令文件、只需更改链接器选项。

    现在我们要做的是找到一种方法来恢复 错误刷写的处理器。

    谢谢。

    何塞·洛佩斯

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

    Jose、

    我想:由于 ECC 未编程、因此当 BootROM 读取 OTP 时、ECC 错误可能会导致 NMI (我需要确认 BootROM 读取了哪些字段)-让我向 BootROM 团队进行核实。

    注意:更改您要编程的存储器范围需要更改链接器命令文件;但是、由于您提到您要继续使用 AutoECCgeneration 方法、因此我们应专注于恢复器件。

    谢谢。此致、
    瓦姆西

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

    您好 Vamsi、

    是的、这是正确的、我们确实在 NMI 寄存器中看到不可纠正的错误位。  我们禁用 ECC 校验并尝试使用 Code Composer 让处理器等待引导、但当我们断开连接并尝试使用 uniflash 闪存时、它不 起作用、 调试器连接被拒绝。

    请告诉我您从 BootROM 团队那里听到的消息。

    谢谢。

    何塞·洛佩斯

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

    您好、Jose、

    如果不是 Uniflash、当您使用 Code Composer Studio 使器件保持等待引导状态时、是否能够通过 CCS 加载(编程 OTP)?

    谢谢。此致、
    瓦姆西

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

    您好 Vamsi、

    尝试时、出现以下错误:

    单击"是"或"否"会多次产生相同的错误、然后显示"Load Program Failed"错误。 单击"取消"可在不刷新的情况下完成该过程。

    控制台视图已满 相关错误:

    C28xx_PROC_2: Trouble Reading Register ST1: (Error -1156 @ 0x5F010) Device may be operating in low-power mode. Do you want to bring it out of this mode? Choose 'Yes' to force the device to wake up and retry the operation. Choose 'No' to retry the operation without waking the device. (Emulation package 9.2.0.00002) 
    C28xx_PROC_2: Error: (Error -2134 @ 0x0) Unable to control device execution state. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.2.0.00002) 
    C28xx_PROC_2: Trouble Reading Register ST1: (Error -1156 @ 0x5F012) Device may be operating in low-power mode. Do you want to bring it out of this mode? Choose 'Yes' to force the device to wake up and retry the operation. Choose 'No' to retry the operation without waking the device. (Emulation package 9.2.0.00002) 
    C28xx_PROC_2: Error: (Error -2134 @ 0x0) Unable to control device execution state. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.2.0.00002) 
    C28xx_PROC_2: Trouble Reading Register PC: (Error -1156 @ 0x5F014) Device may be operating in low-power mode. Do you want to bring it out of this mode? Choose 'Yes' to force the device to wake up and retry the operation. Choose 'No' to retry the operation without waking the device. (Emulation package 9.2.0.00002) 
    C28xx_PROC_2: Error: (Error -2134 @ 0x0) Unable to control device execution state. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.2.0.00002) 
    C28xx_PROC_2: Trouble Reading Register PC: (Error -1041 @ 0x0) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 9.2.0.00002) 
    C28xx_PROC_2: Trouble Reading Register ST1: (Error -1041 @ 0x0) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 9.2.0.00002) 
    C28xx_PROC_2: Trouble Reading Register ST1: (Error -1156 @ 0x5F016) Device may be operating in low-power mode. Do you want to bring it out of this mode? Choose 'Yes' to force the device to wake up and retry the operation. Choose 'No' to retry the operation without waking the device. (Emulation package 9.2.0.00002) 
    C28xx_PROC_2: Error: (Error -2134 @ 0x0) Unable to control device execution state. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.2.0.00002) 
    C28xx_PROC_2: Error: (Error -1135 @ 0x3FC7A5) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 9.2.0.00002) 
    C28xx_PROC_2: Unable to determine target status after 20 attempts
    C28xx_PROC_2: Failed to remove the debug state from the target before disconnecting.  There may still be breakpoint op-codes embedded in program memory.  It is recommended that you reset the emulator before you connect and reload your program before you continue debugging
    C28xx_PROC_2: Error occurred during flash operation: Could not read 0x00078200@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not read 0x00078204@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not read 0x00078208@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not read 0x0005F040@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not read 0x000783F0@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not read 0x000783F2@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not read 0x000783F4@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not read 0x000783F6@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not read 0x000783F8@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not read 0x000783FA@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not read 0x000783FC@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not read 0x000783FE@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x0005F050@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x0005F052@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x0005F054@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x0005F056@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not read 0x0005F059@Data: target is not connected
    C28xx_PROC_2: Warning: Failed unlocking device (zone 2) after reset.
    C28xx_PROC_2: Error occurred during flash operation: Could not read register ST1: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write register ST1: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write register ST1: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x00007029@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x0005D22E@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x00007062@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x0005FB00@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x0005F800@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x0005F824@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x0005F820@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x0005F980@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x00000@Program: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x0010E@Program: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x00112@Program: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x00114@Program: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x00116@Program: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Cannot enable while the target is disconnected
    C28xx_PROC_2: Error occurred during flash operation: Could not read 0x00000064@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x00000064@Data: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Failed to run target while trying to execute wr_pll.alg
    C28xx_PROC_2: Error writing the PLL values (Flash algorithm timed out). Operation cancelled.
    C28xx_PROC_2: Perform a debugger reset and execute the Boot-ROM code (click on the RESUME button in CCS debug window) before erasing/loading the Flash.  If that does not help to perform a successful Flash erase/load, check the Reset cause (RESC) register, NMI shadow flag (NMISHDFLG) register and the Boot-ROM status register for further debug.
    C28xx_PROC_2: Error occurred during flash operation: Could not write 0x00000064@Data: target is not connected
    C28xx_PROC_2: File Loader: Memory write failed: Unknown error
    C28xx_PROC_2: GEL: File: C:\Code\file.hex: Load failed.
    C28xx_PROC_2: Error occurred during flash operation: Could not read register PC: target is not connected
    C28xx_PROC_2: Error occurred during flash operation: Could not write register PC: target is not connected

    谢谢。
    何塞·洛佩斯