commit 470d0567f56537191ddb8181fa79af3e110ade15
Author: Thomas Schöpping <tschoepp@cit-ec.uni-bielefeld.de>
Date:   Thu Apr 20 16:21:27 2017 +0200

    Renamed the interface header file (in ./Target/Source/AMiRo/) from 'interfaces.h' to 'amiroblt.h'.
    The interface was additionally modified:
    - The magic number for identification has been changed from 0xFF669900 to 0x0x412D424C ("A-BL"), making the interface incompatible to older versions.
    - Several macros have been replaced by enums.
    - Some structs and enums have been renamed, making the interface incompatible to version 0.3.
    The memory layout, however, is unchanged so that required operating system tweaks are minimal.

diff --git a/Target/Demo/ARMCM4_STM32F405_Power_Management_GCC/Boot/main.c b/Target/Demo/ARMCM4_STM32F405_Power_Management_GCC/Boot/main.c
index 46474f5..af10977 100644
--- a/Target/Demo/ARMCM4_STM32F405_Power_Management_GCC/Boot/main.c
+++ b/Target/Demo/ARMCM4_STM32F405_Power_Management_GCC/Boot/main.c
@@ -23,11 +23,11 @@
 * You should have received a copy of the GNU General Public License along with OpenBLT.
 * If not, see <http://www.gnu.org/licenses/>.
 *
-* A special exception to the GPL is included to allow you to distribute a combined work 
-* that includes OpenBLT without being obliged to provide the source code for any 
+* A special exception to the GPL is included to allow you to distribute a combined work
+* that includes OpenBLT without being obliged to provide the source code for any
 * proprietary components. The exception text is included at the bottom of the license
 * file <license.html>.
-* 
+*
 * \endinternal
 ****************************************************************************************/
 
@@ -39,7 +39,7 @@
 #include "stm32f4xx_conf.h"                      /* STM32 peripheral drivers           */
 #include "com.h"
 #include "ARMCM4_STM32/types.h"
-#include "AMiRo/interfaces.h"
+#include "AMiRo/amiroblt.h"
 #include "AMiRo/helper.h"
 
 /****************************************************************************************
@@ -180,7 +180,7 @@ void shutdownToDeepsleep();
 void shutdownToHibernate();
 void shutdownAndRestart();
 
-volatile BlBackupRegister backup_reg;
+volatile blBackupRegister_t backup_reg;
 
 /****************************************************************************************
 * Callback configuration
@@ -191,11 +191,11 @@ void blCallbackShutdownHibernate(void);
 void blCallbackShutdownRestart(void);
 void blCallbackHandleShutdownRequest(void);
 
-const BlCallbackTable cbtable __attribute__ ((section ("_callback_table"))) = {
+const blCallbackTable_t cbtable __attribute__ ((section ("_callback_table"))) = {
   .magicNumber = BL_MAGIC_NUMBER,
-  .versionMajor = BL_VERSION_MAJOR,
-  .versionMinor = BL_VERSION_MINOR,
-  .versionHotfix = 0,
+  .vBootloader = {BL_VERSION_ID_AMiRoBLT_Release, BL_VERSION_MAJOR, BL_VERSION_MINOR, 0},
+  .vSSSP = {BL_VERSION_ID_SSSP, SSSP_VERSION_MAJOR, SSSP_VERSION_MINOR, 0},
+  .vCompiler = {BL_VERSION_ID_GCC, __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__},  // currently only GCC is supported
   .cbShutdownHibernate = blCallbackShutdownHibernate,
   .cbShutdownDeepsleep = blCallbackShutdownDeepsleep,
   .cbShutdownTransportation = blCallbackShutdownTransportation,
@@ -211,7 +211,7 @@ const BlCallbackTable cbtable __attribute__ ((section ("_callback_table"))) = {
 };
 
 /************************************************************************************//**
-** \brief     This is the entry point for the bootloader application and is called 
+** \brief     This is the entry point for the bootloader application and is called
 **            by the reset interrupt vector after the C-startup routines executed.
 ** \return    none.
 **
@@ -321,7 +321,7 @@ void main(void)
 
 
 /************************************************************************************//**
-** \brief     Initializes the microcontroller. 
+** \brief     Initializes the microcontroller.
 ** \return    none.
 **
 ****************************************************************************************/
@@ -334,7 +334,7 @@ static void Init(void)
   USART_InitTypeDef USART_InitStructure;
 #elif (BOOT_COM_CAN_ENABLE > 0 || BOOT_GATE_CAN_ENABLE > 0)
   GPIO_InitTypeDef  GPIO_InitStructure;
-#endif  
+#endif
 
   /* initialize the system and its clocks */
   SystemInit();
@@ -399,7 +399,7 @@ static void Init(void)
   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
   /* select alternate function for the CAN pins */
   GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_CAN1);
-  GPIO_PinAFConfig(GPIOA, GPIO_PinSource12, GPIO_AF_CAN1); 
+  GPIO_PinAFConfig(GPIOA, GPIO_PinSource12, GPIO_AF_CAN1);
   /* configure CAN RX and TX pins */
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
@@ -413,7 +413,7 @@ static void Init(void)
   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
   GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
   GPIO_Init(GPIOA, &GPIO_InitStructure);
-#endif  
+#endif
 
 } /*** end of Init ***/
 
@@ -632,7 +632,7 @@ void shutdownToTransportation() {
   IWDG_ReloadCounter();
 
   /* write some information to the backup register */
-  BlBackupRegister backup;
+  blBackupRegister_t backup;
   backup.shutdown_pri_reason = BL_SHUTDOWN_PRI_RSN_TRANSPORT;
   backup.shutdown_sec_reason = BL_SHUTDOWN_SEC_RSN_UNKNOWN;
   backup.wakeup_pri_reason = BL_WAKEUP_PRI_RSN_UNKNOWN;
@@ -668,7 +668,7 @@ void shutdownToDeepsleep() {
    */
 
   /* write some information to the backup register */
-  BlBackupRegister backup;
+  blBackupRegister_t backup;
   backup.shutdown_pri_reason = BL_SHUTDOWN_PRI_RSN_DEEPSLEEP;
   backup.shutdown_sec_reason = BL_SHUTDOWN_SEC_RSN_UNKNOWN;
   backup.wakeup_pri_reason = BL_WAKEUP_PRI_RSN_UNKNOWN;
@@ -701,7 +701,7 @@ void shutdownToHibernate() {
   systemPowerDown();
 
   /* write some information to the backup register */
-  BlBackupRegister backup;
+  blBackupRegister_t backup;
   backup.shutdown_pri_reason = BL_SHUTDOWN_PRI_RSN_HIBERNATE;
   backup.shutdown_sec_reason = BL_SHUTDOWN_SEC_RSN_UNKNOWN;
   backup.wakeup_pri_reason = BL_WAKEUP_PRI_RSN_UNKNOWN;
@@ -730,7 +730,7 @@ void shutdownAndRestart() {
   systemPowerDown();
 
   /* write some information to the backup register */
-  BlBackupRegister backup;
+  blBackupRegister_t backup;
   backup.shutdown_pri_reason = BL_SHUTDOWN_PRI_RSN_RESTART;
   backup.shutdown_sec_reason = BL_SHUTDOWN_SEC_RSN_UNKNOWN;
   backup.wakeup_pri_reason = BL_WAKEUP_PRI_RSN_UNKNOWN;
