From 84e044f176cee7c6946b24c36c90f63534b5b369 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Fri, 19 Jul 2013 12:22:31 +0000 Subject: Renamed Thread to thread_t. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@5995 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/kernel/src/chdebug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'os/kernel/src/chdebug.c') diff --git a/os/kernel/src/chdebug.c b/os/kernel/src/chdebug.c index c69ce8f3f..44058dff8 100644 --- a/os/kernel/src/chdebug.c +++ b/os/kernel/src/chdebug.c @@ -232,7 +232,7 @@ void _trace_init(void) { * * @notapi */ -void dbg_trace(Thread *otp) { +void dbg_trace(thread_t *otp) { dbg_trace_buffer.tb_ptr->se_time = chTimeNow(); dbg_trace_buffer.tb_ptr->se_tp = currp; -- cgit v1.2.3 From 64403d8f188725bc5814813371382bc148956a83 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Tue, 30 Jul 2013 14:23:37 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6048 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/kernel/src/chdebug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'os/kernel/src/chdebug.c') diff --git a/os/kernel/src/chdebug.c b/os/kernel/src/chdebug.c index 44058dff8..ba9c469b9 100644 --- a/os/kernel/src/chdebug.c +++ b/os/kernel/src/chdebug.c @@ -234,7 +234,7 @@ void _trace_init(void) { */ void dbg_trace(thread_t *otp) { - dbg_trace_buffer.tb_ptr->se_time = chTimeNow(); + dbg_trace_buffer.tb_ptr->se_time = chVTGetSystemTimeX(); dbg_trace_buffer.tb_ptr->se_tp = currp; dbg_trace_buffer.tb_ptr->se_wtobjp = otp->p_u.wtobjp; dbg_trace_buffer.tb_ptr->se_state = (uint8_t)otp->p_state; -- cgit v1.2.3 From 649decd10516a30886d05f5afca3d425d836db0e Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sat, 10 Aug 2013 10:17:45 +0000 Subject: Cleanup debug module. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6120 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/kernel/src/chdebug.c | 125 ++++++++++++++++++++++-------------------------- 1 file changed, 57 insertions(+), 68 deletions(-) (limited to 'os/kernel/src/chdebug.c') diff --git a/os/kernel/src/chdebug.c b/os/kernel/src/chdebug.c index ba9c469b9..05b746357 100644 --- a/os/kernel/src/chdebug.c +++ b/os/kernel/src/chdebug.c @@ -51,29 +51,38 @@ #include "ch.h" /*===========================================================================*/ -/* System state checker related code and variables. */ +/* Module local definitions. */ /*===========================================================================*/ -#if CH_DBG_SYSTEM_STATE_CHECK || defined(__DOXYGEN__) +/*===========================================================================*/ +/* Module exported variables. */ +/*===========================================================================*/ -/** - * @brief ISR nesting level. - */ -cnt_t dbg_isr_cnt; +/*===========================================================================*/ +/* Module local types. */ +/*===========================================================================*/ -/** - * @brief Lock nesting level. - */ -cnt_t dbg_lock_cnt; +/*===========================================================================*/ +/* Module local variables. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Module local functions. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Module exported functions. */ +/*===========================================================================*/ +#if CH_DBG_SYSTEM_STATE_CHECK || defined(__DOXYGEN__) /** * @brief Guard code for @p chSysDisable(). * * @notapi */ -void dbg_check_disable(void) { +void _dbg_check_disable(void) { - if ((dbg_isr_cnt != 0) || (dbg_lock_cnt != 0)) + if ((ch.dbg_isr_cnt != 0) || (ch.dbg_lock_cnt != 0)) chDbgPanic("SV#1"); } @@ -82,9 +91,9 @@ void dbg_check_disable(void) { * * @notapi */ -void dbg_check_suspend(void) { +void _dbg_check_suspend(void) { - if ((dbg_isr_cnt != 0) || (dbg_lock_cnt != 0)) + if ((ch.dbg_isr_cnt != 0) || (ch.dbg_lock_cnt != 0)) chDbgPanic("SV#2"); } @@ -93,9 +102,9 @@ void dbg_check_suspend(void) { * * @notapi */ -void dbg_check_enable(void) { +void _dbg_check_enable(void) { - if ((dbg_isr_cnt != 0) || (dbg_lock_cnt != 0)) + if ((ch.dbg_isr_cnt != 0) || (ch.dbg_lock_cnt != 0)) chDbgPanic("SV#3"); } @@ -104,11 +113,11 @@ void dbg_check_enable(void) { * * @notapi */ -void dbg_check_lock(void) { +void _dbg_check_lock(void) { - if ((dbg_isr_cnt != 0) || (dbg_lock_cnt != 0)) + if ((ch.dbg_isr_cnt != 0) || (ch.dbg_lock_cnt != 0)) chDbgPanic("SV#4"); - dbg_enter_lock(); + _dbg_enter_lock(); } /** @@ -116,11 +125,11 @@ void dbg_check_lock(void) { * * @notapi */ -void dbg_check_unlock(void) { +void _dbg_check_unlock(void) { - if ((dbg_isr_cnt != 0) || (dbg_lock_cnt <= 0)) + if ((ch.dbg_isr_cnt != 0) || (ch.dbg_lock_cnt <= 0)) chDbgPanic("SV#5"); - dbg_leave_lock(); + _dbg_leave_lock(); } /** @@ -128,11 +137,11 @@ void dbg_check_unlock(void) { * * @notapi */ -void dbg_check_lock_from_isr(void) { +void _dbg_check_lock_from_isr(void) { - if ((dbg_isr_cnt <= 0) || (dbg_lock_cnt != 0)) + if ((ch.dbg_isr_cnt <= 0) || (ch.dbg_lock_cnt != 0)) chDbgPanic("SV#6"); - dbg_enter_lock(); + _dbg_enter_lock(); } /** @@ -140,11 +149,11 @@ void dbg_check_lock_from_isr(void) { * * @notapi */ -void dbg_check_unlock_from_isr(void) { +void _dbg_check_unlock_from_isr(void) { - if ((dbg_isr_cnt <= 0) || (dbg_lock_cnt <= 0)) + if ((ch.dbg_isr_cnt <= 0) || (ch.dbg_lock_cnt <= 0)) chDbgPanic("SV#7"); - dbg_leave_lock(); + _dbg_leave_lock(); } /** @@ -152,12 +161,12 @@ void dbg_check_unlock_from_isr(void) { * * @notapi */ -void dbg_check_enter_isr(void) { +void _dbg_check_enter_isr(void) { port_lock_from_isr(); - if ((dbg_isr_cnt < 0) || (dbg_lock_cnt != 0)) + if ((ch.dbg_isr_cnt < 0) || (ch.dbg_lock_cnt != 0)) chDbgPanic("SV#8"); - dbg_isr_cnt++; + ch.dbg_isr_cnt++; port_unlock_from_isr(); } @@ -166,12 +175,12 @@ void dbg_check_enter_isr(void) { * * @notapi */ -void dbg_check_leave_isr(void) { +void _dbg_check_leave_isr(void) { port_lock_from_isr(); - if ((dbg_isr_cnt <= 0) || (dbg_lock_cnt != 0)) + if ((ch.dbg_isr_cnt <= 0) || (ch.dbg_lock_cnt != 0)) chDbgPanic("SV#9"); - dbg_isr_cnt--; + ch.dbg_isr_cnt--; port_unlock_from_isr(); } @@ -185,7 +194,7 @@ void dbg_check_leave_isr(void) { */ void chDbgCheckClassI(void) { - if ((dbg_isr_cnt < 0) || (dbg_lock_cnt <= 0)) + if ((ch.dbg_isr_cnt < 0) || (ch.dbg_lock_cnt <= 0)) chDbgPanic("SV#10"); } @@ -199,30 +208,21 @@ void chDbgCheckClassI(void) { */ void chDbgCheckClassS(void) { - if ((dbg_isr_cnt != 0) || (dbg_lock_cnt <= 0)) + if ((ch.dbg_isr_cnt != 0) || (ch.dbg_lock_cnt <= 0)) chDbgPanic("SV#11"); } #endif /* CH_DBG_SYSTEM_STATE_CHECK */ -/*===========================================================================*/ -/* Trace related code and variables. */ -/*===========================================================================*/ - #if CH_DBG_ENABLE_TRACE || defined(__DOXYGEN__) -/** - * @brief Public trace buffer. - */ -ch_trace_buffer_t dbg_trace_buffer; - /** * @brief Trace circular buffer subsystem initialization. * @note Internal use only. */ void _trace_init(void) { - dbg_trace_buffer.tb_size = CH_TRACE_BUFFER_SIZE; - dbg_trace_buffer.tb_ptr = &dbg_trace_buffer.tb_buffer[0]; + ch.dbg_trace_buffer.tb_size = CH_DBG_TRACE_BUFFER_SIZE; + ch.dbg_trace_buffer.tb_ptr = &ch.dbg_trace_buffer.tb_buffer[0]; } /** @@ -232,30 +232,19 @@ void _trace_init(void) { * * @notapi */ -void dbg_trace(thread_t *otp) { - - dbg_trace_buffer.tb_ptr->se_time = chVTGetSystemTimeX(); - dbg_trace_buffer.tb_ptr->se_tp = currp; - dbg_trace_buffer.tb_ptr->se_wtobjp = otp->p_u.wtobjp; - dbg_trace_buffer.tb_ptr->se_state = (uint8_t)otp->p_state; - if (++dbg_trace_buffer.tb_ptr >= - &dbg_trace_buffer.tb_buffer[CH_TRACE_BUFFER_SIZE]) - dbg_trace_buffer.tb_ptr = &dbg_trace_buffer.tb_buffer[0]; +void _dbg_trace(thread_t *otp) { + + ch.dbg_trace_buffer.tb_ptr->se_time = chVTGetSystemTimeX(); + ch.dbg_trace_buffer.tb_ptr->se_tp = currp; + ch.dbg_trace_buffer.tb_ptr->se_wtobjp = otp->p_u.wtobjp; + ch.dbg_trace_buffer.tb_ptr->se_state = (uint8_t)otp->p_state; + if (++ch.dbg_trace_buffer.tb_ptr >= + &ch.dbg_trace_buffer.tb_buffer[CH_DBG_TRACE_BUFFER_SIZE]) + ch.dbg_trace_buffer.tb_ptr = &ch.dbg_trace_buffer.tb_buffer[0]; } #endif /* CH_DBG_ENABLE_TRACE */ -/*===========================================================================*/ -/* Panic related code and variables. */ -/*===========================================================================*/ - #if CH_DBG_ENABLED || defined(__DOXYGEN__) -/** - * @brief Pointer to the panic message. - * @details This pointer is meant to be accessed through the debugger, it is - * written once and then the system is halted. - */ -const char *dbg_panic_msg; - /** * @brief Prints a panic message on the console and then halts the system. * @@ -263,7 +252,7 @@ const char *dbg_panic_msg; */ void chDbgPanic(const char *msg) { - dbg_panic_msg = msg; + ch.dbg_panic_msg = msg; chSysHalt(); } #endif /* CH_DBG_ENABLED */ -- cgit v1.2.3 From a1435e018bfc9919cb76b1356509ecc883767fb4 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sat, 10 Aug 2013 14:51:16 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6123 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/kernel/src/chdebug.c | 260 ------------------------------------------------ 1 file changed, 260 deletions(-) delete mode 100644 os/kernel/src/chdebug.c (limited to 'os/kernel/src/chdebug.c') diff --git a/os/kernel/src/chdebug.c b/os/kernel/src/chdebug.c deleted file mode 100644 index 05b746357..000000000 --- a/os/kernel/src/chdebug.c +++ /dev/null @@ -1,260 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, - 2011,2012,2013 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - ChibiOS/RT is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -/** - * @file chdebug.c - * @brief ChibiOS/RT Debug code. - * - * @addtogroup debug - * @details Debug APIs and services: - * - Runtime system state and call protocol check. The following - * panic messages can be generated: - * - SV#1, misplaced @p chSysDisable(). - * - SV#2, misplaced @p chSysSuspend() - * - SV#3, misplaced @p chSysEnable(). - * - SV#4, misplaced @p chSysLock(). - * - SV#5, misplaced @p chSysUnlock(). - * - SV#6, misplaced @p chSysLockFromIsr(). - * - SV#7, misplaced @p chSysUnlockFromIsr(). - * - SV#8, misplaced @p CH_IRQ_PROLOGUE(). - * - SV#9, misplaced @p CH_IRQ_EPILOGUE(). - * - SV#10, misplaced I-class function. - * - SV#11, misplaced S-class function. - * . - * - Trace buffer. - * - Parameters check. - * - Kernel assertions. - * - Kernel panics. - * . - * @note Stack checks are not implemented in this module but in the port - * layer in an architecture-dependent way. - * @{ - */ - -#include "ch.h" - -/*===========================================================================*/ -/* Module local definitions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Module exported variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Module local types. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Module local variables. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Module local functions. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Module exported functions. */ -/*===========================================================================*/ - -#if CH_DBG_SYSTEM_STATE_CHECK || defined(__DOXYGEN__) -/** - * @brief Guard code for @p chSysDisable(). - * - * @notapi - */ -void _dbg_check_disable(void) { - - if ((ch.dbg_isr_cnt != 0) || (ch.dbg_lock_cnt != 0)) - chDbgPanic("SV#1"); -} - -/** - * @brief Guard code for @p chSysSuspend(). - * - * @notapi - */ -void _dbg_check_suspend(void) { - - if ((ch.dbg_isr_cnt != 0) || (ch.dbg_lock_cnt != 0)) - chDbgPanic("SV#2"); -} - -/** - * @brief Guard code for @p chSysEnable(). - * - * @notapi - */ -void _dbg_check_enable(void) { - - if ((ch.dbg_isr_cnt != 0) || (ch.dbg_lock_cnt != 0)) - chDbgPanic("SV#3"); -} - -/** - * @brief Guard code for @p chSysLock(). - * - * @notapi - */ -void _dbg_check_lock(void) { - - if ((ch.dbg_isr_cnt != 0) || (ch.dbg_lock_cnt != 0)) - chDbgPanic("SV#4"); - _dbg_enter_lock(); -} - -/** - * @brief Guard code for @p chSysUnlock(). - * - * @notapi - */ -void _dbg_check_unlock(void) { - - if ((ch.dbg_isr_cnt != 0) || (ch.dbg_lock_cnt <= 0)) - chDbgPanic("SV#5"); - _dbg_leave_lock(); -} - -/** - * @brief Guard code for @p chSysLockFromIsr(). - * - * @notapi - */ -void _dbg_check_lock_from_isr(void) { - - if ((ch.dbg_isr_cnt <= 0) || (ch.dbg_lock_cnt != 0)) - chDbgPanic("SV#6"); - _dbg_enter_lock(); -} - -/** - * @brief Guard code for @p chSysUnlockFromIsr(). - * - * @notapi - */ -void _dbg_check_unlock_from_isr(void) { - - if ((ch.dbg_isr_cnt <= 0) || (ch.dbg_lock_cnt <= 0)) - chDbgPanic("SV#7"); - _dbg_leave_lock(); -} - -/** - * @brief Guard code for @p CH_IRQ_PROLOGUE(). - * - * @notapi - */ -void _dbg_check_enter_isr(void) { - - port_lock_from_isr(); - if ((ch.dbg_isr_cnt < 0) || (ch.dbg_lock_cnt != 0)) - chDbgPanic("SV#8"); - ch.dbg_isr_cnt++; - port_unlock_from_isr(); -} - -/** - * @brief Guard code for @p CH_IRQ_EPILOGUE(). - * - * @notapi - */ -void _dbg_check_leave_isr(void) { - - port_lock_from_isr(); - if ((ch.dbg_isr_cnt <= 0) || (ch.dbg_lock_cnt != 0)) - chDbgPanic("SV#9"); - ch.dbg_isr_cnt--; - port_unlock_from_isr(); -} - -/** - * @brief I-class functions context check. - * @details Verifies that the system is in an appropriate state for invoking - * an I-class API function. A panic is generated if the state is - * not compatible. - * - * @api - */ -void chDbgCheckClassI(void) { - - if ((ch.dbg_isr_cnt < 0) || (ch.dbg_lock_cnt <= 0)) - chDbgPanic("SV#10"); -} - -/** - * @brief S-class functions context check. - * @details Verifies that the system is in an appropriate state for invoking - * an S-class API function. A panic is generated if the state is - * not compatible. - * - * @api - */ -void chDbgCheckClassS(void) { - - if ((ch.dbg_isr_cnt != 0) || (ch.dbg_lock_cnt <= 0)) - chDbgPanic("SV#11"); -} - -#endif /* CH_DBG_SYSTEM_STATE_CHECK */ - -#if CH_DBG_ENABLE_TRACE || defined(__DOXYGEN__) -/** - * @brief Trace circular buffer subsystem initialization. - * @note Internal use only. - */ -void _trace_init(void) { - - ch.dbg_trace_buffer.tb_size = CH_DBG_TRACE_BUFFER_SIZE; - ch.dbg_trace_buffer.tb_ptr = &ch.dbg_trace_buffer.tb_buffer[0]; -} - -/** - * @brief Inserts in the circular debug trace buffer a context switch record. - * - * @param[in] otp the thread being switched out - * - * @notapi - */ -void _dbg_trace(thread_t *otp) { - - ch.dbg_trace_buffer.tb_ptr->se_time = chVTGetSystemTimeX(); - ch.dbg_trace_buffer.tb_ptr->se_tp = currp; - ch.dbg_trace_buffer.tb_ptr->se_wtobjp = otp->p_u.wtobjp; - ch.dbg_trace_buffer.tb_ptr->se_state = (uint8_t)otp->p_state; - if (++ch.dbg_trace_buffer.tb_ptr >= - &ch.dbg_trace_buffer.tb_buffer[CH_DBG_TRACE_BUFFER_SIZE]) - ch.dbg_trace_buffer.tb_ptr = &ch.dbg_trace_buffer.tb_buffer[0]; -} -#endif /* CH_DBG_ENABLE_TRACE */ - -#if CH_DBG_ENABLED || defined(__DOXYGEN__) -/** - * @brief Prints a panic message on the console and then halts the system. - * - * @param[in] msg the pointer to the panic message string - */ -void chDbgPanic(const char *msg) { - - ch.dbg_panic_msg = msg; - chSysHalt(); -} -#endif /* CH_DBG_ENABLED */ - -/** @} */ -- cgit v1.2.3