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.

[参考译文] LP-MSPM0G3507:关于禁用 SWD

Guru**** 2479755 points
Other Parts Discussed in Thread: MSPM0G3507, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1286593/lp-mspm0g3507-about-swd-disabling

器件型号:LP-MSPM0G3507
主题中讨论的其他器件:MSPM0G3507SysConfig

您好!

我正在考虑在程序运行时禁用 SWD 的方法。


我正在考虑重写 NONMAIN 的 SWDP_MODE 以禁用以实现这一点。
我正在尝试使用下面的示例代码和 SDK 进行检查、但您能提供一些信息吗?
示例代码:flashctl_nonmain_memory_WRITE_LP_MSPM0G3507_nortos_ticlang
SDK:mspm0_SDK_1_10_00_05


1.运行示例代码时会显示以下字符。 有问题吗?
Cortex_M0P:闪存编程器:错误、尝试不擦除的非主写入!


2.一旦我启动,它就会转换为默认处理程序。 原因是什么?
如果先执行出厂复位、它将运行到结束、但随后将转换到默认处理程序。


3.在步骤2中写入 NONMAIN 存储器后、当我检查存储器浏览器时、我会看到一个类似下面的值、并且看起来我没有正确写入。 为什么?


4.写入后、当我打开电源并尝试调试时、出现(Error-6305)、调试变得不可能。 原因是什么?

此致。

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

    您好!

    如果要禁用 SWD 功能。 我建议您使用以下方法。 请参阅 TRM 第2.4.1.4章

    此致、

    现金豪

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

    嗨、Cash

    我曾尝试使用 SWDCFG 来禁用、但关闭电源后再打开则会启用 SWD。

    我希望能够像下面的程序那样随意禁用/启用它、一旦禁用它、即使关闭和打开电源、我也要将其保持在禁用状态、直到重新启用它。

    int main(void)
    {
        int swd_fg = 0;
    
        SYSCFG_DL_init();
    
        while (1) {
            if( swd_fg == 1 )
            {
                // SWD Disable
                DL_SYSCTL_disableSWD();
                swd_fg = 0;
            }
            if( swd_fg == 2 )
            {
                // SWD Enable
                SYSCTL->SOCLOCK.SWDCFG =
                    (SYSCTL_SWDCFG_KEY_VALUE & ~SYSCTL_SWDCFG_DISABLE_TRUE);
                swd_fg = 0;
            }
        }
    }

    此致。

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

    您好!

    嗯、好的。  

    在擦除和写入 NONMAIN 存储器之前请谨慎。

    如果要通过 NONMAIN 配置禁用 SWD 接口。 您可以使用任何示例代码。 然后进入项目的 SysConfig->NONMAIN。 禁用 SWD 端口并构建项目。 将工程下载到 MCU 时、它还会使用您的新配置覆盖 NONMAIN 部分。  

    此致、

    现金豪

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

    你好、现金。


    返回到第一个问题、我将通过重写 NONMAIN 区域来尝试实现该设置。
    使用示例代码"flashctl_nonmain_memory_WRITE_LP_MSPM0G3507_nortos_ticlang"重写时、似乎未按前面所述正确重写。
    是否有任何步骤来重写它?
    或者我是否必须事先在 SysConfig 中设置它?

    此致、

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

    您好!

    优先在 SysConfig 中编写 NONMAIN。

    此致、

    现金豪

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、现金。
    我了解。
    因此、是否不能在程序运行时按如下所示切换设置?
    如下图所示、在刷写程序时、设置为① μ s、当程序执行期间满足特定条件时、设置更改为② μ s。
    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我认为它可以擦除应用程序中的 NONMAIN 并向其写入新值。 使用 SysConfig 可以帮助您正确 计算应写入 NONMAIN 的值。  

    完成设置后、NONMAIN 区域应改写为以下内容。  

     

    此致、

    现金豪