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.

[参考译文] TMS320F280049M:无法将项目上载到目标(设置断点时出现问题(错误-1066)&写入 PLL 值时出错)

Guru**** 2536320 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/594759/tms320f280049m-unable-to-upload-project-to-the-target-trouble-setting-breakpoint-error--1066-error-writing-the-pll-values

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

您好!

 我 有以下问题, 我无法自行解决。

 我的设置:Code Composer 7.1.0.00016、集线站[R4.1]、C2000 F28004x controlCARD A

 问题描述:在控制卡上使用 F280049M 成功调试程序一段时间后、我 在将项目加载到器件时遇到问题。 请参阅以下控制台输出:

问题与 控制卡有关、因为当我 使用另一个控制卡(相同类型)时、已成功加载项目。 (注意:项目包含一些闪存操作(擦除、写入)-这是否是问题的根源?)  

我 尝试了:

-      另一台 PC、另一个项目、相同的控制卡-相同的结果、

-      清理并重新构建项目

-      在调试配置中、我 更改了以下内容:加载 其他程序时禁用所有断点、启用 CIO 功能使用、在 连接时停止目标、在 连接时重置目标、自动生成 ECC、 在程序加载或重新启动时重置目标、 在 符号加载和 程序加载时重新启动目标-每次更改后、控制台输出仍然保持不变、

-      使用 UniFlash 4.1.1.1250擦除闪存-结果相同、控制台输出与 Code Composer Studio 中的输出相同、闪存未被擦除、

      -擦除闪存中指定的扇区-同样、

-      在控制卡上,我 尝试了 S1引导模式开关的所有4种组合,

-      重新启动、重新连接可多次重新启动或重新连接的所有设备。

 无论我更改什么、控制台输出仍然包含相同的错误。

非常感谢您的任何建议、

