FreeCalypso > hg > freecalypso-sw
view nuc-fw/serial/debug.c @ 137:5fe5559003b7
RV bring-up: RVT "system time" heartbeat messages now get printed every 20 s!
The problem was a slight Nucleus API incompatibility between what the RVF code
from TCS211 expected and what our FreeNucleus implements: in the TCS211
version of Nucleus it was OK to pass 0 for the initial_time parameter to
NU_Create_Timer(), but our version flags such usage as an error.
RVF used 0 as the dummy initial_time value when initializing the legacy RV
timers with NU_DISABLE_TIMER. Implemented fix: using a dummy value of 1
instead.
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Mon, 11 Nov 2013 09:56:23 +0000 |
parents | 3b5c3f3646fb |
children |
line wrap: on
line source
/* * 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(); }