diff options
author | Randall Spangler <rspangler@chromium.org> | 2012-10-26 09:29:40 -0700 |
---|---|---|
committer | Gerrit <chrome-bot@google.com> | 2012-10-29 10:36:05 -0700 |
commit | fc6b412589742976db12de4aa64137c03bfbf311 (patch) | |
tree | b32b72aeef1284e9c2d8354d68cc8ef0694712e6 /core/cortex-m/watchdog.c | |
parent | bff5a49e6d06c13e67b1a72470dc1d9a2326eb16 (diff) | |
download | chrome-ec-fc6b412589742976db12de4aa64137c03bfbf311.tar.gz |
Consolidate emergency debug output
This removes the duplicate uart_emergency_printf() vs. panic_printf()
/ uart_emergency_puts() vs. panic_puts() implementation and saves
~0.5kb of code size.
The other significant change is that uart_flush_output() is now smart
enough to determine if it's in an interrupt; if so, it will spin-flush
the output buffer instead of waiting on the uart interrupt. This
removes the need for a separate panic_flush().
BUG=chrome-os-partner:15579
BRANCH=none
TEST=crash unaligned; should print well-formatted crash dump
Change-Id: Ifae756203dd1881806be563308077c1d68302e1f
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/36695
Diffstat (limited to 'core/cortex-m/watchdog.c')
-rw-r--r-- | core/cortex-m/watchdog.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/core/cortex-m/watchdog.c b/core/cortex-m/watchdog.c index d21bb4f1ec..ae26734692 100644 --- a/core/cortex-m/watchdog.c +++ b/core/cortex-m/watchdog.c @@ -5,16 +5,14 @@ /* Watchdog common code */ -#include "board.h" #include "common.h" -#include "config.h" +#include "panic.h" #include "registers.h" #include "task.h" #include "timer.h" #include "uart.h" #include "watchdog.h" - void watchdog_trace(uint32_t excep_lr, uint32_t excep_sp) { uint32_t psp; @@ -29,21 +27,17 @@ void watchdog_trace(uint32_t excep_lr, uint32_t excep_sp) stack = (uint32_t *)psp; } - uart_printf("### WATCHDOG PC=%08x / LR=%08x / pSP=%08x ", - stack[6], stack[5], psp); + panic_printf("### WATCHDOG PC=%08x / LR=%08x / pSP=%08x ", + stack[6], stack[5], psp); if ((excep_lr & 0xf) == 1) - uart_puts("(exc) ###\n"); + panic_puts("(exc) ###\n"); else - uart_printf("(task %d) ###\n", task_get_current()); - /* Ensure this debug message is always flushed to the UART */ - uart_emergency_flush(); + panic_printf("(task %d) ###\n", task_get_current()); /* If we are blocked in a high priority IT handler, the following debug * messages might not appear but they are useless in that situation. */ timer_print_info(); - uart_emergency_flush(); task_print_list(); - uart_emergency_flush(); } |