commit cda1472944648652764c6980f5ee3f3e91459ef3
Author: Thomas Schöpping <tschoepp@cit-ec.uni-bielefeld.de>
Date:   Mon Oct 28 11:15:03 2019 +0100

    Major SSSP overhaul:
    - SSSP no works even without Bootloader (AMiRo-OS implements startup and shutdown phases)
    - MSI and calendar synchronization are currently not available (WIP)
    - lots of minor changes

diff --git a/modules/NUCLEO-F401RE/aosconf.h b/modules/NUCLEO-F401RE/aosconf.h
index aa21821..45e6687 100644
--- a/modules/NUCLEO-F401RE/aosconf.h
+++ b/modules/NUCLEO-F401RE/aosconf.h
@@ -33,7 +33,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 #define _AMIRO_OS_CFG_
 #define AMIRO_OS_CFG_VERSION_MAJOR              2
-#define AMIRO_OS_CFG_VERSION_MINOR              0
+#define AMIRO_OS_CFG_VERSION_MINOR              1
 
 #include <stdbool.h>
 
@@ -80,14 +80,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #endif /* !defined(OS_CFG_PROFILE) */
 
 /**
- * @brief   Mask for the control thread to listen to certain IO events.
+ * @brief   Mask for the control thread to listen to certain GPIO events.
  * @note    Any mandatory events (e.g. for SSSP) are enabled implicitely despite this configuration.
  */
-#if !defined(OS_CFG_MAIN_LOOP_IOEVENT_MASK)
-  #define AMIROOS_CFG_MAIN_LOOP_IOEVENT_MASK    MODULE_OS_IOEVENTFLAGS_USERBUTTON
-#else /* !defined(OS_CFG_MAIN_LOOP_IOEVENT_MASK) */
-  #define AMIROOS_CFG_MAIN_LOOP_IOEVENT_MASK    OS_CFG_MAIN_LOOP_IOEVENT_MASK
-#endif /* !defined(OS_CFG_MAIN_LOOP_IOEVENT_MASK) */
+#if !defined(OS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK)
+  #define AMIROOS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK MODULE_OS_GPIOEVENTFLAG_USERBUTTON
+#else /* !defined(OS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK) */
+  #define AMIROOS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK OS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK
+#endif /* !defined(OS_CFG_MAIN_LOOP_GPIOEVENT_FLAGSMASK) */
 
 /**
  * @brief   Timeout value when waiting for events in the main loop in microseconds.
@@ -103,6 +103,19 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 /*===========================================================================*/
 /**
+ * @name Bootloader configuration
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief   Identifier of the instaled bootloader (if any).
+ * @note    See aos_bootloader.h file for a list of available settings.
+ */
+#define AMIROOS_CFG_BOOTLOADER                  AOS_BOOTLOADER_NONE
+
+/*===========================================================================*/
+/**
  * @name SSSP (Startup Shutdown Synchronization Protocol) configuration.
  * @{
  */
@@ -118,6 +131,46 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #endif /* !defined(OS_CFG_SSSP_ENABLE) */
 
 /**
+ * @brief   Flag to indicate, whether the SSSP startup sequence shall be executed by AMiRo-OS.
+ * @details This setting must be false in case another software (e.g. a bootloader) handles the initial stages of the SSSP startup phase.
+ */
+#if !defined(OS_CFG_SSSP_STARTUP)
+  #define AMIROOS_CFG_SSSP_STARTUP              false
+#else
+  #define AMIROOS_CFG_SSSP_STARTUP              OS_CFG_SSSP_STARTUP
+#endif
+
+/**
+ * @brief   Flag to indicate, whether the SSSP shutdown sequence shall be executed by AMiRo-OS.
+ * @details This setting should be false in case another software (e.g. a bootloader) handles the final stages of the SSSP shutdown phase.
+ */
+#if !defined(OS_CFG_SSSP_SHUTDOWN)
+  #define AMIROOS_CFG_SSSP_SHUTDOWN             false
+#else
+  #define AMIROOS_CFG_SSSP_SHUTDOWN             OS_CFG_SSSP_SHUTDOWN
+#endif
+
+/**
+ * @brief   Flag to indicate, whether the module stack initialization (MSI; stage 3 of the SSSP startup phase) shall be executed.
+ * @brief   In order to execute MSI, a broadcast bus (BCB) and according interfaces must be defined.
+ */
+#if !defined(OS_CFG_SSSP_MSI)
+  #define AMIROOS_CFG_SSSP_MSI                  false
+#else
+  #define AMIROOS_CFG_SSSP_MSI                  OS_CFG_SSSP_MSI
+#endif
+
+/**
+ * @brief   Width of the @p aos_sssp_moduleid_t type.
+ * @details Possible settings are 8, 16 and 32.
+ */
+#if !defined(OS_CFG_SSSP_MODULEIDWIDTH)
+  #define AMIROOS_CFG_SSSP_MODULEIDWIDTH        16
+#else
+  #define AMIROOS_CFG_SSSP_MODULEIDWIDTH        OS_CFG_SSSP_MODULEIDWIDTH
+#endif
+
+/**
  * @brief   Flag to set the module as SSSP master.
  * @details There must be only one module with this flag set to true in a system.
  */
