\r
void EcuM_Init( void )\r
{\r
+ Std_ReturnType status;\r
internal_data.current_state = ECUM_STATE_STARTUP_ONE;\r
\r
// Initialize drivers that are needed to determine PostBuild configuration\r
// TODO Mcu_ResetType type = Mcu_GetResetReason();\r
\r
// Set default shutdown target\r
- // TODO: Rewrite into function (EcuM_SelectShutdownTarget). //REQ:Ecum2181\r
- internal_data.shutdown_target = internal_data.config->EcuMDefaultShutdownTarget;\r
- internal_data.shutdown_mode = internal_data.config->EcuMDefaultShutdownMode;\r
+ status = EcuM_SelectShutdownTarget(internal_data.config->EcuMDefaultShutdownTarget,internal_data.config->EcuMDefaultSleepMode);/** @req EcuM2181 */\r
+ if(status!=E_OK){\r
+ //TODO: Report error.\r
+ }\r
+\r
\r
// Set default application mode\r
- internal_data.app_mode = internal_data.config->EcuMDefaultAppMode;\r
+ status = EcuM_SelectApplicationMode(internal_data.config->EcuMDefaultAppMode);\r
+ if(status!=E_OK){\r
+ //TODO: Report error.\r
+ }\r
+\r
#if defined(USE_COMM)\r
internal_data.run_comm_requests = 0;\r
#endif\r
internal_data.initiated = TRUE;\r
\r
// Start this baby up\r
- StartOS(internal_data.app_mode);\r
+ AppModeType appMode;\r
+ StartOS(EcuM_GetApplicationMode(&appMode)); /** @req EcuM2141 */\r
}\r
\r
void EcuM_StartupTwo(void)\r
{\r
+ //TODO: Validate that we are in state STARTUP_ONE.\r
#if defined(USE_NVM)\r
extern CounterType Os_Arc_OsTickCounter;\r
TickType tickTimerStart, tickTimer, tickTimerElapsed;\r
{\r
VALIDATE_RV(internal_data.initiated, ECUM_SELECTAPPMODE_ID, ECUM_E_NOT_INITIATED, E_NOT_OK);\r
\r
- // TODO Save this application mode for next startup\r
- (void) appMode;\r
+ internal_data.app_mode = appMode;\r
\r
- return E_NOT_OK;\r
+ return E_OK;\r
}\r
\r
Std_ReturnType EcuM_GetApplicationMode(AppModeType* appMode)\r
}\r
\r
\r
-Std_ReturnType EcuM_SelectShutdownTarget(EcuM_StateType target, uint8 mode)\r
+Std_ReturnType EcuM_SelectShutdownTarget(EcuM_StateType shutdownTarget, uint8 sleepMode)\r
{\r
VALIDATE_RV(internal_data.initiated, ECUM_SELECTSHUTDOWNTARGET_ID, ECUM_E_NOT_INITIATED, E_NOT_OK);\r
- VALIDATE_RV((target == ECUM_STATE_OFF) || (target == ECUM_STATE_RESET) || (target == ECUM_STATE_SLEEP), ECUM_SELECTSHUTDOWNTARGET_ID, ECUM_E_INVALID_PAR, E_NOT_OK);\r
+ VALIDATE_RV((shutdownTarget == ECUM_STATE_OFF) || (shutdownTarget == ECUM_STATE_RESET) || (shutdownTarget == ECUM_STATE_SLEEP), ECUM_SELECTSHUTDOWNTARGET_ID, ECUM_E_INVALID_PAR, E_NOT_OK);\r
\r
- internal_data.shutdown_target = target;\r
- internal_data.shutdown_mode = mode;\r
+ internal_data.shutdown_target = shutdownTarget;\r
+ internal_data.sleep_mode = sleepMode;\r
\r
return E_OK;\r
}\r
\r
\r
-Std_ReturnType EcuM_GetShutdownTarget(EcuM_StateType *target, uint8 *mode)\r
+Std_ReturnType EcuM_GetShutdownTarget(EcuM_StateType* shutdownTarget, uint8* sleepMode) /** @req EcuM2824 */\r
{\r
VALIDATE_RV(internal_data.initiated, ECUM_GETSHUTDOWNTARGET_ID, ECUM_E_NOT_INITIATED, E_NOT_OK);\r
- VALIDATE_RV(target != NULL, ECUM_GETSHUTDOWNTARGET_ID, ECUM_E_NULL_POINTER, E_NOT_OK);\r
- VALIDATE_RV(mode != NULL, ECUM_GETSHUTDOWNTARGET_ID, ECUM_E_NULL_POINTER, E_NOT_OK);\r
+ VALIDATE_RV(shutdownTarget != NULL, ECUM_GETSHUTDOWNTARGET_ID, ECUM_E_NULL_POINTER, E_NOT_OK);\r
+ VALIDATE_RV(sleepMode != NULL, ECUM_GETSHUTDOWNTARGET_ID, ECUM_E_NULL_POINTER, E_NOT_OK);\r
\r
- *target = internal_data.shutdown_target;\r
- *mode = internal_data.shutdown_mode;\r
+ *shutdownTarget = internal_data.shutdown_target;\r
+ *sleepMode = internal_data.sleep_mode;\r
\r
return E_OK;\r
}\r
}\r
\r
#if defined(USE_COMM)\r
-Std_ReturnType EcuM_ComM_RequestRUN(NetworkHandleType user)\r
+Std_ReturnType EcuM_ComM_RequestRUN(NetworkHandleType channel)\r
{\r
VALIDATE_RV(internal_data.initiated, ECUM_COMM_REQUESTRUN_ID, ECUM_E_NOT_INITIATED, E_NOT_OK);\r
- VALIDATE_RV(user < 32, ECUM_COMM_REQUESTRUN_ID, ECUM_E_INVALID_PAR, E_NOT_OK);\r
+ VALIDATE_RV(channel < 32, ECUM_COMM_REQUESTRUN_ID, ECUM_E_INVALID_PAR, E_NOT_OK);\r
\r
- internal_data.run_comm_requests |= (uint32)1 << user;\r
+ internal_data.run_comm_requests |= (uint32)1 << channel;\r
\r
return E_OK;\r
}\r
\r
-Std_ReturnType EcuM_ComM_ReleaseRUN(NetworkHandleType user)\r
+Std_ReturnType EcuM_ComM_ReleaseRUN(NetworkHandleType channel)\r
{\r
VALIDATE_RV(internal_data.initiated, ECUM_COMM_RELEASERUN_ID, ECUM_E_NOT_INITIATED, E_NOT_OK);\r
- VALIDATE_RV(user < 32, ECUM_COMM_RELEASERUN_ID, ECUM_E_INVALID_PAR, E_NOT_OK);\r
+ VALIDATE_RV(channel < 32, ECUM_COMM_RELEASERUN_ID, ECUM_E_INVALID_PAR, E_NOT_OK);\r
\r
- internal_data.run_comm_requests &= ~((uint32)1 << user);\r
+ internal_data.run_comm_requests &= ~((uint32)1 << channel);\r
\r
return E_OK;\r
}\r
\r
-boolean EcuM_ComM_HasRequestedRUN(NetworkHandleType user)\r
+boolean EcuM_ComM_HasRequestedRUN(NetworkHandleType channel)\r
{\r
VALIDATE_RV(internal_data.initiated, ECUM_COMM_HASREQUESTEDRUN_ID, ECUM_E_NOT_INITIATED, FALSE);\r
- VALIDATE_RV(user < 32, ECUM_COMM_HASREQUESTEDRUN_ID, ECUM_E_INVALID_PAR, FALSE);\r
+ VALIDATE_RV(channel < 32, ECUM_COMM_HASREQUESTEDRUN_ID, ECUM_E_INVALID_PAR, FALSE);\r
\r
- return (internal_data.run_comm_requests &((uint32)1 << user)) != 0;\r
+ return (internal_data.run_comm_requests &((uint32)1 << channel)) != 0;\r
}\r
#endif\r
\r