diff --git a/cpu/arm7_common/bootloader.c b/cpu/arm7_common/bootloader.c
index 5582034625a678297c941ad9776169d5d165d656..85598e792ee47a379ebdd0291c77a1f2b6724972 100644
--- a/cpu/arm7_common/bootloader.c
+++ b/cpu/arm7_common/bootloader.c
@@ -28,34 +28,36 @@
 #include <stdlib.h>
 #include "thread.h"
 
+#include "log.h"
+
 void FIQ_Routine(void)   __attribute__((interrupt("FIQ")));
 //void SWI_Routine (void)   __attribute__((interrupt("SWI")));
 void UNDEF_Routine(void) __attribute__((interrupt("UNDEF")));
 
 void IRQ_Routine(void)
 {
-    printf("Kernel Panic,\nEarly IRQ call\n");
+    LOG_ERROR("Kernel Panic,\nEarly IRQ call\n");
 
     while (1) {};
 }
 /*-----------------------------------------------------------------------------------*/
 void FIQ_Routine(void)
 {
-    printf("Kernel Panic,\nEarly FIQ call\n");
+    LOG_ERROR("Kernel Panic,\nEarly FIQ call\n");
 
     while (1) {};
 }
 /*-----------------------------------------------------------------------------------*/
 void SWI_Routine(void)
 {
-    printf("Kernel Panic,\nEarly SWI call\n");
+    LOG_ERROR("Kernel Panic,\nEarly SWI call\n");
 
     while (1) {};
 }
 /*-----------------------------------------------------------------------------------*/
 void DEBUG_Routine(void)
 {
-    printf("DEBUG hit.");
+    LOG_ERROR("DEBUG hit.");
 
     while (1) {};
 }
@@ -75,11 +77,11 @@ void abtorigin(const char *vector, unsigned long *lnk_ptr1)
     __asm__ __volatile__("mov %0, sp" : "=r"(sp));              // copy sp
     __asm__ __volatile__("msr cpsr_c, %0" :: "r"(cpsr));        // switch back to abt mode
 
-    printf("#!%s abort at %p (0x%08lX) originating from %p (0x%08lX) in mode 0x%X\n",
+    LOG_ERROR("#!%s abort at %p (0x%08lX) originating from %p (0x%08lX) in mode 0x%X\n",
            vector, (void *)lnk_ptr1, *(lnk_ptr1), (void *)lnk_ptr2, *(lnk_ptr2), spsr
           );
 
-    exit(1);
+    while (1) {};
 }
 /*-----------------------------------------------------------------------------------*/
 void UNDEF_Routine(void)
@@ -94,7 +96,7 @@ void UNDEF_Routine(void)
         abtorigin("undef", lnk_ptr);
     }
 
-    exit(1);
+    while (1) {};
 }
 /*-----------------------------------------------------------------------------------*/
 void PABT_Routine(void)
@@ -109,7 +111,7 @@ void PABT_Routine(void)
         abtorigin("pabt", lnk_ptr);
     }
 
-    exit(1);
+    while (1) {};
 }
 /*-----------------------------------------------------------------------------------*/
 void DABT_Routine(void)
@@ -124,7 +126,7 @@ void DABT_Routine(void)
         abtorigin("data", lnk_ptr);
     }
 
-    exit(1);
+    while (1) {};
 }
 /*-----------------------------------------------------------------------------------*/
 static inline void