diff --git a/src/shared/drivers/interrupt/external_interrupts.cpp b/src/shared/drivers/interrupt/external_interrupts.cpp
index a00631d4624bfd6725933c2d70caec86d8032987..56aad8e2b5d9b7bb85664635f735b7de60b2101e 100644
--- a/src/shared/drivers/interrupt/external_interrupts.cpp
+++ b/src/shared/drivers/interrupt/external_interrupts.cpp
@@ -23,6 +23,9 @@
 #include "external_interrupts.h"
 
 #include <miosix.h>
+
+#include "kernel/logging.h"
+
 using namespace miosix;
 
 /**
@@ -62,46 +65,95 @@ using namespace miosix;
 
 // All unused interrupts call this function.
 extern void unexpectedInterrupt();
-extern "C" void Default_EXTI_Handler() { unexpectedInterrupt(); }
+extern "C" void Default_EXTI_Handler()
+{
+    IRQerrorLog("\r\n***Unexpected Peripheral interrupt [Boardcore]\r\n");
+}
 
 /**
  * Declaration of a separate IRQHandler for each external
- * interrupt. If no further implementatio is provided, the
+ * interrupt. If no further implementation is provided, the
  * Default_Handler will be called.
  */
-void __attribute__((weak)) EXTI0_IRQHandlerImpl();
-void __attribute__((weak)) EXTI1_IRQHandlerImpl();
-void __attribute__((weak)) EXTI2_IRQHandlerImpl();
-void __attribute__((weak)) EXTI3_IRQHandlerImpl();
-void __attribute__((weak)) EXTI4_IRQHandlerImpl();
-void __attribute__((weak)) EXTI5_IRQHandlerImpl();
-void __attribute__((weak)) EXTI6_IRQHandlerImpl();
-void __attribute__((weak)) EXTI7_IRQHandlerImpl();
-void __attribute__((weak)) EXTI8_IRQHandlerImpl();
-void __attribute__((weak)) EXTI9_IRQHandlerImpl();
-void __attribute__((weak)) EXTI10_IRQHandlerImpl();
-void __attribute__((weak)) EXTI11_IRQHandlerImpl();
-void __attribute__((weak)) EXTI12_IRQHandlerImpl();
-void __attribute__((weak)) EXTI13_IRQHandlerImpl();
-void __attribute__((weak)) EXTI14_IRQHandlerImpl();
-void __attribute__((weak)) EXTI15_IRQHandlerImpl();
-
-#pragma weak EXTI0_IRQHandlerImpl  = Default_EXTI_Handler
-#pragma weak EXTI1_IRQHandlerImpl  = Default_EXTI_Handler
-#pragma weak EXTI2_IRQHandlerImpl  = Default_EXTI_Handler
-#pragma weak EXTI3_IRQHandlerImpl  = Default_EXTI_Handler
-#pragma weak EXTI4_IRQHandlerImpl  = Default_EXTI_Handler
-#pragma weak EXTI5_IRQHandlerImpl  = Default_EXTI_Handler
-#pragma weak EXTI6_IRQHandlerImpl  = Default_EXTI_Handler
-#pragma weak EXTI7_IRQHandlerImpl  = Default_EXTI_Handler
-#pragma weak EXTI8_IRQHandlerImpl  = Default_EXTI_Handler
-#pragma weak EXTI9_IRQHandlerImpl  = Default_EXTI_Handler
-#pragma weak EXTI10_IRQHandlerImpl = Default_EXTI_Handler
-#pragma weak EXTI11_IRQHandlerImpl = Default_EXTI_Handler
-#pragma weak EXTI12_IRQHandlerImpl = Default_EXTI_Handler
-#pragma weak EXTI13_IRQHandlerImpl = Default_EXTI_Handler
-#pragma weak EXTI14_IRQHandlerImpl = Default_EXTI_Handler
-#pragma weak EXTI15_IRQHandlerImpl = Default_EXTI_Handler
+void __attribute__((weak)) EXTI0_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI0\r\n");
+}
+
+void __attribute__((weak)) EXTI1_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI1\r\n");
+}
+
+void __attribute__((weak)) EXTI2_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI2\r\n");
+}
+
+void __attribute__((weak)) EXTI3_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI3\r\n");
+}
+
+void __attribute__((weak)) EXTI4_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI4\r\n");
+}
+
+void __attribute__((weak)) EXTI5_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI5\r\n");
+}
+
+void __attribute__((weak)) EXTI6_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI6\r\n");
+}
+
+void __attribute__((weak)) EXTI7_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI7\r\n");
+}
+
+void __attribute__((weak)) EXTI8_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI8\r\n");
+}
+
+void __attribute__((weak)) EXTI9_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI9\r\n");
+}
+
+void __attribute__((weak)) EXTI10_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI10\r\n");
+}
+
+void __attribute__((weak)) EXTI11_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI11\r\n");
+}
+
+void __attribute__((weak)) EXTI12_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI12\r\n");
+}
+
+void __attribute__((weak)) EXTI13_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI13\r\n");
+}
+
+void __attribute__((weak)) EXTI14_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI14\r\n");
+}
+
+void __attribute__((weak)) EXTI15_IRQHandlerImpl()
+{
+    IRQerrorLog("\r\nUnexpected Peripheral interrupt EXTI15\r\n");
+}
 
 /**
  * Implementation of the IRQHandler that is triggered when
@@ -266,7 +318,7 @@ void __attribute__((used)) EXTI15_10_IRQHandlerImpl()
     }
 }
 
-constexpr unsigned ConvertGPIO_BASEtoUnsiged(unsigned P)
+constexpr unsigned ConvertGPIO_BASEtoUnsigned(unsigned P)
 {
     // clang-format off
     return  P == GPIOA_BASE? 0 :
@@ -303,7 +355,7 @@ constexpr unsigned GetEXTI_IRQn(unsigned N)
 
 constexpr unsigned GetEXTICR_register_value(unsigned P, unsigned N)
 {
-    return (ConvertGPIO_BASEtoUnsiged(P) << ((N % 4) * 4));
+    return (ConvertGPIO_BASEtoUnsigned(P) << ((N % 4) * 4));
 }
 
 void enableExternalInterrupt(unsigned int gpioPort, unsigned int gpioNumber,