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.

[参考译文] CODECOMPOSER:如何在使用 J-link 编程器时擦除所有闪存

Guru**** 2553450 points
Other Parts Discussed in Thread: SEGGER

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1039432/codecomposer-how-to-erase-all-flash-when-using-j-link-programmer

器件型号:CODECOMPOSER
主题中讨论的其他器件:SEGGER

您好!

我已从 XDS110切换到 J-Link、以便在 CCS 10.4中对 CC26x2R 进行编程。

但是、我在任何地方都看不到 XDS110具有的任何选项、例如"擦除所有未受保护的扇区"。

那么、我的问题很简单、如何使用 CCS 和 J-Link 完全擦除 CC26x2R 器件的闪存?

谢谢!

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

    卡佐拉

    我不确定此功能是否可用。

    当使用 XDS110启动调试会话时、我可以看到名为 cc26x2_XDS.gel 的 GEL 文件被加载到调试器中。  其中包含 MassErase 函数。

    menuitem "CC13x2_CC26x2"
    /**
     * \brief    This function issues a board reset before erasing the device flash.
     *           This function disconnects from target after completion.
     *           NOTE: If CM4 DAP is locked, make sure to disable "Custom configuration"
     *                 from all sub paths in the device's target connection file (.ccxml).
     */
    hotmenu MassErase()
    {
        GEL_TextOut("Initializing.\n", "MassErase()");
        _isMassErase = 1;
    
        // Disconnect from target. This must be done for each module in the device debug sub-system hierarchy.
        DisconnectIfConnected(); // Cortex
        GEL_EvalOnTarget("<parent>", "DisconnectIfConnected()", 1); // DAP (Cortex' parent)
        GEL_EvalOnTarget("<parent>", "GEL_EvalOnTarget(\"<parent>\",\"DisconnectIfConnected()\", 1)", 1); // Icepick (DAP's parent)
    
        // Do board reset
        GEL_TextOut("Issuing Board Reset.\n", "MassErase()");
        GEL_AdvancedReset("Board Reset");
    
        // Reconnect to Icepick
        GEL_EvalOnTarget("<parent>", "GEL_EvalOnTarget(\"<parent>\",\"ConnectIfDisconnected()\", 1)", 1);
    
        // Issue mass erase from Icepick and disconnect
        GEL_EvalOnTarget("<parent>", "GEL_EvalOnTarget(\"<parent>\",\"IP_CC26xx_CHIPERASE = 1\", 1)", 1);
        GEL_EvalOnTarget("<parent>", "GEL_EvalOnTarget(\"<parent>\",\"DisconnectIfConnected()\", 1)", 1);
    
        // Workaround on engineering devices. Disconnect and reconnect for chip erase to take effect.
        ConnectIfDisconnected();
        DisconnectIfConnected();
        _isMassErase = 0;
    
        GEL_TextOut("Mass erase complete.\n", "MassErase()");
    }

    使用 jlink 时、会加载不同的 GEL 文件 cc26x2_jlnk.gel。 它没有等效函数。  查看该函数、它似乎使用 ICEPick 来执行批量擦除。  JLink 可能无法使用 ICEPick 来实现这一目的、因为它是 TI 特定的调试 IP。  我需要在连接团队中进行回放以进行评论。  我怀疑这也会影响 CCS 提供的闪存选项。

    此致、

    John

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

    卡佐拉

    我能够确认批量擦除选项不可用。

    对于其他闪存选项、SEGGER 不使用 CCS 内的选项、而是在其软件栈中的某个位置执行此操作。  也许您可以通过 JLink Commander 进行配置?  我建议联系 SEGGER 支持部门、他们应该能够提供帮助。

    此致、
    John