Revision 9ebb11a9

View differences:

core/inc/aos_confcheck.h
53 53
 * SSSP parameters and options
54 54
 */
55 55

  
56
#ifndef AMIROOS_CFG_SSSP_MASTER
57
  #error "AMIROOS_CFG_SSSP_MASTER not defined in aosconf.h"
56
#ifndef AMIROOS_CFG_SSSP_ENABLE
57
  #error "AMIROOS_CFG_SSSP_ENABLE not defined in aosconf.h"
58 58
#endif
59 59

  
60
#ifndef AMIROOS_CFG_SSSP_STACK_START
61
  #error "AMIROOS_CFG_SSSP_STACK_START not defined in aosconf.h"
62
#endif
60
# if (AMIROOS_CFG_SSSP_ENABLE == true)
63 61

  
64
#ifndef AMIROOS_CFG_SSSP_STACK_END
65
  #error "AMIROOS_CFG_SSSP_STACK_END not defined in aosconf.h"
66
#endif
62
  #ifndef AMIROOS_CFG_SSSP_MASTER
63
    #error "AMIROOS_CFG_SSSP_MASTER not defined in aosconf.h"
64
  #endif
67 65

  
68
#if (AMIROOS_CFG_SSSP_STACK_START == true) && (AMIROOS_CFG_SSSP_STACK_END == true)
69
  #warning "AMIROOS_CFG_SSSP_STACK_START and AMIROOS_CFG_SSSP_STACK_END both enabled in aosconf.h"
70
  #if (AMIROOS_CFG_SSSP_MASTER != true)
71
    #error "AMIROOS_CFG_SSSP_MASTER must be enabled in this case"
66
  #ifndef AMIROOS_CFG_SSSP_STACK_START
67
    #error "AMIROOS_CFG_SSSP_STACK_START not defined in aosconf.h"
72 68
  #endif
73
#endif
74 69

  
75
#ifndef AMIROOS_CFG_SSSP_SIGNALDELAY
76
  #error "AMIROOS_CFG_SSSP_SIGNALDELAY not defined in aosconf.h"
77
#endif
70
  #ifndef AMIROOS_CFG_SSSP_STACK_END
71
    #error "AMIROOS_CFG_SSSP_STACK_END not defined in aosconf.h"
72
  #endif
73

  
74
  #if (AMIROOS_CFG_SSSP_STACK_START == true) && (AMIROOS_CFG_SSSP_STACK_END == true)
75
    #warning "AMIROOS_CFG_SSSP_STACK_START and AMIROOS_CFG_SSSP_STACK_END both enabled in aosconf.h"
76
    #if (AMIROOS_CFG_SSSP_MASTER != true)
77
      #error "AMIROOS_CFG_SSSP_MASTER must be enabled in this case"
78
    #endif
79
  #endif
80

  
81
  #ifndef AMIROOS_CFG_SSSP_SIGNALDELAY
82
    #error "AMIROOS_CFG_SSSP_SIGNALDELAY not defined in aosconf.h"
83
  #endif
84

  
85
  #ifndef AMIROOS_CFG_SSSP_SYSSYNCPERIOD
86
    #error "AMIROOS_CFG_SSSP_SYSSYNCPERIOD not defined in aosconf.h"
87
  #endif
78 88

  
79
#ifndef AMIROOS_CFG_SSSP_SYSSYNCPERIOD
80
  #error "AMIROOS_CFG_SSSP_SYSSYNCPERIOD not defined in aosconf.h"
81 89
#endif
82 90

  
83 91
/*
core/inc/aos_system.h
65 65
#define AOS_SYSTEM_EVENTFLAGS_RESTART           (AOS_SYSTEM_EVENTFLAGS_SHUTDOWN | (eventflags_t)(1 << 4))
66 66

  
67 67
/**
68
 * @brief   Enumerator to identify shutdown types.
69
 */
