diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2012-06-17 06:53:49 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2012-06-17 06:53:49 +0000 |
commit | c6914081835f10258d873af8526ae405ffe5b25c (patch) | |
tree | af4ea4874a9c7c3b982fe14420bfafb4d9351922 /os/kernel | |
parent | a8f01e5c6b04c07d6fbc32fb1ef4de527d1003de (diff) | |
download | ChibiOS-c6914081835f10258d873af8526ae405ffe5b25c.tar.gz ChibiOS-c6914081835f10258d873af8526ae405ffe5b25c.tar.bz2 ChibiOS-c6914081835f10258d873af8526ae405ffe5b25c.zip |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4283 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/kernel')
-rw-r--r-- | os/kernel/include/chdebug.h | 7 | ||||
-rw-r--r-- | os/kernel/src/chdebug.c | 8 |
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();
}
/**
|