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/TMS320F2812:闪存一天工作、第二天不工作

Guru**** 2604715 points
Other Parts Discussed in Thread: TMS320F2812

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/672500/ccs-tms320f2812-flash-works-one-day-and-next-day-not

器件型号:TMS320F2812

工具/软件:Code Composer Studio

您好!

我已经为此付出了一段时间的努力、但当我能够刷写我的目标(使用 Code Composer Studio 7.2.0.00013和 TI 扩展坞 USB-EMU R3的 TMS320F2812)时、它是完全随机的。 我可以尝试一次、下次遇到以下错误时、它将成功:

C28xx:写入寄存器 PC 时出现问题:(错误-1156 @ 0x0)器件可能在低功耗模式下运行。 是否要使其退出此模式? 选择"是"以强制器件唤醒、然后重试此操作。 选择"否"以在不唤醒器件的情况下重试此操作。 (仿真包6.0.628.3)

C28xx:闪存操作期间发生错误:目标写入寄存器 PC 失败

C28xx:CPU 复位失败:(错误-1041 @ 0x0)调试探针报告了错误。 确认调试探针配置和连接、重置调试探针、然后重试此操作。 (仿真包6.0.628.3)

C28xx:读取故障寄存器 PC:(错误-1156 @ 0x0)器件可能在低功耗模式下运行。 是否要使其退出此模式? 选择"是"以强制器件唤醒、然后重试此操作。 选择"否"以在不唤醒器件的情况下重试此操作。 (仿真包6.0.628.3)

C28xx:读取故障寄存器 ST1:(错误-1156 @ 0x6)器件可能在低功耗模式下运行。 是否要使其退出此模式? 选择"是"以强制器件唤醒、然后重试此操作。 选择"否"以在不唤醒器件的情况下重试此操作。 (仿真包6.0.628.3)

C28xx:GEL:执行 OnReset (1)时出错:目标无法读取寄存器 ST1

      在(ST1&~(0x0100))[F2812.GEL:286]

      在 C28x_Mode ()[F2812.GEL:38]

      OnReset (1)时

C28xx:在闪存操作期间发生错误:CPU 复位错误。 错误代码1

C28xx:写入寄存器 PC 时出现问题:(错误-1156 @ 0x0)器件可能在低功耗模式下运行。 是否要使其退出此模式? 选择"是"以强制器件唤醒、然后重试此操作。 选择"否"以在不唤醒器件的情况下重试此操作。 (仿真包6.0.628.3)

C28xx:闪存操作期间发生错误:目标写入寄存器 PC 失败

C28xx:闪存编程器:写入闪存存储器时遇到错误

C28xx:文件加载程序:内存写入失败:未知错误

C28xx:GEL:文件:D:\CCSProjects\CCS6\TEST\Debug\test.out:加载失败

 

因此、它主要是一个低功耗问题(错误-1156)和 错误-1041。 我不明白:无论是否工作、我始终使用相同的电源。 今天、我已经多次尝试 刷写目标、它给出了这个错误。 它需要几个小时、但效率不高。 我想知道,为何它会在条件相同的情况下一次和下一次不起作用。 有人可以在这里帮助我吗?

