From d79eea31a268ce14b60b30d929b2d2c905048d98 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Fri, 8 Jul 2011 19:29:00 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@3135 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/kernel/src/chsys.c | 3 +++ os/kernel/src/chthreads.c | 7 ++++--- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'os/kernel/src') diff --git a/os/kernel/src/chsys.c b/os/kernel/src/chsys.c index 6892ec73a..8d9ce4905 100644 --- a/os/kernel/src/chsys.c +++ b/os/kernel/src/chsys.c @@ -55,6 +55,7 @@ WORKING_AREA(_idle_thread_wa, PORT_IDLE_THREAD_STACK_SIZE); void _idle_thread(void *p) { (void)p; + chRegSetThreadName("idle"); while (TRUE) { port_wait_for_interrupt(); IDLE_LOOP_HOOK(); @@ -95,6 +96,8 @@ void chSysInit(void) { currp->p_state = THD_STATE_CURRENT; chSysEnable(); + chRegSetThreadName("main"); + #if !CH_NO_IDLE_THREAD /* This thread has the lowest priority in the system, its role is just to serve interrupts in its context while keeping the lowest energy saving diff --git a/os/kernel/src/chthreads.c b/os/kernel/src/chthreads.c index 7df276bea..3d64eb993 100644 --- a/os/kernel/src/chthreads.c +++ b/os/kernel/src/chthreads.c @@ -89,15 +89,16 @@ Thread *_thread_init(Thread *tp, tprio_t prio) { #if CH_USE_DYNAMIC tp->p_refs = 1; #endif +#if CH_USE_REGISTRY + tp->p_name = NULL; + REG_INSERT(tp); +#endif #if CH_USE_WAITEXIT list_init(&tp->p_waiting); #endif #if CH_USE_MESSAGES queue_init(&tp->p_msgqueue); #endif -#if CH_USE_REGISTRY - REG_INSERT(tp); -#endif #if defined(THREAD_EXT_INIT_HOOK) THREAD_EXT_INIT_HOOK(tp); #endif -- cgit v1.2.3 From b38e1f2c96ca1940f210be9ec2de6eeb076f1a10 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sat, 9 Jul 2011 09:15:49 +0000 Subject: Improvements to the trace buffer and other debug features. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@3139 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/kernel/src/chdebug.c | 23 ++++++++++++----------- os/kernel/src/chthreads.c | 4 ++-- 2 files changed, 14 insertions(+), 13 deletions(-) (limited to 'os/kernel/src') diff --git a/os/kernel/src/chdebug.c b/os/kernel/src/chdebug.c index 3c3c34c70..208ac2a69 100644 --- a/os/kernel/src/chdebug.c +++ b/os/kernel/src/chdebug.c @@ -40,7 +40,7 @@ /** * @brief Public trace buffer. */ -TraceBuffer trace_buffer; +ch_trace_buffer_t ch_dbg_trace_buffer; /** * @brief Trace circular buffer subsystem initialization. @@ -48,8 +48,8 @@ TraceBuffer trace_buffer; */ void _trace_init(void) { - trace_buffer.tb_size = TRACE_BUFFER_SIZE; - trace_buffer.tb_ptr = &trace_buffer.tb_buffer[0]; + ch_dbg_trace_buffer.tb_size = CH_TRACE_BUFFER_SIZE; + ch_dbg_trace_buffer.tb_ptr = &ch_dbg_trace_buffer.tb_buffer[0]; } /** @@ -61,12 +61,13 @@ void _trace_init(void) { */ void chDbgTrace(Thread *otp) { - trace_buffer.tb_ptr->cse_wtobjp = otp->p_u.wtobjp; - trace_buffer.tb_ptr->cse_time = chTimeNow(); - trace_buffer.tb_ptr->cse_state = otp->p_state; - trace_buffer.tb_ptr->cse_tid = (unsigned)currp >> 6; - if (++trace_buffer.tb_ptr >= &trace_buffer.tb_buffer[TRACE_BUFFER_SIZE]) - trace_buffer.tb_ptr = &trace_buffer.tb_buffer[0]; + ch_dbg_trace_buffer.tb_ptr->se_time = chTimeNow(); + 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_TRACE_BUFFER_SIZE]) + ch_dbg_trace_buffer.tb_ptr = &ch_dbg_trace_buffer.tb_buffer[0]; } #endif /* CH_DBG_ENABLE_TRACE */ @@ -78,7 +79,7 @@ void chDbgTrace(Thread *otp) { * written once and then the system is halted. This variable can be * set to @p NULL if the halt is caused by a stack overflow. */ -char *panic_msg; +char *ch_dbg_panic_msg; /** * @brief Prints a panic message on the console and then halts the system. @@ -87,7 +88,7 @@ char *panic_msg; */ void chDbgPanic(char *msg) { - panic_msg = msg; + ch_dbg_panic_msg = msg; chSysHalt(); } #endif /* CH_DBG_ENABLE_ASSERTS || CH_DBG_ENABLE_CHECKS || CH_DBG_ENABLE_STACK_CHECK */ diff --git a/os/kernel/src/chthreads.c b/os/kernel/src/chthreads.c index 3d64eb993..b68263a7b 100644 --- a/os/kernel/src/chthreads.c +++ b/os/kernel/src/chthreads.c @@ -181,10 +181,10 @@ Thread *chThdCreateStatic(void *wsp, size_t size, #if CH_DBG_FILL_THREADS _thread_memfill((uint8_t *)wsp, (uint8_t *)wsp + sizeof(Thread), - THREAD_FILL_VALUE); + CH_THREAD_FILL_VALUE); _thread_memfill((uint8_t *)wsp + sizeof(Thread), (uint8_t *)wsp + size, - STACK_FILL_VALUE); + CH_STACK_FILL_VALUE); #endif chSysLock(); chSchWakeupS(tp = chThdCreateI(wsp, size, prio, pf, arg), RDY_OK); -- cgit v1.2.3 From fbdd64538eb54452fd320e20eaba2fb094874a3e Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 10 Jul 2011 08:45:36 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@3144 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/kernel/src/chdebug.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'os/kernel/src') diff --git a/os/kernel/src/chdebug.c b/os/kernel/src/chdebug.c index 208ac2a69..0e378cc6d 100644 --- a/os/kernel/src/chdebug.c +++ b/os/kernel/src/chdebug.c @@ -40,7 +40,7 @@ /** * @brief Public trace buffer. */ -ch_trace_buffer_t ch_dbg_trace_buffer; +ch_trace_buffer_t dbg_trace_buffer; /** * @brief Trace circular buffer subsystem initialization. @@ -48,8 +48,8 @@ ch_trace_buffer_t ch_dbg_trace_buffer; */ void _trace_init(void) { - ch_dbg_trace_buffer.tb_size = CH_TRACE_BUFFER_SIZE; - ch_dbg_trace_buffer.tb_ptr = &ch_dbg_trace_buffer.tb_buffer[0]; + dbg_trace_buffer.tb_size = CH_TRACE_BUFFER_SIZE; + dbg_trace_buffer.tb_ptr = &dbg_trace_buffer.tb_buffer[0]; } /** @@ -61,13 +61,13 @@ void _trace_init(void) { */ void chDbgTrace(Thread *otp) { - ch_dbg_trace_buffer.tb_ptr->se_time = chTimeNow(); - 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_TRACE_BUFFER_SIZE]) - ch_dbg_trace_buffer.tb_ptr = &ch_dbg_trace_buffer.tb_buffer[0]; + dbg_trace_buffer.tb_ptr->se_time = chTimeNow(); + 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]; } #endif /* CH_DBG_ENABLE_TRACE */ @@ -79,7 +79,7 @@ void chDbgTrace(Thread *otp) { * written once and then the system is halted. This variable can be * set to @p NULL if the halt is caused by a stack overflow. */ -char *ch_dbg_panic_msg; +char *dbg_panic_msg; /** * @brief Prints a panic message on the console and then halts the system. @@ -88,7 +88,7 @@ char *ch_dbg_panic_msg; */ void chDbgPanic(char *msg) { - ch_dbg_panic_msg = msg; + dbg_panic_msg = msg; chSysHalt(); } #endif /* CH_DBG_ENABLE_ASSERTS || CH_DBG_ENABLE_CHECKS || CH_DBG_ENABLE_STACK_CHECK */ -- cgit v1.2.3