请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:PROCESSOR-SDK-AM62P 工具/软件:
我正在使用 MCU_RTI0 作为我的程序看门狗、已使用以下配置和回调初始化 WKUP ESM0。
有时我可以看到触发 ESM 事件并成功触发回调、但大多数情况下、它不是在 RTI0 超时之后、不会通过验证计数器值来触发回调。
我在 MCU+ SDK 示例中没有看到这种行为、仅会在我自己的环境中出现。
如果知道如何继续进行检查、我可以使用与示例代码类似的相同编译器、编译器选项、链接器。
静态 SDL_ESM_CONFIG RTI_Test_esmInitConfig_wkup =
{
.esmErrorConfig ={0U、3U}、/*自检错误配置*/
.enableBitmap ={0x00000007u、0x00000000u、0x00200000u、0x00000000u、
0x00000000u、0x00000000u、
}、
/**<启用所有事件:计时器和自检 事件除外、*/
/* 和主 ESM 输出。根据 esmErrorConfig 配置以测试高或低优先级事件。*/
.priorityBitmap ={0x00000007u、0x00000000u、0x00200000u、0x00000000u、
0x00000000u、0x00000000u、
}、
/**<根据 esmErrorConfig 配置以测试高或低优先事件。 */
.errorpinBitmap ={0x00000007u、0x00000000u、0x00200000u、0x00000000u、
0x00000000u、0x00000000u、
}、
/**<所有事件的高优先级: */
};
int32_t SDL_ESM_applicationCallbackFunction2 (SDL_ESM_Inst esmInst、SDL_ESM_IntType esmIntrType、
uint32_t grpChannel、 uint32_t index、uint32_t intSrc、void *arg)
{
uint32_t intrStatus = 0;
Mooncount++;
isrFlag = RTI_ESM;
SDL_RTI_getStatus (SDL_INSTANCE_MCU_RTI0_CFG、&IntrStatus);
SDL_RTI_clearStatus (SDL_INSTANCE_MCU_RTI0_CFG、IntrStatus);
/*清除 ESM 中的错误引脚*/
SDL_ESM_clrNError (SDL_ESM_INST_WKUP_ESM0);
//WDOG0_IRQs Handler_Wrapper ();
返回 SDL_PASS;
}