此致、Michiel van Rijnbach。

 

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

    米希尔

    当仿真器无法到达器件时、会发生此错误。 发生这种情况的原因有多种、但通常是因为器件处于无法回复仿真器发送的命令的状态。

    "低功耗模式"指的是 C2000工作模式。 在这种情况下、器件将关断许多不需要的电路以节省功耗。 您的代码中是否使用了低功耗模式(LPM)?

    一个很好的第一步是将器件置于"等待引导模式"。 这是通过在加电时保持多个器件引脚上的高电平或低电平来实现的。 《TMS320x281x DSP 引导 ROM 参考指南》概述了有关该过程的全部详细信息。 表4应该对您有所帮助。

    此致、
    Cody  

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

    您好、Cody、

    感谢你的答复。 我忘记了说我 正在使用 eZdsp 电路板、因此我认为我应该能够使用电路板上的跳线选择引导负载模式。 现在它们是 JP1:2-3位置、JP4:无连接、JP5:1-2、JP7:1-2、JP8:2-3、JP9:1-2、 JP11:1-2、JP12:2-3。 我认为 JP7选择闪存模式( eZdsp 技术参考 e2e.ti.com/.../6735.ezdspTM320F2812.pdf 中的表13 看起来与 TMS320x281x DSP 引导 ROM 参考指南中的表4相似)、所以 我认为我处于正确的引导模式 (虽然我还不确定表4中提到的分支指令是什么)。 我也 不知道您说的低功耗模式是什么意思。 这是否与表4中的任何模式相对应? 哪种模式对应于"等待引导模式"?

    另一方面、奇怪的是、有时我可以在几分钟内刷写 DSP、有时需要一个多小时、有时根本不起作用。 如果我始终以相同的模式启动(无论它是否是正确的模式)、该怎么办?

    此致、Michiel。

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

    我查看了您发送给我的参考指南、还有一些问题。 我想我不知道加载过程。 当我在 CCS 中首次运行'Debug'时、*。out 文件将上传到目标、而不管 eZdsp 电路板上的跳线设置如何、对吧? 或者、我是否需要为跳线1选择"计算机模式"? 奇怪的是、我发送给您的 eZdsp 技术参考指南中的"计算机模式"对应于 XMPNMC=0、而在您发送给我的文档中、它对应于 XMPNMC=1。 您知道那里发生了什么吗? 然后在上传后、我是否需要更改跳线1设置、以便在复位后目标将在内部引导?
    我没有自己编写代码、因此我想知道如何将分支指令包含在项目中。 我认为这是一个所谓的.asm 文件、但我不知道如何实现和编写该文件的代码。 您是否对此有某种应用手册?

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

    米希尔

        SPI 模式可用作"等待引导模式"器件将等待通过 SPI 发送命令、您不会提供这些命令、因此器件将等待并且不运行您已编程的任何代码。

    标准模式为微型计算机模式(XMP/MC = 0)、器件数据表中描述了差异。 我不知道为什么它们会有所不同。 这是一次性选择、您无需再次更改。

    链接器命令文件会将代码段放入存储器中。  

    我认为我们的多日技术讲座对您非常有帮助。   

    http://processors.wiki.ti.com/index.php/C2000_Archived_Workshops 

    (希望我不会错过您的任何问题)

    此致、
    Cody  

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

    您好、Cody、

    感谢你的答复。 实际上、我还记得之前已经下载了一个多日专题讨论会、尽管我认为它实际上是一个不同的专题讨论会(TMS320F2812数字信号处理器实现教程)。 我经常使用这种方法、但我从未真正了解过引导加载程序的详细信息、因为在过去  、大多数时候上传到目标的代码都没有问题。

    您回答了所有问题。 我想我忘了回答您的一个问题。 您询问我是否在代码中使用低功耗模式。 低功耗模式是什么意思? 是否有针对低功耗模式的特殊功能(正如我说过代码已经由其他人编写、所以我可能不知道他使用的所有功能)。

    由于每次上传代码、因此我几乎开始认为 JTAG 探针已达到其使用寿命、因为它是一个直接从我开始的方法。 您建议购买哪种 JTAG (转 USB)探头? 我认为 XDS110 JTAG 调试探针对我来说似乎是一个很好的选择。

    此致、Michiel。

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

    米希尔

    低功耗模式是器件配置。 请查看 《系统控制和中断参考指南》。

    这些模式会关闭器件内部的时钟以节省功耗、如果仿真器在处于低功耗模式时尝试连接到器件、则将无法进行响应。

    我从未佩戴过调试探针。 它们可能会遭到损坏、但它们非常可靠。

    此致、
    Cody  

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

    您好、Cody、

    感谢你的答复。 实际上、我在您之前提到的 C28x 多天技术讲座中找到了低功耗模式寄存器。 我在项目中搜索了 LPMCR、并且只在示例文件和头文件 DSP281x_SYSCTRL.h 中找到它、因此它不在我的项目中使用。

    昨天、我在没有编程的情况下多次将程序加载到目标中、只不过实际需要的时间超过一小时。 在闪存模式或 SPI 模式下加载程序不会产生影响。

    我一直使用的调试探针实际上是一个 TI 集线站 USB-EMU R3、具有自制 JTAG 电缆、并焊接到集线站、因此我不知道这是多么可靠。 此外、我认为 XDS110 JTAG 调试探针可以处理更高的位速率、很高兴看到我现在不得不等待一小时。

    此致、Michiel。

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

    米希尔

    由于代码大小较大且仿真器速度较慢、因此对器件重新编程不需要一个小时。 听起来好像您在某个地方有一个瓶颈、可能是 PC、仿真器、任何隔离器、甚至是 C2000器件。

    XDS110是一款很好的仿真器、我想您会对它感到满意、但它可能无法解决您的问题。

    从 C2000的角度来看、器件何时进行了重新编程? 器件过去是否曾使用闪存 API 来多次重写自己?

    CCS 中存在一些也会影响闪存擦除/编程时间的代码问题和设置、请检查这些线程。(忽略有关 CCS 的"免费版本"部分、它们现在全部免费)

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/438222/1597057  

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/404723 

    此致、
    Cody  

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

    您好、Cody、

    感谢你的答复。 我知道,一个小时太长了,但我很高兴它再次工作:)这是一个大型程序(83KB),但一个小时是不对的。 上周、我可以在几分钟内对目标进行编程。这就是问题、它会一直发生变化。 我不认为这是 C2000器件、因为 我在多个 eZdsp 电路板上遇到了同样的问题。 C2000芯片已经被编程数次(我说最多是100次)、但肯定不是数千次。

    它可以是仿真器、就像我说的、JTAG 电缆是自制的。 但是、也可能是因为我在 VMware 下运行 CCS、并且使用 USB3.0至 USB2.0适配器将 USB 电缆连接到仿真器板。 问题是我必须在 VMware 下运行专用软件,因为公司不允许员工在他们的笔记本电脑上安装软件。

    我查看了线程的链接、并将尝试一些建议。 它非常类似于第一篇帖子(不幸 的是、我在帖子中没有看到解决方案)、 它在.text 等待大约15分钟、然后 将其闪烁至38%、然后再等待15分钟、等等。  我不认为重新安装 CCS7会有所帮助、因为自从我第一次安装 CCS7后、我就遇到了这个问题。 我想我会一次尝试另一种方法、看看它是否会产生影响。

    此致、Michiel。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    米希尔
    这个问题似乎不是 eZdsp 的一部分、但是您应该检查电路板上的电压、它会影响闪存擦除/编程时间。

    编程和偏置是否都需要很长时间?

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

    您好、Cody、

    闪烁通常不会花费太长的时间:我会说30秒 我假设您是说我应该检查5V 电源电压?

    此致、Michiel。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    米希尔
    当刷写器件需要很长时间时、擦除器件需要花费多少时间? 编程时间是多少?

    我希望您检查器件的3.3V 电源、5V 输入将降至3.3V、从而为闪存供电。 如果元件已损坏、则器件可能只能看到3.0V 电压、这会导致擦除/编程时间延长。 在您检查电压时、最好也检查内核电压(应为~-1.9V)。

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

    您好、Cody、

    抱歉、这是一个拼写错误:我想说 擦除 闪存扇区不需要太长时间(通常大约30秒)、剩余的时间用于加载程序。 我检查了电路板上的5V 电压、该电压为5.04V、因此这似乎不是问题。 我还将检查3.3V 和1.9V (如果我可以了解测量位置)。

    此致、Michiel。

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

    您好、Cody、

    我检查了 eZdsp 上的3.3V、例如 JP7跳线(闪存模式)、这个电压为3.304V、所以我猜这是可以的。 我想我可以测量 U14的其中一个引脚上的内核电压、我认为这是 eZdsp 上内核的时钟电路。 它是一个具有5个引脚的 IC、其中一个为+1.846V (2个为 GND、一个为0.746V、一个为1.637V)。 您是否说它应该为-1.9V (负)?

    此致、Michiel。

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

    米希尔

    抱歉、这是一个拼写错误、我将写入1.8-1.9V、其中一些 F281x 器件以1.8运行、而其他器件以1.9运行。 我认为1.84V 不是问题。

    3.3V 也应该正常。

    您是否有可以尝试对设备进行编程的单独计算机? 可能是驱动程序问题导致驱动程序减慢。

    此致、
    Cody  

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

    您好、Cody、

    这就是问题所在、我的公司不允许我使用我自己的计算机(具有 USB2.0端口和管理权限)、因此我一直在运行 VMware 下的 CCS 和 USB3.0至 USB2.0适配器。 我订购了 XD110调试探针、因此下次需要刷写 DSP 时、我可以使用它、并在您提到的线程中提供建议。

    此致、Michiel。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    米希尔
    为什么使用 USB3.0转 USB2.0适配器? USB3.0端口是向后兼容的...如果在 USB3.0端口中使用 USB2.0器件、USB 3.0端口的功耗和数据速率就会比 USB2.0高。 是否存在我不知道的问题?


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

    您好、Cody、

    抱歉、ýou 完全正确。 它是 USB2.0至 USB2.0的扩展电缆。 如果我将调试探针插入 USB3.0端口、这一点没有什么不同。

    此致、Michiel。

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

    米希尔  

    我想指出的是,VMware 也可能是导致问题的原因,与简单运行操作系统相比,问题可能会更慢。

    此致、
    Cody  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    米希尔
    您是否有任何解决方案?

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

    您好、Cody、

    很抱歉、我没有更快地响应、但我太忙了、无法 再做任何测试。 我收到了 XDS110调试探针、今天我已经尝试了。 猜猜会怎么样。 我在不到一分钟的时间内就实现了目标! 这确实带来了不同。 我想我目前使用的 TI 集线站 USB-EMU R3实际上已经达到了它的使用寿命。 在过去、有人已经焊接到这个电路板上、这样 就可以使用 JTAG 电缆。 它未以"补货"方式使用。 我不知道 使用 JTAG 电缆需要进行哪些更改、但显然电路板上的自定义连接 不再那么好。 感谢 您帮助我解决问题并采取后续行动。

    此致、Michiel。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    米希尔
    我很高兴听到您的问题得到解决! 如果您有任何问题、请随时开始发布另一篇帖子!

    此致、
    Cody