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/TMS320F28377D:CCS/TMS320F28377D

Guru**** 2605415 points
Other Parts Discussed in Thread: UNIFLASH, CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/676413/ccs-tms320f28377d-ccs-tms320f28377d

器件型号:TMS320F28377D
主题中讨论的其他器件:UNIFLASH、controlSUITE

工具/软件:Code Composer Studio

您好!

我们有一批无法使用 CPU2片上闪存的 TMS320F28377DZWTT。 可以对 CPU1闪存进行编程,但 CPU2闪存无法进行编程( 我们测试 CPU2 RAM 是否正常 )。 所有环境都是相同的、如果我使用 TMX320F28377DZWTT 替换它、则可以对 CPU1和 CPU2闪存进行编程。 我使用 XDS100v2和 XDS200、CCS 7.1.0和 UniFlash。  这是否意味着 CPU2闪存无法通过仿真器进行连接?

误差如下所示:

[2018/3/30上午11:09:21] [INFO_C28xx_CPU2:GEL 输出:内存映射初始化完成

[2018/3/30上午11:09:21] [INFO_C28xx_CPU1:GEL 输出:内存映射初始化完成

[2018/3/30上午11:09:22] [INFO_C28xx_CPU2:如果在一个内核上执行擦除/编程(E/P)操作、则另一个内核不应从共享 RAM (SR)执行、因为它们用于 E/P 代码。 此外、CPU1将被暂停以确定将运行闪存插件代码的 CPU 的 SR 所有权、之后 CPU1将被设置为运行其应用。 在对两个闪存组进行编程后、可以开始从 SR 执行用户代码。

[2018/3/30上午11:09:22] [INFO_C28xx_CPU1:如果在一个内核上执行擦除/编程(E/P)操作、则另一个内核不应从共享 RAM (SR)执行、因为它们用于 E/P 代码。 此外、CPU1将被暂停以确定将运行闪存插件代码的 CPU 的 SR 所有权、之后 CPU1将被设置为运行其应用。 在对两个闪存组进行编程后、可以开始从 SR 执行用户代码。

[2018/3/30上午11:09:28] [成功]程序加载已成功完成。

[2018/3/30上午11:09:40] [info] C28xx_CPU2:GEL 输出:存储器映射初始化完成

[2018/3/30上午11:09:40] [info] C28xx_CPU1:GEL 输出:存储器映射初始化完成

[2018/3/30上午11:09:41] [错误] C28xx_CPU2:错误:(错误-1135 @ 0xC0CC)调试探针报告了错误。 确认调试探针配置和连接、重置调试探针、然后重试此操作。 (仿真包6.0.628.3)

[2018/3/30上午11:09:41] [错误] C28xx_CPU2:停止目标 CPU 时出现问题:(错误-1044 @ 0x0)调试探针报告了错误。 确认调试探针配置和连接、重置调试探针、然后重试此操作。 (仿真包6.0.628.3)

[2018/3/30上午11:09:41] [错误] C28xx_CPU2:错误:(错误-1135 @ 0xC0CC)调试探针报告了错误。 确认调试探针配置和连接、重置调试探针、然后重试此操作。 (仿真包6.0.628.3)

[2018/3/30上午11:09:42] [错误] C28xx_CPU2:20次尝试后无法确定目标状态

[2018/3/30上午11:09:42] [错误] C28xx_CPU2:在断开连接之前无法从目标中删除调试状态。 程序存储器中仍可能嵌入了断点运算代码。 建议您在连接之前重置仿真器、并在继续调试之前重新加载程序

[2018/3/30上午11:09:46] [错误] C28xx_CPU1:错误:(错误-1044 @ 0x0)调试探针报告了错误。 确认调试探针配置和连接、重置调试探针、然后重试此操作。 (仿真包6.0.628.3)

[2018/3/30上午11:09:46] [错误] C28xx_CPU1:错误:(错误-1135 @ 0x3FF16A)调试探针报告了错误。 确认调试探针配置和连接、重置调试探针、然后重试此操作。 (仿真包6.0.628.3)

[2018/3/30上午11:09:46] [错误] C28xx_CPU1:20次尝试后无法确定目标状态

[2018/3/30上午11:09:46] [错误] C28xx_CPU1:在断开连接之前无法从目标中删除调试状态。 程序存储器中仍可能嵌入了断点运算代码。 建议您在连接之前重置仿真器、并在继续调试之前重新加载程序

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法读取0x0007026D@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法写入0x0005F444@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:在闪存操作期间发生错误:无法读取0x0005F444@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法读取0x00130@程序:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:写入 PLL 值时出错。 (闪存算法返回错误代码)。 操作已取消。

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法写入0x0005D200@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:文件加载器:存储器写入失败:未知错误

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法读取寄存器 PC:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法写入0x0005F800@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法写入0x00000@程序:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:目标断开时无法启用

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:在闪存操作期间发生错误:无法读取0x0005F444@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法读取0x0007026D@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法写入0x0005F444@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:在闪存操作期间发生错误:无法读取0x0005F444@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:为闪存操作设置 GSxMSEL 寄存器时出错

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:尝试执行 pwrite_en.alg 时无法运行目标

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作超时、等待算法完成。 操作已取消。

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法读取0x0007026D@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法写入0x0005F444@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:在闪存操作期间发生错误:无法读取0x0005F444@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法读取0x0007026D@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法写入0x0005D200@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法读取0x5D200@程序:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法读取0x0007026D@数据:目标未连接

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存编程器:无法获取时钟信号量。 另一个内核可能仍在访问时钟寄存器。 操作已取消。

[2018/3/30上午11:10:02] [错误] C28xx_CPU2:闪存操作期间发生错误:无法写入寄存器 PC:目标未连接

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

    您是否曾尝试先对 CPU2进行编程、然后对 CPU1进行编程? 同时、我将与 Uniflash 专家核实软件是否存在任何问题。

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

    感谢您的回复、如果我使用 CCS 对闪存进行编程、问题仍然存在、不仅是 Uniflash。 我采纳您的建议、首先尝试对 CPU2进行编程、然后尝试对 CPU1进行编程、问题仍然存在。

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

    您好!

    在对 CPU2进行编程时、CPU1是否连接到 JTAG 并停止? 如果不是、请尝试连接到 CPU1并将其停止、然后对 CPU2进行编程。 如果您已经这样做了、那么您是否可以尝试将 JTAG 连接到 CPU2而不是进行编程、并查看它是否起作用。

    此致、

    Vivek Singh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。
    在对 CPU2进行编程时、CPU1是否连接到 JTAG 并停止? 是的、我可以。
    如果不是、请尝试连接到 CPU1并将其停止、然后对 CPU2进行编程。 可以、但无法对 CPU2进行编程。
    如果您已经这样做了、那么您是否可以尝试将 JTAG 连接到 CPU2而不是进行编程、并查看它是否起作用。 CPU1和 CPU2都可以在 RAM 中运行。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您使用的是哪个版本的 Uniflash? 如果未使用最新版本、您可以尝试一下吗?

    此致、

    Nirav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。 我只是尝试使用最新版本4.2.2.1692、但问题仍然存在。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您能否尝试以下确切步骤并查看其是否有用?

    1) 1)从 Target configurations 窗口启动目标配置(View -> Target Configurations ->右键点击 F28377D CCXML -> Launch Selected configuration)

    2)连接到 CPU1、然后连接到 CPU2 (在调试窗口中、选择 C28xx_CPU1、右键单击->连接目标。 对 C28xx_CPU2执行相同的操作)。

    3) 3)复位 CPU1、然后复位 CPU2 (选择 C28xx_CPU1、然后在调试窗口菜单->运行->复位-> CPU 复位。 为 C28xx_CPU2执行此操作)

    4)在 CPU2中加载代码(选择 C28xx_CPU2、然后在调试窗口菜单中单击"Run"-> Load -> Load program、然后选择要加载到 CPU2的.out 文件)

    如果上述顺序不起作用、请在上面的步骤3和步骤4之间插入下面的步骤。

    3.1) 在 CPU1和 CPU2上执行引导 ROM 代码(点击 CCS 调试窗口中的"继续"按钮)。  如果内核本身没有停止、则停止 CPU1、然后停止 CPU2。

    如果上述序列不起作用、则在发生故障时、请检查复位原因(RESC)寄存器、NMI 影子标志(NMISHDFLG)寄存器和引导 ROM 状态寄存器。  它们的值可以为我们提供一些进一步调试的线索。

     

    还有两个问题:

    1) 1)使用了什么引导模式 GPIO 配置?

    2) 2) COFF 文件中是否为 DCSM 字段分配了任何值?  如果是、您使用哪些字段和值?

    谢谢、此致、

    Vamsi

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

    我按照步骤1->2->3->3.1、RESC = 0xC0000000、NMISHDFLG = 0x0000、IPCBOOTSTS = 0x80020D00进行操作
    CPU1引导状态(地址0x0000002C)= 0x00000001、CPU2引导 ROM 状态(地址0x00000002)= 0x80020D00

    注:
    3.1)在 CPU1和 CPU2上执行引导 ROM 代码(点击 CCS 调试窗口中的"继续"按钮)。 如果内核本身没有停止、则停止 CPU1、然后停止 CPU2。
    我在 CPU1的 CCS 调试窗口中单击"恢复"按钮、然后 CPU2、CPU2将自动停止、地址为0x3FE44E、然后再次单击"恢复"按钮、CPU2将运行。

    执行步骤4、CPU1和 CPU2自动断开连接。

    引导模式 GPIO 配置为 Get Mode (1 1)、但仿真器已连接。

    我不使用 DCSM 字段、只需在 controlSUITE (blinky_dc)中加载示例代码、
    C:\ti\controlSUITE\device_support\F2837xD\V210\F2837xD_Examples_Dual\blinky_dc。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    a)请使用串行或等待引导模式并执行步骤1 -> 2 -> 3 -> 3.1 -> 4。

    执行第3.1步时、无需为 CPU2单击两次"继续"按钮。 如果磁芯停止、您可以继续执行步骤4。 如果它没有停止、您可以停止它并继续执行步骤4。

    是否在 CPU2加载失败后或在步骤4之前检查了寄存器值? 我们需要 CPU2加载失败后(步骤4之后)的值。

    b)您是否注意到 CPU2编程期间有任何 XRSn 切换? 电压线是否可能低于规格? 请访问 e2e.ti.com/.../2230646

    c)另外、请检查这是否有帮助: e2e.ti.com/.../553977

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

    感谢您的重播。

    我可以使用 C2Prog 成功地对 CPU2进行编程。 但我认为这不应该是主要问题,我将做进一步的实验。 谢谢。