70
typedef enum aos_shutdown {
71
  AOS_SHUTDOWN_NONE,            /**< Default value if no shutdown action was initiated */
72
  AOS_SHUTDOWN_PASSIVE,         /**< Passive shutdown (initiated by another module). */
73
  AOS_SHUTDOWN_HIBERNATE,       /**< Active shutdown to hibernate mode. */
74
  AOS_SHUTDOWN_DEEPSLEEP,       /**< Active shutdown to deepsleep mode. */
75
  AOS_SHUTDOWN_TRANSPORTATION,  /**< Active shutdown to transportation mode. */
76
  AOS_SHUTDOWN_RESTART,         /**< Active saystem restart request. */
77
} aos_shutdown_t;
78

  
79
#if (AMIROOS_CFG_SSSP_ENABLE == true) || defined(__DOXYGEN__)
80

  
81
/**
68 82
 * @brief   Major version of the implemented SSSP.
69 83
 */
70 84
#define AOS_SYSTEM_SSSP_VERSION_MAJOR           1
......
81 95
#define AOS_SYSTEM_SSSP_TIMEOUT                 (10 * AMIROOS_CFG_SSSP_SIGNALDELAY)
82 96

  
83 97
/**
84
 * @brief   Enumerator to identify shutdown types.
85
 */
86
typedef enum aos_shutdown {
87
  AOS_SHUTDOWN_NONE,            /**< Default value if no shutdown action was initiated */
88
  AOS_SHUTDOWN_PASSIVE,         /**< Passive shutdown (initiated by another module). */
89
  AOS_SHUTDOWN_HIBERNATE,       /**< Active shutdown to hibernate mode. */
90
  AOS_SHUTDOWN_DEEPSLEEP,       /**< Active shutdown to deepsleep mode. */
91
  AOS_SHUTDOWN_TRANSPORTATION,  /**< Active shutdown to transportation mode. */
92
  AOS_SHUTDOWN_RESTART,         /**< Active saystem restart request. */
93
} aos_shutdown_t;
94

  
95
/**
96 98
 * @brief   Enumerator of the several stages of SSSP.
97 99
 */
