Other Parts Discussed in Thread: AM2612
器件型号: AM2612
TI 团队大家好、
我们在一个设计中使用了 AM2612 器件。 我们观察到 WARMRSTn 引脚被驱动为低电平、在 MCU 侧没有观察到复位功能。
我们想了解 WARMRSTn 引脚的确切用途和功能、以及预计会触发复位的条件
注意:当 PORz 引脚驱动为低电平时、复位行为符合预期
您能帮助澄清一下这种行为吗?
谢谢您、
Anand
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.
您好:
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
它仍在尝试写入 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
最后、这一变化后、效果很好。
[引述 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请在构建时使用此项以避免警告:
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 的命令是正确的。 之后、请清理并重建工程。
[/报价]