fix: add conditional watchdog init to prevent reinitialization if already running in bootloader code

stable
Tej Sharma 2025-07-28 14:48:46 +05:30
parent f346070551
commit ca3d7ec555
3 changed files with 27 additions and 21 deletions

View File

@ -74,7 +74,6 @@ IVEC_McalStatus_e xMCAL_WatchdogInit(MCAL_WWDT_TIMER timer)
break; break;
default: return IVEC_MCAL_STATUS_INIT_FAIL; default: return IVEC_MCAL_STATUS_INIT_FAIL;
} }
DL_WWDT_disablePower(WATCHDOG_TIMER);
if(b_WDInitFlag == false) if(b_WDInitFlag == false)
{ {
/* Set Window0 as active window */ /* Set Window0 as active window */
@ -95,10 +94,9 @@ IVEC_McalStatus_e xMCAL_WatchdogInit(MCAL_WWDT_TIMER timer)
return IVEC_MCAL_STATUS_SUCCESS; return IVEC_MCAL_STATUS_SUCCESS;
} }
else else
{; {
return IVEC_MCAL_STATUS_INIT_FAIL; return IVEC_MCAL_STATUS_INIT_FAIL;
} }
} }
IVEC_McalStatus_e xMCAL_WatchdogDeInit(void) IVEC_McalStatus_e xMCAL_WatchdogDeInit(void)

View File

@ -162,6 +162,8 @@ void vMCAL_mcuInit(void)
{ {
SYSCFG_DL_initPower(); SYSCFG_DL_initPower();
vMCAL_WatchdogEnablePower(); vMCAL_WatchdogEnablePower();
// if watchDog is not initilized previoulsy in bootloader code then only initilize watchdog with 4sec timer
if(bMCAL_IsWatchdogRunning()==false)
xMCAL_WatchdogInit(MCAL_WDT_4_SEC_TIMER); // Timer Inputs can be : 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 16 , 24 , 32 , 40 , 48 , 56 , 64 in seconds xMCAL_WatchdogInit(MCAL_WDT_4_SEC_TIMER); // Timer Inputs can be : 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 16 , 24 , 32 , 40 , 48 , 56 , 64 in seconds
SYSCFG_DL_GPIO_init(); SYSCFG_DL_GPIO_init();
@ -228,3 +230,8 @@ void vMCAL_WatchdogEnablePower(void)
{ {
DL_WWDT_enablePower(WATCHDOG_TIMER); DL_WWDT_enablePower(WATCHDOG_TIMER);
} }
bool bMCAL_IsWatchdogRunning(void)
{
return DL_WWDT_isRunning(WATCHDOG_TIMER);
}

View File

@ -109,5 +109,6 @@ IVEC_McalStatus_e xMCAL_vrefInit(void);
void vMCAL_WDG_Refresh(void); void vMCAL_WDG_Refresh(void);
void vMCAL_WatchdogDisablePower(void); void vMCAL_WatchdogDisablePower(void);
void vMCAL_WatchdogEnablePower(void); void vMCAL_WatchdogEnablePower(void);
bool bMCAL_IsWatchdogRunning(void);
#endif /* UTILS_IVEC_UTILS_H_ */ #endif /* UTILS_IVEC_UTILS_H_ */