98 100
typedef enum aos_ssspstage {
......
119 121
 */
120 122
typedef uint16_t aos_ssspmoduleid_t;
121 123

  
124
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */
125

  
122 126
/**
123 127
 * @brief   AMiRo-OS base system structure.
124 128
 */
125 129
typedef struct aos_system {
126

  
130
#if (AMIROOS_CFG_SSSP_ENABLE == true) || defined(__DOXYGEN__)
127 131
  /**
128 132
   * @brief   SSSP relevant data.
129 133
   */
......
140 144
     */
141 145
    aos_ssspmoduleid_t moduleId;
142 146
  } sssp;
147
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */
143 148

  
144 149
  /**
145 150
   * @brief   System I/O stream.
......
192 197
  void aosSysInit(void);
193 198
#endif
194 199
  void aosSysStart(void);
200
#if (AMIROOS_CFG_SSSP_ENABLE == true) || defined (__DOXYGEN__)
195 201
  eventmask_t aosSysSsspStartupOsInitSyncCheck(event_listener_t* syncEvtListener);
202
#endif
196 203
  void aosSysGetUptimeX(aos_timestamp_t* ut);
197 204
  void aosSysGetDateTime(struct tm* dt);
198 205
  void aosSysSetDateTime(struct tm* dt);
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 {
core/src/aos_system.c
79 79
 */
80 80
static systime_t _synctime;
81 81

  
82
#if (AMIROOS_CFG_SSSP_MASTER == true) || defined(__DOXYGEN__)
82
#if ((AMIROOS_CFG_SSSP_ENABLE == true) && (AMIROOS_CFG_SSSP_MASTER == true)) || defined(__DOXYGEN__)
83 83
/**
84 84
 * @brief   Timer to drive the SYS_SYNC signal for system wide time synchronization according to SSSP.
85 85
 */
......
91 91
static aos_timestamp_t _syssynctime;
92 92
#endif
93 93

  
94
#if ((AMIROOS_CFG_SSSP_MASTER != true) && (AMIROOS_CFG_PROFILE == true)) || defined(__DOXYGEN__)
94
#if ((AMIROOS_CFG_SSSP_ENABLE == true) && (AMIROOS_CFG_SSSP_MASTER != true) && (AMIROOS_CFG_PROFILE == true)) || defined(__DOXYGEN__)
95 95
/**
96 96
 * @brief   Offset between local clock and system wide synchronization signal.
97 97
 */
......
101 101
 * @brief   Weighting factor for the low-pass filter used for calculating the @p _syssyncskew value.
102 102
 */
103 103
#define SYSTEM_SYSSYNCSKEW_LPFACTOR   (0.1f / AOS_SYSTEM_TIME_RESOLUTION)
104
#endif
104
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) && (AMIROOS_CFG_SSSP_MASTER != true) && (AMIROOS_CFG_PROFILE == true) */
105 105

  
106 106
#if (AMIROOS_CFG_SHELL_ENABLE == true) || defined(__DOXYGEN__)
107 107
/**
......
250 250
#endif
251 251
  _printSystemInfoLine(stream, "Architecture", SYSTEM_INFO_NAMEWIDTH, "%s", PORT_ARCHITECTURE_NAME);
252 252
  _printSystemInfoSeparator(stream, '-', SYSTEM_INFO_WIDTH);
253
#if (AMIROOS_CFG_SSSP_ENABLE == true)
253 254
  _printSystemInfoLine(stream, "AMiRo-OS" , SYSTEM_INFO_NAMEWIDTH, "%u.%u.%u %s (SSSP %u.%u)", AMIROOS_VERSION_MAJOR, AMIROOS_VERSION_MINOR, AMIROOS_VERSION_PATCH, AMIROOS_RELEASE_TYPE, AOS_SYSTEM_SSSP_VERSION_MAJOR, AOS_SYSTEM_SSSP_VERSION_MINOR);
255
#else
256
  _printSystemInfoLine(stream, "AMiRo-OS" , SYSTEM_INFO_NAMEWIDTH, "%u.%u.%u %s", AMIROOS_VERSION_MAJOR, AMIROOS_VERSION_MINOR, AMIROOS_VERSION_PATCH, AMIROOS_RELEASE_TYPE);
257
#endif
254 258
  _printSystemInfoLine(stream, "AMiRo-LLD" , SYSTEM_INFO_NAMEWIDTH, "%u.%u.%u %s (periphAL %u.%u)", AMIRO_LLD_VERSION_MAJOR, AMIRO_LLD_VERSION_MINOR, AMIRO_LLD_VERSION_PATCH, AMIRO_LLD_RELEASE_TYPE, PERIPHAL_VERSION_MAJOR, PERIPHAL_VERSION_MINOR);
255 259
  _printSystemInfoLine(stream, "ChibiOS/RT" , SYSTEM_INFO_NAMEWIDTH, "%u.%u.%u %s", CH_KERNEL_MAJOR, CH_KERNEL_MINOR, CH_KERNEL_PATCH, (CH_KERNEL_STABLE == 1) ? "stable" : "non-stable");
256 260
  _printSystemInfoLine(stream, "ChibiOS/HAL", SYSTEM_INFO_NAMEWIDTH, "%u.%u.%u %s", CH_HAL_MAJOR, CH_HAL_MINOR, CH_HAL_PATCH, (CH_HAL_STABLE == 1) ? "stable" : "non-stable");
......
269 273
                         (BL_CALLBACK_TABLE_ADDRESS->vBootloader.identifier == BL_VERSION_ID_AMiRoBLT_PreAlpha) ? "pre-alpha" :
270 274
                         "<release type unknown>",
271 275
                         BL_CALLBACK_TABLE_ADDRESS->vSSSP.major, BL_CALLBACK_TABLE_ADDRESS->vSSSP.minor);
276
#if (AMIROOS_CFG_SSSP_ENABLE == true)
272 277
    if (BL_CALLBACK_TABLE_ADDRESS->vSSSP.major != AOS_SYSTEM_SSSP_VERSION_MAJOR) {
273 278
      if (stream) {
274 279
        chprintf(stream, "WARNING: Bootloader and AMiRo-OS implement incompatible SSSP versions!\n");
......
276 281
        aosprintf("WARNING: Bootloader and AMiRo-OS implement incompatible SSSP versions!\n");
277 282
      }
278 283
    }
284
#endif
279 285
    _printSystemInfoLine(stream, "Compiler", SYSTEM_INFO_NAMEWIDTH, "%s %u.%u.%u", (BL_CALLBACK_TABLE_ADDRESS->vCompiler.identifier == BL_VERSION_ID_GCC) ? "GCC" : "<compiler unknown>", BL_CALLBACK_TABLE_ADDRESS->vCompiler.major, BL_CALLBACK_TABLE_ADDRESS->vCompiler.minor, BL_CALLBACK_TABLE_ADDRESS->vCompiler.patch); // TODO: support other compilers than GCC
280 286
  } else {
281 287
    if (stream) {
......
287 293

  
288 294
  // print dynamic information about the module
289 295
  _printSystemInfoSeparator(stream, '-', SYSTEM_INFO_WIDTH);
296
#if (AMIROOS_CFG_SSSP_ENABLE == true)
290 297
  if (aos.sssp.moduleId != 0) {
291 298
    _printSystemInfoLine(stream, "Module ID", SYSTEM_INFO_NAMEWIDTH, "%u", aos.sssp.moduleId);
292 299
  } else {
293 300
    _printSystemInfoLine(stream, "Module ID", SYSTEM_INFO_NAMEWIDTH, "not available");
294 301
  }
302
#endif
295 303
  _printSystemInfoLine(stream, "Date", SYSTEM_INFO_NAMEWIDTH, "%s %02u-%02u-%04u", (dt.tm_wday == 0) ? "Sunday" : (dt.tm_wday == 1) ? "Monday" : (dt.tm_wday == 2) ? "Tuesday" : (dt.tm_wday == 3) ? "Wednesday" : (dt.tm_wday == 4) ? "Thursday" : (dt.tm_wday == 5) ? "Friday" : "Saturday",
296 304
                       dt.tm_mday,
297 305
                       dt.tm_mon + 1,
......
500 508
  chprintf(stream, "%10u seconds\n", (uint8_t)(uptime % MICROSECONDS_PER_MINUTE / MICROSECONDS_PER_SECOND));
501 509
  chprintf(stream, "%10u milliseconds\n", (uint16_t)(uptime % MICROSECONDS_PER_SECOND / MICROSECONDS_PER_MILLISECOND));
502 510
  chprintf(stream, "%10u microseconds\n", (uint16_t)(uptime % MICROSECONDS_PER_MILLISECOND / MICROSECONDS_PER_MICROSECOND));
503
#if (AMIROOS_CFG_SSSP_MASTER != true) && (AMIROOS_CFG_PROFILE == true)
511
#if (AMIROOS_CFG_SSSP_ENABLE == true) && (AMIROOS_CFG_SSSP_MASTER != true) && (AMIROOS_CFG_PROFILE == true)
504 512
  chprintf(stream, "SSSP synchronization offset: %.3fus per %uus\n", _syssyncskew, AMIROOS_CFG_SSSP_SYSSYNCPERIOD);
505 513
#endif /* AMIROOS_CFG_SSSP_MASTER != true && AMIROOS_CFG_PROFILE == true */
506 514
  _printSystemInfoSeparator(stream, '=', SYSTEM_INFO_WIDTH);
