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.

[参考译文] AM2612:AM2612 — 有关 WARMRSTn 功能的说明

Guru**** 2914220 points

Other Parts Discussed in Thread: AM2612

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1645978/am2612-am2612---clarification-on-warmrstn-functionality

器件型号: AM2612

TI 团队大家好、

我们在一个设计中使用了 AM2612 器件。 我们观察到 WARMRSTn 引脚被驱动为低电平、在 MCU 侧没有观察到复位功能。

我们想了解 WARMRSTn 引脚的确切用途和功能、以及预计会触发复位的条件

注意:当 PORz 引脚驱动为低电平时、复位行为符合预期

您能帮助澄清一下这种行为吗?

谢谢您、

Anand

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

    我们将在我们的设计中使用看门狗计时器、其输出当前连接到 WARMRSTn 引脚。 我们对此连接有一些担心、因此您能否就看门狗计时器输出应连接到 WARMRSTn 引脚还是 PORz 引脚提供指导?

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

    尊敬的 Anand:

    如寄存器说明中所述、默认情况下会禁用焊盘的热复位输入。 它需要在软件中启用、然后才能使用。

    此致、

    Sahana

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

    它可以连接到 WARMRSTn 或 PORz、具体取决于您的应用使用情况。 只要您已如上所述启用热复位焊盘输入、两者都可以正常工作。

    此致、

    Sahana

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

    尊敬的团队:

    依据 API 启用热复位焊盘

      /*以仅启用 PAD(禁用包括 PAD 在内的所有旁路位)*/
      SoC_configureWarmResetSource(0U);
    即使如此、我们也不会在软件中看到任何复位。 应启动初始化过程的编程。
    请提供用于热复位的任何示例软件
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    SOC_configureWarmResetSource(0U);

    该 API 似乎没有正确实现。 我将提出一个内部错误来纠正这一问题。 同时、请使用 soc_rcm.c 文件中更新的 API 定义并在重新构建工程之前重新构建库、以使其生效。

    void SOC_configureWarmResetSource(uint32_t source)
    {
        CSL_top_rcmRegs *ptrTOPRCMRegs;
        //uint32_t regVal;
    
        ptrTOPRCMRegs = SOC_rcmGetBaseAddressTOPRCM();
    
        /* Unlock CONTROLSS_CTRL registers */
        SOC_controlModuleUnlockMMR(SOC_DOMAIN_ID_MAIN, TOP_RCM_PARTITION0);
    
        //regVal = ptrTOPRCMRegs->WARM_RESET_CONFIG;
        CSL_REG32_WR(&ptrTOPRCMRegs->WARM_RESET_CONFIG, source);
    
        /* Lock CONTROLSS_CTRL registers */
        SOC_controlModuleLockMMR(SOC_DOMAIN_ID_MAIN, TOP_RCM_PARTITION0);
    
    }

    谢谢、

    Sahana

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

    尊敬的 Sahana:

    请按照建议在更新后找到结果。

    它显示了不同的问题

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

    您好:

    在执行“SOC_configureWarmResetSource“时或在引脚上提供热复位输入之后是否会出现数据中止? 哪个指令导致数据中止? 您能否查看系统寄存器下的 CP15_DATA_FAULT_ADDRESS?

    此致、

    Sahana

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

    您好、

    执行 SOC_configureWarmResetSource 时出现数据中止。

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

    它仍在尝试写入 0x00770077、这是 regval 的值(ptrTOPRCMRegs->warm_reset_config 的先前值)

    您能否 在 soc_ccm.c 中分享更新后的代码? 它是否进行了更新  

    void SOC_configureWarmResetSource(uint32_t source)
    {
        CSL_top_rcmRegs *ptrTOPRCMRegs;
        //uint32_t regVal;
    
        ptrTOPRCMRegs = SOC_rcmGetBaseAddressTOPRCM();
    
        /* Unlock CONTROLSS_CTRL registers */
        SOC_controlModuleUnlockMMR(SOC_DOMAIN_ID_MAIN, TOP_RCM_PARTITION0);
    
        //regVal = ptrTOPRCMRegs->WARM_RESET_CONFIG;
        CSL_REG32_WR(&ptrTOPRCMRegs->WARM_RESET_CONFIG, source);
    
        /* Lock CONTROLSS_CTRL registers */
        SOC_controlModuleLockMMR(SOC_DOMAIN_ID_MAIN, TOP_RCM_PARTITION0);
    
    }

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

    你(们)好

    是的、更新后的代码与上述代码相同、库是使用 make 命令构建的  

    gmake -j libs-scrub device=am261x

     

    gmake -j libs device=am261x instrumentation_mode=yes

     

    和代码:

    void SOC_configureWarmResetSource (uint32_t source)

      CSL_top_rcmRegs *ptrTOPRCMRegs;

      uint32_t regVal;

     

      ptrTOPRCMRegs = SOC_rcmGetBaseAddressTOPRCM ();

     

      /*解锁 CONTROLSS_CTRL 寄存器*/

      SoC_controlModuleUnlockMMR (SOC_DOMAIN_ID_MAIN、TOP_RCM_PARTITION0);

     

      // regVal = ptrTOPRCMRegs->warm_reset_config;

      CSL_REG32_WR(&ptrTOPRCMRegs->WARM_RESET_CONFIG,源代码);

     

      /*锁定 CONTROLSS_CTRL 寄存器*/

      SoC_controlModuleLockMMR (SOC_DOMAIN_ID_MAIN、TOP_RCM_PARTITION0);

     

    }

    编译命令是否正确?

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

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

    请在构建时使用此项以避免警告:

    void SOC_configureWarmResetSource(uint32_t source)
    {
        CSL_top_rcmRegs *ptrTOPRCMRegs;
        uint32_t regVal;
    
        ptrTOPRCMRegs = SOC_rcmGetBaseAddressTOPRCM();
    
        /* Unlock CONTROLSS_CTRL registers */
        SOC_controlModuleUnlockMMR(SOC_DOMAIN_ID_MAIN, TOP_RCM_PARTITION0);
    
        regVal = (uint32_t)&(ptrTOPRCMRegs->WARM_RESET_CONFIG);
        CSL_REG32_WR(regVal, source);
    
        /* Lock CONTROLSS_CTRL registers */
        SOC_controlModuleLockMMR(SOC_DOMAIN_ID_MAIN, TOP_RCM_PARTITION0);
    
    }

    构建 libs 的命令是正确的。 之后、请清理并重建工程。

    谢谢、

    Sahana

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

    你(们)好  

    我们已经测试了这些更改、但问题仍然与前面所述的相同、因为它正在进入数据中止状态

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

    作为一种权变措施、您能否尝试将 soc_ccm.c 文件与工程目录中的更改一起包含在该文件中、并检查它是否正常工作?

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

    最后、这一变化后、效果很好。

    [引述 userid=“539334“ url=“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1645978/am2612-am2612---clarification-on-warmrstn-functionality/6355897

    请在构建时使用此项以避免警告:

    全屏
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    11.
    12
    13
    14
    15
    16
    17
    void SOC_configureWarmResetSource (uint32_t source)
    CSL_top_rcmRegs *ptrTOPRCMRegs;
    uint32_t regVal;
    ptrTOPRCMRegs = SOC_rcmGetBaseAddressTOPRCM ();
    /*解锁 CONTROLSS_CTRL 寄存器*/
    SoC_controlModuleUnlockMMR (SOC_DOMAIN_ID_MAIN、TOP_RCM_PARTITION0);
    regVal =(uint32_t) 和 (ptrTOPRCMRegs->WARM_RESET_CONFIG);
    CSL_REG32_WR (regVal、source);
    /*锁定 CONTROLSS_CTRL 寄存器*/
    SoC_controlModuleLockMMR (SOC_DOMAIN_ID_MAIN、TOP_RCM_PARTITION0);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    构建 libs 的命令是正确的。 之后、请清理并重建工程。

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

    尊敬的 Sahana:

    感谢您的更新、上述修复工作正常。