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.

[参考译文] F28M36H33B2:无法加载C28x

Guru**** 2513045 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/643107/f28m36h33b2-cannot-load-c28x

部件号:F28M36H33B2

我可以连接到我的蛇腹设备上的C28x内核,但无法加载.out文件。 当加载到RAM时,它显示"文件加载失败",当加载到闪存时,它显示"设备可能在低功耗模式下运行"。 我已经在使用此设备一段时间了,定期刷新它,只是突然出现此错误。 重新启动后,我不再在闪存中运行代码。 但是M3芯仍然工作正常。 C28似乎损坏了。 这是可维修的还是我应该只更换IC? 尝试将程序加载到C28内核时,请参阅以下详细的控制台输出。

C28xx_0:凝胶输出:
内存映射初始化完成
C28xx_0:凝胶输出:
RAM初始化完成
C28xx_0:文件加载器:验证失败:地址0x0981D处的值@程序不匹配请验证目标内存和内存映射。
C28xx_0:GEL:文件:C:\Users\xxxxxxxxxxxxxxx.out:发生数据验证错误,文件加载失败。
C28xx_0:在0x80e3处设置操作“保持暂停”的断点时出现问题:(错误-1066 @ 0x80E3)无法设置/清除请求的断点。 验证断点地址是否在有效内存中。 (仿真软件包6.0 .628.3)
C28xx_0:断点管理器:正在重试AET断点
C28xx_0:无法运行目标CPU:(错误-1156 @ 0x8050)设备可能正在低功耗模式下运行。 是否要使其退出此模式? 选择'是'强制设备唤醒,然后重试此操作。 选择'No'(否)在不唤醒设备的情况下重试此操作。 (仿真软件包6.0 .628.3)
C28xx_0:错误:(错误-2134 @ 0x0)无法控制设备执行状态。 重置设备,然后重试此操作。 如果错误仍然存在,请确认配置,关闭电路板电源后重启,和/或尝试更可靠的JTAG设置(例如,Lower TCLK)。 (仿真软件包6.0 .628.3)
C28xx_0:停止目标CPU时出现问题:(错误-1135 @ 0x8050)调试探测器报告错误。 确认调试探测器配置和连接,重置调试探测器,然后重试此操作。 (仿真软件包6.0 .628.3)
C28xx_0:错误:(错误-1135 @ 0x8050)调试探测器报告错误。 确认调试探测器配置和连接,重置调试探测器,然后重试此操作。 (仿真软件包6.0 .628.3)
C28xx_0:20次尝试后无法确定目标状态
C28xx_0:断开连接前无法从目标中删除调试状态。 程序存储器中可能仍嵌入断点操作代码。 建议在连接之前重置仿真器,并在继续调试之前重新加载程序
C28xx_0:闪存操作期间发生错误:目标停止时无法禁用硬件断点。 停止目标并重试
C28xx_0:闪存操作期间发生错误:无法写入0x0.0064万@数据:未连接目标
C28xx_0:闪存操作期间发生错误:无法读取0x0.44万@数据:未连接目标
C28xx_0:闪存操作期间发生错误:无法读取0x0.4402万@数据:未连接目标
C28xx_0:闪存操作期间发生错误:无法读取0x0.4406万@数据:未连接目标
C28xx_0:闪存操作期间发生错误:无法写入0x0万@程序:未连接目标
C28xx_0:闪存操作期间发生错误:目标断开连接时无法启用
C28xx_0:闪存操作期间发生错误:无法读取0x0.0064万@数据:未连接目标
C28xx_0:闪存操作期间发生错误:无法写入0x0.0064万@数据:未连接目标
C28xx_0:闪存操作期间发生错误:尝试执行pwrite_dis.alg时运行目标失败
C28xx_0:等待算法完成时闪存操作超时。 操作已取消。
C28xx_0:闪存操作期间发生错误:无法写入0x0.0064万@数据:未连接目标
C28xx_0:闪存操作期间发生错误:无法写入0x0.0004万E26@数据:未连接目标
C28xx_0:闪存操作期间发生错误:无法读取0x04E26@程序:未连接目标
C28xx_0:闪存编程器:无法获取时钟信号。 另一个内核可能仍在访问时钟寄存器。 操作已取消。
C28xx_0:文件加载器:内存写入失败:未知错误
C28xx_0:GEL:文件:C:\Users\XXXXXXXXXXXXXXXXXXXXXXXX.OUT:加载失败。
C28xx_0:闪存操作期间发生错误:无法读取寄存器PC:未连接目标
C28xx_0:闪存操作期间发生错误:无法写入0x0.4万@数据:未连接目标
C28xx_0:闪存操作期间发生错误:无法写入0x0万@程序:未连接目标
C28xx_0:闪存操作期间发生错误:目标断开连接时无法启用
C28xx_0:闪存操作期间发生错误:无法读取0x0.0064万@数据:未连接目标
C28xx_0:闪存操作期间发生错误:无法写入0x0.0064万@数据:未连接目标
C28xx_0:闪存操作期间发生错误:尝试执行pwrite_en.alg时运行目标失败
C28xx_0:等待算法完成时闪存操作超时。 操作已取消。
C28xx_0:闪存操作期间发生错误:无法写入0x0.0064万@数据:未连接目标
C28xx_0:闪存操作期间发生错误:无法写入0x0.0004万E26@数据:未连接目标
C28xx_0:闪存操作期间发生错误:无法读取0x04E26@程序:未连接目标
C28xx_0:闪存编程器:无法获取时钟信号。 另一个内核可能仍在访问时钟寄存器。 操作已取消。
C28xx_0:闪存操作期间发生错误:无法写入寄存器PC:未连接目标

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

    在CCS中,如果您在内存监视窗口中打开闪存位置,您会看到什么值? 如果所有闪存位置都显示为0x0,是否可以将地址0x13FFF8处的值检查为0x13FFFF。 如果看到非零值,则可以使用这些值解锁设备并擦除闪存,这样可以解决问题。

    此致,
    Vivek Singh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我看一下地址0x12万,根据数据表,我认为它是一个闪存位置,我只看到0x00。 如果我看一下从0x13FFF8到0x13FFFF的地址,它也只是零。 这是什么意思? 如何解锁和擦除设备?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    阿尔伯特
    您可以检查地图文件,查看哪些代码段进入上述CSM密码区域,如果链接了任何常量数据,则获取值。 然后,您可以使用这些值解锁使用CCS闪存插件的CSM,并擦除密码。

    该键用于查找您在闪存的CSM密码位置中编程的内容。 如果您意外链接了任何文本句段, 然后,您可以使用C2000十六进制工具(请参阅设备TRM的设备引导ROM部分,它介绍了十六进制工具),将您的coff转换为十六进制文件,并检查十六进制文件以找出哪些值链接到密码位置,然后使用它来解锁设备。

    希望这有所帮助。

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

    阿尔伯特

    如果没有对C28xPSWDLOCK进行编程,则您可以知道在闪存中编程的密码(通过调试器或从任何内存运行的代码),您可以使用该密码解锁。 如果没有对C28xPSWDLOCK进行编程,并且在密码位置中看到所有零,则意味着密码位置都是用0进行编程的。 此类设备无法再解锁。

    如果对C28xPSWDLOCK进行了编程,则可以尝试Santosh给出的建议,以确定将哪些值编程到密码位置。  如果不是全为零,则可以解锁(如果您弄清楚密码)。

    谢谢,此致,
    Vamsi

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

    您好,Vamsi/Santosh

    请检查我是否正确分析 了此问题吗?

    密码位置均为零。  这意味着密码被锁定或意外编程为零。

    然后,我查看地址0x24.02万–0x0.2403万FF处的C28 OTP存储器,查看密码是否已锁定。 (这是验证C28xPSWDLOCK的正确地址吗?) 某些值不为零,这意味着密码确实已锁定,这就是上述密码位置为零的原因。

    现在,我需要找出编程到密码位置(0x0013FFF8)中的值,然后将其写入CSMKEY寄存器以解锁。 我在地图文件的全局数据符号下查找了这些值,但我不确定这是否是正确的位置,因为它在地址 0x0013FFF8处只显示了一个2字节值(4fff)。

    这没有意义,因为我所期望的是一个128位值,可以写入到0xAE0 - 0xAE6处的CSMKEY寄存器中。 在地图文件中的何处可以找到密码?

     

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

    TRM表示OTPSECLOCK字段(包含C28xPSWDLOCK位字段)在M3 OTP存储器映射上的地址0x68.1万处。
    您是否可以检查此位置的值?

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

    好的,这适用于M3和C28。 我当时认为0x68.1万仅用于M3密码锁。  

    在这种情况下,密码不会被锁定,因为0x68.1万都是一个密码。

    因此,密码(0x0013FFF8)实际上全部为零。 这是否意味着我根本无法解锁此设备? 即使我完全擦除它吗?

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

    是的, 如果密码值全部为零,则无法解锁,并且您不能在没有解锁的情况下清除闪存。 您需要更换设备。  

    此设备是否在较早时工作正常,然后停止工作或从未工作? 您是否在任何其他设备上遇到过类似问题?

    Vivek Singh

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

    它运行良好,我将它用于发展,然后停止了。 我在其他设备上没有遇到此问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,在这种情况下,似乎不是.out问题。 可能是由于电源或其他原因导致闪存操作中断,因此它被锁定。 您需要更换设备。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    会这样做,谢谢Vivek。