......
625 633
  return;
626 634
}
627 635

  
628
#if (AMIROOS_CFG_SSSP_MASTER != true) || defined(__DOXYGEN__)
636
#if ((AMIROOS_CFG_SSSP_ENABLE == true) && (AMIROOS_CFG_SSSP_MASTER != true)) || defined(__DOXYGEN__)
629 637
/**
630 638
 * @brief   Callback function for the Sync signal interrupt.
631 639
 *
......
667 675

  
668 676
  return;
669 677
}
670
#endif
678
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) && (AMIROOS_CFG_SSSP_MASTER != true) */
671 679

  
672 680
/**
673 681
 * @brief   Callback function for the uptime accumulation timer.
......
691 699
  return;
692 700
}
693 701

  
694
#if (AMIROOS_CFG_SSSP_MASTER == true) || defined (__DOXYGEN__)
702
#if ((AMIROOS_CFG_SSSP_ENABLE == true) && (AMIROOS_CFG_SSSP_MASTER == true)) || defined (__DOXYGEN__)
695 703
/**
696 704
 * @brief   Periodic system synchronization callback function.
697 705
 * @details Toggles the SYS_SYNC signal and reconfigures the system synchronization timer.
......
725 733

  
726 734
  return;
727 735
}
728
#endif
736
#endif /* (AMIROOS_CFG_SSSP_ENABLE == true) && (AMIROOS_CFG_SSSP_MASTER == true) */
729 737

  
730 738
/**
731 739
 * @brief   AMiRo-OS system initialization.
......
744 752

  
745 753
  /* set local variables */
