const EcuM_SleepModeType *sleepModePtr;\r
sleepModePtr = &internal_data.config->EcuMSleepModeConfig[internal_data.sleep_mode];\r
\r
+ EcuM_GenerateRamHash();\r
+\r
Mcu_SetMode(sleepModePtr->EcuMSleepModeMcuMode);\r
\r
/* @req 3.1.5/ECUM2863 */\r
wMask = EcuM_GetValidatedWakeupEvents();\r
\r
/* TODO: We have skipped the TTII timer here */\r
- wReaction = ( 0 == wMask ) ? ECUM_WKACT_SHUTDOWN : ECUM_WKACT_RUN\r
+\r
+ /* If the wakeup mask here is != 0 we have a validated wakeup event ->\r
+ * go back to RUN */\r
+ wReaction = ( 0 == wMask ) ? ECUM_WKACT_SHUTDOWN : ECUM_WKACT_RUN;\r
wReaction = EcuM_OnWakeupReaction(wReaction);\r
\r
if( wReaction == ECUM_WKACT_RUN) {\r
-\r
set_current_state(ECUM_STATE_WAKEUP_TWO);\r
} else {\r
- /* Shutdown, again */\r
- /* TODO:\r
- set_current_state(ECUM_STATE_WAKEUP_TWO);\r
+ /* From figure 28 it seems that we should go to SHUTDOWN/GO SLEEP) again from wakeup\r
+ * not going up to RUN/RUN II state again. */\r
+ set_current_state(ECUM_STATE_GO_SLEEP);\r
}\r
break;\r
}\r
\r
case ECUM_STATE_WAKEUP_TWO:\r
+#if defined(USE_DEM)\r
Dem_Init();\r
-\r
+#endif\r
+ set_current_state(ECUM_STATE_RUN);\r
break;\r
\r
default:\r