aboutsummaryrefslogtreecommitdiffstats
path: root/os/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'os/kernel')
-rw-r--r--os/kernel/include/chdebug.h7
-rw-r--r--os/kernel/src/chdebug.c8
2 files changed, 11 insertions, 4 deletions
diff --git a/os/kernel/include/chdebug.h b/os/kernel/include/chdebug.h
index b899233e4..24dce243e 100644
--- a/os/kernel/include/chdebug.h
+++ b/os/kernel/include/chdebug.h
@@ -77,6 +77,8 @@
/*===========================================================================*/
#if !CH_DBG_SYSTEM_STATE_CHECK
+#define dbg_enter_lock()
+#define dbg_leave_lock()
#define dbg_check_disable()
#define dbg_check_suspend()
#define dbg_check_enable()
@@ -88,6 +90,9 @@
#define dbg_check_leave_isr()
#define chDbgCheckClassI();
#define chDbgCheckClassS();
+#else
+#define dbg_enter_lock() (dbg_lock_cnt = 1)
+#define dbg_leave_lock() (dbg_lock_cnt = 0)
#endif
/*===========================================================================*/
@@ -213,6 +218,8 @@ extern char *dbg_panic_msg;
extern "C" {
#endif
#if CH_DBG_SYSTEM_STATE_CHECK
+ extern cnt_t dbg_isr_cnt;
+ extern cnt_t dbg_lock_cnt;
void dbg_check_disable(void);
void dbg_check_suspend(void);
void dbg_check_enable(void);
diff --git a/os/kernel/src/chdebug.c b/os/kernel/src/chdebug.c
index 8d38dcd6e..0bee1b4ea 100644
--- a/os/kernel/src/chdebug.c
+++ b/os/kernel/src/chdebug.c
@@ -108,7 +108,7 @@ void dbg_check_lock(void) {
if ((dbg_isr_cnt != 0) || (dbg_lock_cnt != 0))
chDbgPanic("SV#4");
- dbg_lock_cnt = 1;
+ dbg_enter_lock();
}
/**
@@ -120,7 +120,7 @@ void dbg_check_unlock(void) {
if ((dbg_isr_cnt != 0) || (dbg_lock_cnt <= 0))
chDbgPanic("SV#5");
- dbg_lock_cnt = 0;
+ dbg_leave_lock();
}
/**
@@ -132,7 +132,7 @@ void dbg_check_lock_from_isr(void) {
if ((dbg_isr_cnt <= 0) || (dbg_lock_cnt != 0))
chDbgPanic("SV#6");
- dbg_lock_cnt = 1;
+ dbg_enter_lock();
}
/**
@@ -144,7 +144,7 @@ void dbg_check_unlock_from_isr(void) {
if ((dbg_isr_cnt <= 0) || (dbg_lock_cnt <= 0))
chDbgPanic("SV#7");
- dbg_lock_cnt = 0;
+ dbg_leave_lock();
}
/**