746 754
  chVTObjectInit(&_systimer);
755
#if (AMIROOS_CFG_SSSP_ENABLE == true)
747 756
  _synctime = 0;
748 757
  _uptime = 0;
749 758
#if (AMIROOS_CFG_SSSP_MASTER == true)
......
753 762
#if (AMIROOS_CFG_SSSP_MASTER != true) && (AMIROOS_CFG_PROFILE == true)
754 763
  _syssyncskew = 0.0f;
755 764
#endif
765
#else /* AMIROOS_CFG_SSSP_ENABLE == false */
766
  // start the uptime counter
767
  chSysLock();
768
  _synctime = chVTGetSystemTimeX();
769
  _uptime = 0;
770
  chVTSetI(&_systimer, SYSTIMER_PERIOD, &_uptimeCallback, NULL);
771
  chSysUnlock();
772
#endif /* AMIROOS_CFG_SSSP_ENABLE */
756 773

  
757 774
  /* initialize aos configuration */
775
#if (AMIROOS_CFG_SSSP_ENABLE == true)
758 776
  aos.sssp.stage = AOS_SSSP_STARTUP_2_1;
759 777
  aos.sssp.moduleId = 0;
778
#endif
760 779
  aosIOStreamInit(&aos.iostream);
761 780
  chEvtObjectInit(&aos.events.io);
762 781
  chEvtObjectInit(&aos.events.os);
763 782

  
764 783
  /* interrupt setup */
784
#if (AMIROOS_CFG_SSSP_ENABLE == true)
765 785
  // PD signal
766 786
  palSetPadCallback(moduleSsspGpioPd.gpio->port, moduleSsspGpioPd.gpio->pad, _intCallback, &moduleSsspGpioPd.gpio->pad);
767 787
  palEnablePadEvent(moduleSsspGpioPd.gpio->port, moduleSsspGpioPd.gpio->pad, APAL2CH_EDGE(moduleSsspGpioPd.meta.edge));
......
782 802
  palSetPadCallback(moduleSsspGpioUp.gpio->port, moduleSsspGpioUp.gpio->pad, _intCallback, &moduleSsspGpioUp.gpio->pad);
783 803
  palEnablePadEvent(moduleSsspGpioUp.gpio->port, moduleSsspGpioUp.gpio->pad, APAL2CH_EDGE(moduleSsspGpioUp.meta.edge));
784 804
#endif
805
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */
785 806
#ifdef MODULE_INIT_INTERRUPTS
786 807
  // further interrupt signals
787 808
  MODULE_INIT_INTERRUPTS();
......
803 824
#if (AMIROOS_CFG_TESTS_ENABLE == true)
804 825
  aosShellAddCommand(&aos.shell, &_shellcmd_kerneltest);
805 826
#endif
806
#endif
827
#endif /* AMIROOS_CFG_SHELL_ENABLE == true */
807 828

  
808 829
  return;
809 830
}
......
813 834
 */
814 835
inline void aosSysStart(void)
815 836
{
837
#if (AMIROOS_CFG_SSSP_ENABLE == true)
816 838
  // update the system SSSP stage
817 839
  aos.sssp.stage = AOS_SSSP_OPERATION;
818 840

  
......
828 850
    chSysUnlock();
829 851
  }
830 852
#endif
853
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */
831 854

  
832 855
  // print system information;
833 856
  _printSystemInfo((BaseSequentialStream*)&aos.iostream);
......
845 868
  return;