Marek Masár

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

    您是否在 DCSM OTP 区域中对密码进行了编程?

    谢谢、此致、
    Vamsi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Vamsi、
    感谢你的答复。 否、我没有设定密码。 但是、正如我提到过的、在我的项目中、我试验了与闪存相关的操作。 我已将大部分数据写入闪存(大约30%的闪存)。 是否有可能通过写入闪存的不正确部分而意外锁定器件? 如果是、是否有方法检查该器件是否确实通过密码锁定? 如果器件确实已锁定、是否有办法解锁此类不幸已锁定的器件? 谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Marek、

    闪存地址空间中没有密码或其他与安全相关的字段。  所有安全相关字段仅在 DCSM OTP 中。  如果您确定没有对 DCSM OTP 区域进行编程、那么我认为您在试验闪存操作时可能已经在没有 ECC 的情况下对闪存进行了编程。  如果是这种情况、您应该能够将引导引脚配置为等待引导模式(GPIO24和 GPIO32分别应为0和1)、然后加电/连接。  然后、您应该能够使用闪存插件/UniFlash 擦除闪存。  我知道您提到过您尝试了所有四种可能的引导引脚配置、但我不明白为什么这种配置不起作用。

    如果不确定是否对 DCSM OTP 区域进行了编程(通过插件 GUI 操作或代码)、如果尚未在 OTP 中对 PSWDLOCK 位置进行编程、则可以检查 OTP 密码位置。  如果 PSWDLOCK 位置未编程、OTP 密码位置将不安全、因此您应该能够将调试器连接到器件并在 MEMORY 窗口中检查密码位置。

    请参阅 TRM (www.ti.com/.../sprui33.pdf)中的2.13.1.1 CSM 密码一章。  您可以在图2-19中找到密码地址。  如果您有任何疑问、请告诉我、我可以向我们的安全专家寻求帮助。

    谢谢、此致、

    Vamsi  

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

    Vamsi、

    我使用闪存编程示例中的代码来选择 AutoEcc 选项。 我将数据写入闪存、如下所示:

    oReturnCheck = fapi_issueProgrammingCommand ((UINT32 *) u32Index、BufAddr+I、8、0、0、0、 Fapi_AutoEccGeneration);

    因此、我假设我使用 ECC 写入闪存。 但是、我还是按照您的建议尝试了等待引导模式。 这一次、我还检查了引脚 XRSn 以确认器件是否处于等待引导状态。 引脚定期下拉、因此我假设器件处于等待引导模式。 遗憾的是、输出控制台仍然存在相同的错误。

    我还检查了 DCSM OTP 中的 PSWDLOCK 位置- 0x78010 Z1OTP_PSWDLOCK 和0x78210 Z2OTP_PSWDLOCK。

    因此、器件似乎未锁定。 我 还使用 UniFlash 执行了解锁操作、结果如下:

    [15.5.2017 13:47:13] [INFO_C28xx_CPU1:执行安全操作...

    [15.5.2017 13:47:13] [INFO_C28xx_CPU1:正在解锁器件...

    [15.5.2017 13:47:13] [INFO_C28xx_CPU1:锁定状态:错误

    [15.5.2017 13:47:13] [成功] C28xx_CPU1:操作成功完成。

    我不确定我还有哪些选择。 感谢您抽出宝贵时间观看 Vamsi。

    Marek

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

    看起来设备已解锁。

    在单击擦除按钮之前、尝试通过 CCS 菜单执行 CPU 复位并执行自由运行(点击"恢复"按钮)、以便执行 BootROM 代码。 这将确保器件在使用闪存插件之前处于已知状态。 BootROM 将启用 RAM 块、这应允许闪存编程器根据需要插入断点。

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

    您好、Vamsi、

    Marek 现在已不在办公室、因此我将继续工作、直到他回来。

    我不确定是否有其他方法、但在我们的情况下、调试按钮不可用-程序未成功加载-绿色箭头(RESUME)、复位等处于活动状态。 因此、我无法实现您所需的实验。

    为了获得一些新的提示、我尝试将.cmd 文件从闪存更改为 RAM 配置->开始时、它似乎起作用了-有一个加载程序跟踪条到 RAM (停止在50%以上)、 但结果是相同的-出现了一些错误消息、请参阅下面的捕获:

    还有其他我们应该尝试的东西吗?

    非常感谢、

    MISO

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

    请不要在启动期间加载程序、而是先连接到目标、然后按照 Vamsi 提到的步骤操作、然后尝试加载程序。 在目标配置上、右键单击并启动它。 然后右键单击 CPU 并进行连接。 现在按照 Vamsi 提到的步骤操作并加载程序。

    此致、

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

    您好、Vivek、Vamsi、


    我尝试了您的建议-从 CCS 连接到目标、但 我无法强制绿色箭头进入"run"状态。 只需单击,绿色箭头就会再次可用... 看起来内部有一些不需要的断点/请参阅屏幕截图。


    我还尝试断开目标与 CCS 的连接、并使用 UniFlash 擦除存储器、但再次使用相同的错误日志。 我希望我能按照你的要求去做这些步骤。

    感谢您的建议:)

    MISO

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

    MISO、

    关于"恢复"按钮: 即使按钮可用、也没关系。  您是否尝试了重置->恢复->在 CCS 中将代码加载到 RAM 或闪存的序列?  

    您也无法将代码加载到 RAM 中这一事实表明、这不是与闪存插件相关的问题。  当遇到此错误时、您能否通过 CCS 调试器存储器窗口检查是否能够将一些数据写入 RAM 地址0x9000和0xC0BE (来自 CCS 中错误消息的地址)?

    谢谢、此致、

    Vamsi

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

    Vamsi、

    我 遵循了您的建议步骤、但未成功完成- 重置 CPU、按"恢复"箭头、尝试通过菜单中的图标加载程序->请参阅错误日志:

    我们将通过替换 controlCARD 上的 CPU 来解决此问题、但将来您有什么建议吗? 我们使用的是擦除/写入闪存 函数、可能由于代码中的一些错误、 一些重要 的扇区受到了影响...

    非常感谢 您的努力和建议、如果您有任何其他需要我们尝试的东西、我们可以。

    MISO

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

    MISO、

    感谢您的更新。

    您是否尝试按照我之前的回复(请参阅下面从我之前的回复复制的内容)中所述写入 CCS 存储器窗口?

    您也无法将代码加载到 RAM 中这一事实表明、这不是与闪存插件相关的问题。  当遇到此错误时、您能否通过 CCS 调试器存储器窗口检查是否能够将一些数据写入 RAM 地址0x9000和0xC0BE (来自 CCS 中错误消息的地址)?

    谢谢、此致、

    Vamsi

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

    您好、Vamsi、

    感谢您的快速响应。

    我连接到 CPU、重置 CPU、然后我尝试通过内存浏览器窗口向上述地址写入内容->每次我尝试在表中重新键入内容 时、都会出现地址名称为0x3fbd46的窗口(根据反汇编、ESTOP0位于该地址上)。

    还有其他我们可以尝试的东西吗?

    谢谢、

    Michal

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

    地址0x3fbd46与 BootROM 中的 NMI 处理程序相关、尤其是与闪存不可纠正的错误相关。 对于 OTP 或闪存中的某些位置、您可能错误地对 ECC 进行了编程。

    我知道您提到过您使用 AutoEccGeneration 模式。 但您说您正在进行实验。 您是否可以使用不同的数据对已编程的地址位置进行编程-这可能会导致错误的 ECC。 或者您可能已经使用了 Fapi_DataOnly 模式。

    我猜 BootROM 读取 OTP 密码位置等时会出现不可纠正的 ECC 错误 您能否检查 ECC 错误寄存器并查看不可纠正的地址低电平和高电平寄存器中包含哪些地址?

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

    Vamsi、

    请参见 ECC 寄存器、通过内存浏览器读取:

    如果您愿意,我可以将此 controlCARD 发送给您,或者我们只需更换芯片,然后继续更仔细地工作:)  

    谢谢!

    Michal

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

    米歇尔

    您可以继续更换设备。  将器件发送给 TI 以供进一步分析。

    谢谢、此致、
    Vamsi

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

    感谢您的支持和时间、

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

    正如我在离线通信中提到的、我们的安全专家提到、如果 DCSM OTP 区域中存在 ECC 错误、器件将无法使用。 由于 bootROM 在 NMI 处理程序的闪存不可纠正的错误条件下结束、我假设您的器件就是这种情况。 您可以通过单步执行 bootROM 的 DCSM 初始化代码来确认相同。 在 DCSM 初始化期间、您会注意到一个 NMI。

    如果您有任何疑问、请告诉我。 如果需要、我可以要求我们的安全专家提供更多详细信息。

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

    假设您同意我的分析并通过单步执行引导代码确认了这一点、我将关闭此主题。

    谢谢、此致、
    Vamsi