1 /* -------------------------------- Arctic Core ------------------------------
\r
2 * Arctic Core - the open source AUTOSAR platform http://arccore.com
\r
4 * Copyright (C) 2009 ArcCore AB <contact@arccore.com>
\r
6 * This source code is free software; you can redistribute it and/or modify it
\r
7 * under the terms of the GNU General Public License version 2 as published by the
\r
8 * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.
\r
10 * This program is distributed in the hope that it will be useful, but
\r
11 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
\r
12 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
\r
14 * -------------------------------- Arctic Core ------------------------------*/
\r
17 * @addtogroup EcuM ECU State Manager
\r
20 * @file EcuM_Types.h
\r
21 * Typedefs needed by EcuM module. Note that types that are generated together with
\r
22 * Ecum Service Ports should be guarded by _DEFINED_TYPEDEF_FOR_<Type>_ to avoid re-definition.
24 #ifndef ECUM_TYPES_H_
\r
25 #define ECUM_TYPES_H_
\r
27 #include "Std_Types.h"
\r
30 #if defined(RTE_TYPE_H) && defined(__GNUC__)
\r
31 //#warning RTE_TYPE included before EcuM_Types.h
\r
34 #ifdef CFG_ECUM_USE_SERVICE_COMPONENT
\r
35 #include "Rte_Type.h"
\r
38 #if !defined(_DEFINED_TYPEDEF_FOR_EcuM_StateType_)
\r
39 /** Possible states */
\r
41 ECUM_STATE_APP_RUN = 0x32, //!< ECUM_STATE_APP_RUN
\r
42 ECUM_STATE_SHUTDOWN = 0x40, //!< ECUM_STATE_SHUTDOWN
\r
43 ECUM_STATE_WAKEUP = 0x20, //!< ECUM_STATE_WAKEUP
\r
44 ECUM_SUBSTATE_MASK = 0x0F, //!< ECUM_SUBSTATE_MASK
\r
45 ECUM_STATE_WAKEUP_WAKESLEEP = 0x25, //!< ECUM_STATE_WAKEUP_WAKESLEEP
\r
46 ECUM_STATE_WAKEUP_ONE = 0x21, //!< ECUM_STATE_WAKEUP_ONE
\r
47 ECUM_STATE_OFF = 0x80, //!< ECUM_STATE_OFF
\r
48 ECUM_STATE_STARTUP = 0x10, //!< ECUM_STATE_STARTUP
\r
49 ECUM_STATE_PREP_SHUTDOWN = 0x44, //!< ECUM_STATE_PREP_SHUTDOWN
\r
50 ECUM_STATE_RUN = 0x30, //!< ECUM_STATE_RUN
\r
51 ECUM_STATE_STARTUP_TWO = 0x12, //!< ECUM_STATE_STARTUP_TWO
\r
52 ECUM_STATE_WAKEUP_TTII = 0x26, //!< ECUM_STATE_WAKEUP_TTII
\r
53 ECUM_STATE_WAKEUP_VALIDATION = 0x22,//!< ECUM_STATE_WAKEUP_VALIDATION
\r
54 ECUM_STATE_GO_SLEEP = 0x49, //!< ECUM_STATE_GO_SLEEP
\r
55 ECUM_STATE_STARTUP_ONE = 0x11, //!< ECUM_STATE_STARTUP_ONE
\r
56 ECUM_STATE_WAKEUP_TWO = 0x24, //!< ECUM_STATE_WAKEUP_TWO
\r
57 ECUM_STATE_SLEEP = 0x50, //!< ECUM_STATE_SLEEP
\r
58 ECUM_STATE_WAKEUP_REACTION = 0x23, //!< ECUM_STATE_WAKEUP_REACTION
\r
59 ECUM_STATE_APP_POST_RUN = 0x33, //!< ECUM_STATE_APP_POST_RUN
\r
60 ECUM_STATE_GO_OFF_TWO = 0x4e, //!< ECUM_STATE_GO_OFF_TWO
\r
61 ECUM_STATE_RESET = 0x90, //!< ECUM_STATE_RESET
\r
62 ECUM_STATE_GO_OFF_ONE = 0x4d //!< ECUM_STATE_GO_OFF_ONE
\r
65 #define _DEFINED_TYPEDEF_FOR_EcuM_StateType_
\r
69 #if !defined(_DEFINED_TYPEDEF_FOR_EcuM_UserType_)
\r
70 typedef uint8 EcuM_UserType;
\r
72 #define _DEFINED_TYPEDEF_FOR_EcuM_UserType_
\r
76 /** Internal reset of µC (bit 2).
\r
77 * The internal reset typically only resets the µC
\r
78 * core but not peripherals or memory
\r
79 * controllers. The exact behavior is hardware
\r
81 * This source may also indicate an unhandled
\r
83 ECUM_WKSOURCE_INTERNAL_RESET = 0x04,
\r
85 /** Reset by external watchdog (bit 4), if
\r
86 * detection supported by hardware */
\r
87 ECUM_WKSOURCE_EXTERNAL_WDG = 0x10,
\r
89 /** Reset by internal watchdog (bit 3) */
\r
90 ECUM_WKSOURCE_INTERNAL_WDG = 0x08,
\r
92 /** Power cycle (bit 0) */
\r
93 ECUM_WKSOURCE_POWER = 0x01,
\r
95 /** ~0 to the power of 29 */
\r
96 ECUM_WKSOURCE_ALL_SOURCES = 0x3FFFFFFF,
\r
98 /** Hardware reset (bit 1).
\r
99 * If hardware cannot distinguish between a
\r
100 * power cycle and a reset reason, then this
\r
101 * shall be the default wakeup source */
\r
102 ECUM_WKSOURCE_RESET = 0x02
\r
105 typedef uint32 EcuM_WakeupSourceType;
\r
109 ECUM_WKSTATUS_NONE = 0, /**< No pending wakeup event was detected */
\r
110 ECUM_WKSTATUS_PENDING = 1, /**< The wakeup event was detected but not yet validated */
\r
111 ECUM_WKSTATUS_VALIDATED = 2, /**< The wakeup event is valid */
\r
112 ECUM_WKSTATUS_EXPIRED = 3 /**< The wakeup event has not been validated and has expired therefore */
\r
113 } EcuM_WakeupStatusType;
\r
117 ECUM_WWKACT_RUN = 0, /**< Initialization into RUN state */
\r
118 ECUM_WKACT_TTII = 2, /**< Execute time triggered increased inoperation protocol and shutdown */
\r
119 ECUM_WKACT_SHUTDOWN = 3 /**< Immediate shutdown */
\r
120 } EcuM_WakeupReactionType;
\r
122 #if !defined(_DEFINED_TYPEDEF_FOR_EcuM_BootTargetType_)
\r
125 ECUM_BOOT_TARGET_APP = 0, /**< The Ecu will boot into the application */
\r
126 ECUM_BOOT_TARGET_BOOTLOADER = 1 /**< The Ecu will boot into the bootloader */
\r
127 } EcuM_BootTargetType;
\r
128 #define _DEFINED_TYPEDEF_FOR_EcuM_BootTargetType_
\r
131 #endif /* ECUM_TYPES_H_ */
\r