FreeCalypso > hg > freecalypso-sw
diff nuc-fw/serial/debug.c @ 136:3b5c3f3646fb
RV bring-up: lack of timer ticks fixed,
still investigating the lack of "system time" messages from the RVT task
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Mon, 04 Nov 2013 23:35:11 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nuc-fw/serial/debug.c Mon Nov 04 23:35:11 2013 +0000 @@ -0,0 +1,47 @@ +/* + * This module is a FreeCalypso addition for very low-level debugging. + * The functions implemented in this module produce "forced" serial output + * on the RVTMUX UART without going through the normal RV trace mechanism. + * Calls to these FC debug functions should be added during difficult + * debug sessions, but should never remain in stable checked-in code: + * these functions are too disruptive to be used in "production" fw images. + */ + +#include "../include/config.h" +#include "../include/sys_types.h" + +#include "serialswitch.h" + +#include <string.h> + +freecalypso_raw_dbgout(char *string) +{ + char *p; + int l, cc; + + p = string; + l = strlen(p); + while (l) { + cc = SER_tr_WriteNBytes(SER_LAYER_1, p, l); + p += cc; + l -= cc; + } +} + +freecalypso_lldbg_intinfo() +{ + char strbuf[128]; + extern unsigned IQ_TimerCount2; + extern unsigned TMD_System_Clock; + extern unsigned INT_Check_IRQ_Mask(); + + sprintf(strbuf, "*CPSR=%08x, IQ_TimerCount2=%u, TMD_System_Clock=%u", + INT_Check_IRQ_Mask(), IQ_TimerCount2, TMD_System_Clock); + freecalypso_raw_dbgout(strbuf); +} + +freecalypso_nucidle_dbghook() +{ + freecalypso_raw_dbgout("*In Nucleus idle loop"); + freecalypso_lldbg_intinfo(); +}