Revision 75c1f470 core/src/aos_main.cpp

View differences:

core/src/aos_main.cpp
64 64
 */
65 65
#define DELAYEVENT_MASK                         EVENT_MASK(4)
66 66

  
67
#if (AMIROOS_CFG_SSSP_ENABLE == true) || defined(__DOXYGEN__)
67
#if ((AMIROOS_CFG_SSSP_ENABLE == true) && (HAL_USE_CAN == TRUE)) || defined(__DOXYGEN__)
68
#define SSSP_STAGE3_ENABLE                      true
69
#else /* (AMIROOS_CFG_SSSP_ENABLE == true) && (HAL_USE_CAN == TRUE) */
70
#define SSSP_STAGE3_ENABLE                      false
71
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) && (HAL_USE_CAN == TRUE) */
72

  
73
#if (SSSP_STAGE3_ENABLE == true) || defined(__DOXYGEN__)
68 74

  
69 75
/**
70 76
 * @brief   CAN message identifier for initialization of the SSSP stack initialization sequence.
......
81 87
 */
82 88
#define SSSP_STACKINIT_CANMSGID_ABORT           0x001
83 89

  
84
#else /* (AMIROOS_CFG_SSSP_ENABLE == true) */
90
#endif /* (SSSP_STAGE3_ENABLE == true) */
85 91

  
92
#if (AMIROOS_CFG_SSSP_ENABLE != true) || defined(__DOXYGEN__)
86 93
/**
87 94
 * @brief   Default shutdown mode if SSSP is unavailable.
88 95
 */
89 96
#define AOS_SHUTDOWN_DEFAULT                    AOS_SHUTDOWN_DEEPSLEEP
90

  
91 97
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
92 98

  
99
#if (HAL_USE_CAN == TRUE) || defined(__DOXYGEN__)
93 100
/**
94 101
 * @brief   CAN message identifier for calender synchronization message.
95 102
 */
96 103
#define CALENDERSYNC_CANMSGID                   0x004
104
#endif /* (HAL_USE_CAN == TRUE) */
97 105

  
98 106
/******************************************************************************/
99 107
/* EXPORTED VARIABLES                                                         */
......
159 167
  return;
160 168
}
161 169

  
162
#if (AMIROOS_CFG_SSSP_ENABLE == true) || defined(__DOXYGEN__)
170
#if (SSSP_STAGE3_ENABLE == true) || defined(__DOXYGEN__)
163 171
/**
164 172
 * @brief   Callback function to be used during SSSP stack initialization sequence.
165 173
 *
......
175 183

  
176 184
  return;
177 185
}
178
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
186
#endif /* (SSSP_STAGE3_ENABLE == true) */
179 187

  
180 188
/**
181 189
 * @brief   Helper function to serialize data.
......
278 286

  
279 287
#endif /* (HAL_USE_RTC == TRUE) */
280 288

  
281
#if (AMIROOS_CFG_SSSP_ENABLE == true) || defined(__DOXYGEN__)
289
#if (SSSP_STAGE3_ENABLE) || defined(__DOXYGEN__)
282 290
/**
283 291
 * @brief   Implementation of the SSSP module stack initialization sequence (startup phase 3).
284 292
 *
......
885 893

  
886 894
  return shutdown;
887 895
}
888
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
896
#endif /* (SSSP_STAGE3_ENABLE == true) */
889 897

  
890 898
/**
891 899
 * @brief   Application entry point.
......
990 998
#if defined(MODULE_INIT_PERIPHERY_COMM)
991 999
  MODULE_INIT_PERIPHERY_COMM();
992 1000
#endif /* defined(MODULE_INIT_PERIPHERY_COMM) */
993
#if (AMIROOS_CFG_SSSP_ENABLE == true)
994
  // CAN (mandatory)
995
  canStart(&MODULE_HAL_CAN, &moduleHalCanConfig);
996
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
1001
#if (SSSP_STAGE3_ENABLE == true )
1002
  // CAN
1003
  if (MODULE_HAL_CAN.state == CAN_STOP) {
1004
    canStart(&MODULE_HAL_CAN, &moduleHalCanConfig);
1005
  }
1006
#endif /* (SSSP_STAGE3_ENABLE == true) */
997 1007
  // user interface (if any)
998 1008
#if defined(MODULE_HAL_PROGIF)
999 1009
  aosIOChannelInit(&_stdiochannel, (BaseAsynchronousChannel*)&MODULE_HAL_PROGIF);
......
1088 1098
    }
1089 1099
  }
1090 1100

  
1101
#if (HAL_USE_CAN == TRUE)
1102

  
1091 1103
  /*
1092 1104
   * There must be no delays at this point, thus no hook is allowed.
1093 1105
   */
......
1096 1108
  if (shutdown == AOS_SHUTDOWN_NONE) {
1097 1109
    shutdown = _ssspModuleStackInitialization();
1098 1110
  }
1099
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
1100 1111

  
1101 1112
  /*
1102 1113
   * There must be no delays at this point, thus no hook is allowed.
1103 1114
   */
1104 1115

  
1105
#if (AMIROOS_CFG_SSSP_ENABLE == true) && (HAL_USE_RTC == TRUE)
1116
#if (HAL_USE_RTC == TRUE)
1106 1117
  /* synchronize calendars */
1107 1118
  if (shutdown == AOS_SHUTDOWN_NONE) {
1108 1119
#if (AMIROOS_CFG_SSSP_MASTER == true)
......
1160 1171
#endif /* (AMIROOS_CFG_SSSP_MASTER == true) */
1161 1172
    aosDbgPrintf("\n");
1162 1173
  }
1163
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) && (HAL_USE_RTC == TRUE) */
1174
#endif /* (HAL_USE_RTC == TRUE) */
1175
#endif /* (HAL_USE_CAN == TRUE) */
1176
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
1164 1177

  
1165 1178
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_8)
1166 1179
#if defined(AMIROOS_CFG_MAIN_INIT_HOOK_8_ARGS)
......
1324 1337
#endif /* defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_3) */
1325 1338

  
1326 1339
  /* stop all periphery communication */
1327
#if (AMIROOS_CFG_SSSP_ENABLE == true)
1328
  // CAN (mandatory)
1329
  canStop(&MODULE_HAL_CAN);
1330
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) */
1331 1340
#if defined(MODULE_SHUTDOWN_PERIPHERY_COMM)
1332 1341
  MODULE_SHUTDOWN_PERIPHERY_COMM();
1333 1342
#endif /* defined(MODULE_SHUTDOWN_PERIPHERY_COMM) */
1343
#if (HAL_USE_CAN == TRUE)
1344
  if (MODULE_HAL_CAN.state != CAN_STOP) {
1345
    canStop(&MODULE_HAL_CAN);
1346
  }
1347
#endif /* (HAL_USE_CAN == TRUE) */
1334 1348

  
1335 1349
#if defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_4)
1336 1350
#if defined(AMIROOS_CFG_MAIN_SHUTDOWN_HOOK_4_ARGS)

Also available in: Unified diff