Browse Source

fixup: add Kconfig option

Shell 1 year ago
parent
commit
d1bb01621b
4 changed files with 15 additions and 9 deletions
  1. 3 3
      include/rttypes.h
  2. 6 0
      src/Kconfig
  3. 3 3
      src/scheduler_mp.c
  4. 3 3
      src/scheduler_up.c

+ 3 - 3
include/rttypes.h

@@ -184,7 +184,7 @@ struct rt_spinlock
     #define _SPIN_UNLOCK_DEBUG_OWNER(lock)  RT_UNUSED(lock)
 #endif /* RT_DEBUGING_SPINLOCK */
 
-#ifdef RT_USING_DEBUG
+#ifdef RT_DEBUGING_CRITICAL
     #define _SPIN_LOCK_DEBUG_CRITICAL(lock)               \
         do                                                \
         {                                                 \
@@ -197,11 +197,11 @@ struct rt_spinlock
             (critical) = (lock)->critical_level;        \
         } while (0)
 
-#else /* !RT_USING_DEBUG */
+#else /* !RT_DEBUGING_CRITICAL */
     #define _SPIN_LOCK_DEBUG_CRITICAL(lock)             RT_UNUSED(lock)
     #define _SPIN_UNLOCK_DEBUG_CRITICAL(lock, critical) do {critical = 0; RT_UNUSED(lock);} while (0)
 
-#endif /* RT_USING_DEBUG */
+#endif /* RT_DEBUGING_CRITICAL */
 
 #define RT_SPIN_LOCK_DEBUG(lock)         \
     do                                   \

+ 6 - 0
src/Kconfig

@@ -239,6 +239,12 @@ menuconfig RT_USING_DEBUG
             bool "Enable spinlock debugging"
             depends on RT_USING_SMP
             default n
+
+        config RT_DEBUGING_CRITICAL
+            bool "Enable critical level tracing"
+            depends on RT_USING_SMP
+            default y if RT_USING_SMART
+            default n
     endif
 
 menu "Inter-Thread communication"

+ 3 - 3
src/scheduler_mp.c

@@ -1056,7 +1056,7 @@ void rt_sched_post_ctx_switch(struct rt_thread *thread)
     pcpu->current_thread = thread;
 }
 
-#ifdef RT_USING_DEBUG
+#ifdef RT_DEBUGING_CRITICAL
 
 static volatile int _critical_error_occurred = 0;
 
@@ -1083,14 +1083,14 @@ void rt_exit_critical_safe(rt_base_t critical_level)
     rt_exit_critical();
 }
 
-#else
+#else /* !RT_DEBUGING_CRITICAL */
 
 void rt_exit_critical_safe(rt_base_t critical_level)
 {
     return rt_exit_critical();
 }
 
-#endif
+#endif /* RT_DEBUGING_CRITICAL */
 RTM_EXPORT(rt_exit_critical_safe);
 
 /**

+ 3 - 3
src/scheduler_up.c

@@ -451,7 +451,7 @@ void rt_sched_remove_thread(struct rt_thread *thread)
     rt_hw_interrupt_enable(level);
 }
 
-#ifdef RT_USING_DEBUG
+#ifdef RT_DEBUGING_CRITICAL
 
 static volatile int _critical_error_occurred = 0;
 
@@ -482,14 +482,14 @@ void rt_exit_critical_safe(rt_base_t critical_level)
     rt_exit_critical();
 }
 
-#else
+#else /* !RT_DEBUGING_CRITICAL */
 
 void rt_exit_critical_safe(rt_base_t critical_level)
 {
     rt_exit_critical();
 }
 
-#endif
+#endif/* RT_DEBUGING_CRITICAL */
 RTM_EXPORT(rt_exit_critical_safe);
 
 /**