846 869
}
847 870

  
871
#if (AMIROOS_CFG_SSSP_ENABLE == true) || defined(__DOXYGEN__)
848 872
/**
849 873
 * @brief   Implements the SSSP startup synchronization step.
850 874
 *
......
895 919
    return m;
896 920
  }
897 921
}
922
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */
898 923

  
899 924
/**
900 925
 * @brief   Retrieves the system uptime.
......
953 978
  // check arguments
954 979
  aosDbgCheck(shutdown != AOS_SHUTDOWN_NONE);
955 980

  
981
#if (AMIROOS_CFG_SSSP_ENABLE == true)
956 982
#if (AMIROOS_CFG_SSSP_MASTER == true)
957 983
  // deactivate the system synchronization timer
958 984
  chVTReset(&_syssynctimer);
......
969 995
  // activate the SYS_SYNC signal
970 996
  apalControlGpioSet(&moduleSsspGpioSync, APAL_GPIO_ON);
971 997
  chSysUnlock();
998
#endif /* AMIROOS_CFG_SSSP_ENABLE == true */
972 999

  
973 1000
  switch (shutdown) {
974 1001
    case AOS_SHUTDOWN_PASSIVE:
......
997 1024
      break;
998 1025
  }
999 1026

  
1027
#if (AMIROOS_CFG_SSSP_ENABLE == true)
1000 1028
  // update the system SSSP stage
1001 1029
  aos.sssp.stage = AOS_SSSP_SHUTDOWN_1_2;
1030
#endif
1002 1031

  
1003 1032
  return;
1004 1033
}
......
1037 1066
  // disable all interrupts
1038 1067
  irqDeinit();
1039 1068

  
1069
#if (AMIROOS_CFG_SSSP_ENABLE == true)
1040 1070
  // update the system SSSP stage
1041 1071
  aos.sssp.stage = AOS_SSSP_SHUTDOWN_1_3;
1072
#endif
1042 1073

  
1043 1074
  // call bootloader callback depending on arguments
1044 1075
  switch (shutdown) {
modules/DiWheelDrive_1-1/aosconf.h
17 17
*/
18 18

  
19 19
/**
20
 * @file    
20
 * @file
21 21
 * @brief   AMiRo-OS Configuration file for the DiWheelDrive v1.1 module.
22 22
 * @details Contains the application specific AMiRo-OS settings.
23 23
 *
......
98 98
/*===========================================================================*/
99 99

  
100 100
/**
101
 * @brief   Flag to enable SSSP.
102
 */
103
#if !defined(OS_CFG_SSSP_ENABLE)
104
  #define AMIROOS_CFG_SSSP_ENABLE               true
105
#else
106
  #define AMIROOS_CFG_SSSP_ENABLE               OS_CFG_SSSP_ENABLE
107
#endif
108

  
109
/**
101 110
 * @brief   Flag to set the module as SSSP master.
102 111
 * @details There must be only one module with this flag set to true in a system.
103 112
 */
modules/LightRing_1-0/aosconf.h
98 98
/*===========================================================================*/
99 99

  
100 100
/**
101
 * @brief   Flag to enable SSSP.
102
 */
103
#if !defined(OS_CFG_SSSP_ENABLE)
104
  #define AMIROOS_CFG_SSSP_ENABLE               true
105
#else
106
  #define AMIROOS_CFG_SSSP_ENABLE               OS_CFG_SSSP_ENABLE
107
#endif
108

  
109
/**
101 110
 * @brief   Flag to set the module as SSSP master.
102 111
 * @details There must be only one module with this flag set to true in a system.
103 112
 */
modules/PowerManagement_1-1/aosconf.h
98 98
/*===========================================================================*/
99 99

  
100 100
/**
101
 * @brief   Flag to enable SSSP.
102
 */
103
#if !defined(OS_CFG_SSSP_ENABLE)
104
  #define AMIROOS_CFG_SSSP_ENABLE               true
105
#else
106
  #define AMIROOS_CFG_SSSP_ENABLE               OS_CFG_SSSP_ENABLE
107
#endif
108

  
109
/**
101 110
 * @brief   Flag to set the module as SSSP master.
102 111
 * @details There must be only one module with this flag set to true in a system.
103 112
 */

Also available in: Unified diff