[PATCH] libdebugger: Fix for ARMv7-M with -O0 optimization

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Feb 25 12:47:19 UTC 2019


---
 cpukit/libdebugger/rtems-debugger-arm.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/cpukit/libdebugger/rtems-debugger-arm.c b/cpukit/libdebugger/rtems-debugger-arm.c
index 722dd54924..95e26ada76 100644
--- a/cpukit/libdebugger/rtems-debugger-arm.c
+++ b/cpukit/libdebugger/rtems-debugger-arm.c
@@ -439,6 +439,7 @@ arm_debug_break_write_control(int bp, uint32_t control)
   }
 }
 
+#if ARM_CP15
 static void
 arm_debug_break_write_value(int bp, uint32_t value)
 {
@@ -493,6 +494,7 @@ arm_debug_break_write_value(int bp, uint32_t value)
     break;
   }
 }
+#endif
 
 static void
 arm_debug_break_clear(void)
@@ -514,6 +516,7 @@ arm_debug_set_context_id(const uint32_t id)
   ARM_CP15_WRITE(id, 0, 13, 0, 1);
 }
 
+#if ARM_CP15
 /*
  * You can only load the hardware breaks points when in the SVC mode or the
  * single step inverted break point will trigger.
@@ -540,6 +543,7 @@ arm_debug_break_load(void)
   }
   rtems_interrupt_lock_release(&target_lock, &lock_context);
 }
+#endif
 
 static void
 arm_debug_break_unload(void)
@@ -583,6 +587,7 @@ rtems_debugger_target_configure(rtems_debugger_target* target)
   return arm_debug_probe(target);
 }
 
+#if ARM_CP15
 static void
 target_exception(CPU_Exception_frame* frame)
 {
@@ -938,7 +943,6 @@ target_exception_data_abort(void)
   EXCEPTION_EXIT_EXC();
 }
 
-#if ARM_CP15
 /**
  * The init value for the text section.
  */
@@ -975,14 +979,6 @@ rtems_debugger_target_set_vectors(void)
   /*
    * Dummy, please add support for your ARM variant.
    */
-  void* ui = target_exception_undefined_instruction;
-  void* sc = target_exception_supervisor_call;
-  void* pa = target_exception_prefetch_abort;
-  void* da = target_exception_data_abort;
-  (void) ui;
-  (void) sc;
-  (void) pa;
-  (void) da;
 }
 #endif
 
-- 
2.16.4



More information about the devel mailing list