fix: add conditional watchdog init to prevent reinitialization if already running in bootloader code
parent
f346070551
commit
ca3d7ec555
|
|
@ -74,31 +74,29 @@ 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 */
|
|
||||||
DL_WWDT_setActiveWindow(WATCHDOG_TIMER, DL_WWDT_WINDOW0);
|
|
||||||
|
|
||||||
DL_WWDT_initWatchdogMode(WATCHDOG_TIMER, Clk_Div,Tmr_Per, DL_WWDT_RUN_IN_SLEEP, DL_WWDT_WINDOW_PERIOD_0, DL_WWDT_WINDOW_PERIOD_0); // DL_WWDT_WINDOW_PERIOD_0 is for selecting the closed percentage of the watchdog
|
|
||||||
if(DL_WWDT_isPowerEnabled(WATCHDOG_TIMER))
|
|
||||||
{
|
{
|
||||||
while ((DL_SYSCTL_getClockStatus() & (DL_SYSCTL_CLK_STATUS_LFOSC_GOOD))!= (DL_SYSCTL_CLK_STATUS_LFOSC_GOOD));
|
/* Set Window0 as active window */
|
||||||
|
DL_WWDT_setActiveWindow(WATCHDOG_TIMER, DL_WWDT_WINDOW0);
|
||||||
|
|
||||||
|
DL_WWDT_initWatchdogMode(WATCHDOG_TIMER, Clk_Div,Tmr_Per, DL_WWDT_RUN_IN_SLEEP, DL_WWDT_WINDOW_PERIOD_0, DL_WWDT_WINDOW_PERIOD_0); // DL_WWDT_WINDOW_PERIOD_0 is for selecting the closed percentage of the watchdog
|
||||||
|
if(DL_WWDT_isPowerEnabled(WATCHDOG_TIMER))
|
||||||
|
{
|
||||||
|
while ((DL_SYSCTL_getClockStatus() & (DL_SYSCTL_CLK_STATUS_LFOSC_GOOD))!= (DL_SYSCTL_CLK_STATUS_LFOSC_GOOD));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
return IVEC_MCAL_STATUS_TIMEOUT;
|
||||||
|
}
|
||||||
|
b_WDInitFlag = true;
|
||||||
|
|
||||||
|
return IVEC_MCAL_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
return IVEC_MCAL_STATUS_INIT_FAIL;
|
||||||
return IVEC_MCAL_STATUS_TIMEOUT;
|
|
||||||
}
|
}
|
||||||
b_WDInitFlag = true;
|
|
||||||
|
|
||||||
return IVEC_MCAL_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{;
|
|
||||||
return IVEC_MCAL_STATUS_INIT_FAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IVEC_McalStatus_e xMCAL_WatchdogDeInit(void)
|
IVEC_McalStatus_e xMCAL_WatchdogDeInit(void)
|
||||||
|
|
|
||||||
|
|
@ -162,7 +162,9 @@ void vMCAL_mcuInit(void)
|
||||||
{
|
{
|
||||||
SYSCFG_DL_initPower();
|
SYSCFG_DL_initPower();
|
||||||
vMCAL_WatchdogEnablePower();
|
vMCAL_WatchdogEnablePower();
|
||||||
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
|
// 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
|
||||||
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);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -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_ */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue