Revision 9ebb11a9 core/src/aos_main.cpp
core/src/aos_main.cpp | ||
---|---|---|
61 | 61 |
*/ |
62 | 62 |
#define DELAYEVENT_MASK EVENT_MASK(4) |
63 | 63 |
|
64 |
#if (AMIROOS_CFG_SSSP_ENABLE == true) || defined(__DOXYGEN__) |
|
65 |
|
|
64 | 66 |
/** |
65 | 67 |
* @brief CAN message identifier for initialization of the SSSP stack initialization sequence. |
66 | 68 |
*/ |
... | ... | |
76 | 78 |
*/ |
77 | 79 |
#define SSSP_STACKINIT_CANMSGID_ABORT 0x001 |
78 | 80 |
|
81 |
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */ |
|
82 |
|
|
79 | 83 |
/** |
80 | 84 |
* @brief CAN message identifier for calender synchronization message. |
81 | 85 |
*/ |
... | ... | |
129 | 133 |
return; |
130 | 134 |
} |
131 | 135 |
|
136 |
#if (AMIROOS_CFG_SSSP_ENABLE == true) || defined(__DOXYGEN__) |
|
132 | 137 |
/** |
133 | 138 |
* @brief Callback function to be used during SSSP stack initialization sequence. |
134 | 139 |
* |
... | ... | |
144 | 149 |
|
145 | 150 |
return; |
146 | 151 |
} |
152 |
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */ |
|
147 | 153 |
|
148 | 154 |
/** |
149 | 155 |
* @brief Helper function to serialize data. |
... | ... | |
242 | 248 |
return; |
243 | 249 |
} |
244 | 250 |
|
251 |
#if (AMIROOS_CFG_SSSP_ENABLE == true) || defined(__DOXYGEN__) |
|
245 | 252 |
/** |
246 | 253 |
* @brief Implementation of the SSSP module stack initialization sequence (startup phase 3). |
247 | 254 |
* |
... | ... | |
404 | 411 |
aosDbgPrintf("PD evt\n"); |
405 | 412 |
// deactivate S and UP |
406 | 413 |
apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_OFF); |
407 |
#if (AMIROOS_CFG_SSSP_STACK_END != true)
|
|
414 |
#if (AMIROOS_CFG_SSSP_STACK_END != true) |
|
408 | 415 |
apalControlGpioSet(&moduleSsspGpioUp, APAL_GPIO_OFF); |
409 |
#endif
|
|
416 |
#endif |
|
410 | 417 |
// set shutdown flag and exit the loop |
411 | 418 |
shutdown = AOS_SHUTDOWN_PASSIVE; |
412 | 419 |
break; |
... | ... | |
837 | 844 |
|
838 | 845 |
return shutdown; |
839 | 846 |
} |
847 |
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */ |
|
840 | 848 |
|
841 | 849 |
/** |
842 | 850 |
* @brief Application entry point. |
... | ... | |
929 | 937 |
#endif |
930 | 938 |
|
931 | 939 |
/* event associations */ |
940 |
#if (AMIROOS_CFG_SSSP_ENABLE == true) |
|
932 | 941 |
#if (AMIROOS_CFG_SSSP_STACK_START == true) && (AMIROOS_CFG_SSSP_STACK_END == true) |
933 | 942 |
chEvtRegisterMaskWithFlags(&aos.events.io, &_eventListenerIO, IOEVENT_MASK, MODULE_SSSP_EVENTFLAGS_PD | MODULE_SSSP_EVENTFLAGS_SYNC); |
934 | 943 |
#elif (AMIROOS_CFG_SSSP_STACK_START == true) |
... | ... | |
938 | 947 |
#else |
939 | 948 |
chEvtRegisterMaskWithFlags(&aos.events.io, &_eventListenerIO, IOEVENT_MASK, MODULE_SSSP_EVENTFLAGS_PD | MODULE_SSSP_EVENTFLAGS_SYNC | MODULE_SSSP_EVENTFLAGS_DN | MODULE_SSSP_EVENTFLAGS_UP); |
940 | 949 |
#endif |
950 |
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */ |
|
941 | 951 |
chEvtRegisterMask(&aos.events.os, &_eventListenerOS, OSEVENT_MASK); |
942 | 952 |
|
943 | 953 |
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_5) |
... | ... | |
1001 | 1011 |
#endif |
1002 | 1012 |
#endif |
1003 | 1013 |
|
1014 |
#if (AMIROOS_CFG_SSSP_ENABLE == true) |
|
1004 | 1015 |
/* SSSP startup OS synchronization phase (end of startup stage 2) */ |
1005 | 1016 |
while ((shutdown == AOS_SHUTDOWN_NONE) && (eventmask = aosSysSsspStartupOsInitSyncCheck(&_eventListenerIO)) != 0) { |
1006 | 1017 |
/* |
... | ... | |
1040 | 1051 |
if (shutdown == AOS_SHUTDOWN_NONE) { |
1041 | 1052 |
shutdown = _ssspModuleStackInitialization(); |
1042 | 1053 |
} |
1054 |
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */ |
|
1043 | 1055 |
|
1044 | 1056 |
/* |
1045 | 1057 |
* There must be no delays at this point, thus no hook is allowed. |
1046 | 1058 |
*/ |
1047 | 1059 |
|
1048 |
/* snychronize calendars */ |
|
1060 |
#if (AMIROOS_CFG_SSSP_ENABLE == true) |
|
1061 |
/* synchronize calendars */ |
|
1049 | 1062 |
if (shutdown == AOS_SHUTDOWN_NONE) { |
1050 | 1063 |
#if (AMIROOS_CFG_SSSP_MASTER == true) |
1051 | 1064 |
CANTxFrame frame; |
... | ... | |
1068 | 1081 |
canTransmitTimeout(&MODULE_HAL_CAN, CAN_ANY_MAILBOX, &frame, TIME_IMMEDIATE); |
1069 | 1082 |
|
1070 | 1083 |
aosDbgPrintf("done\n"); |
1071 |
#else |
|
1084 |
#else /* AMIROOS_CFG_SSSP_MASTER == false */
|
|
1072 | 1085 |
CANRxFrame frame; |
1073 | 1086 |
uint64_t encoded; |
1074 | 1087 |
struct tm t; |
... | ... | |
1094 | 1107 |
} else { |
1095 | 1108 |
aosDbgPrintf("fail (timeout)\n"); |
1096 | 1109 |
} |
1097 |
#endif |
|
1110 |
#endif /* AMIROOS_CFG_SSSP_MASTER == false */
|
|
1098 | 1111 |
aosDbgPrintf("\n"); |
1099 | 1112 |
} |
1113 |
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */ |
|
1100 | 1114 |
|
1101 | 1115 |
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_8) |
1102 | 1116 |
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_8_ARGS) |
... | ... | |
1147 | 1161 |
case IOEVENT_MASK: |
1148 | 1162 |
// evaluate flags |
1149 | 1163 |
eventflags = chEvtGetAndClearFlags(&_eventListenerIO); |
1164 |
#if (AMIROOS_CFG_SSSP_ENABLE == true) |
|
1150 | 1165 |
// PD event |
1151 | 1166 |
if (eventflags & MODULE_SSSP_EVENTFLAGS_PD) { |
1152 | 1167 |
shutdown = AOS_SHUTDOWN_PASSIVE; |
1153 | 1168 |
} |
1169 |
#endif |
|
1154 | 1170 |
// all other events |
1155 | 1171 |
#ifdef MODULE_MAIN_LOOP_IO_EVENT |
1156 | 1172 |
else { |
Also available in: Unified diff