comparison 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
comparison
equal deleted inserted replaced
135:e4257294102b 136:3b5c3f3646fb
1 /*
2 * This module is a FreeCalypso addition for very low-level debugging.
3 * The functions implemented in this module produce "forced" serial output
4 * on the RVTMUX UART without going through the normal RV trace mechanism.
5 * Calls to these FC debug functions should be added during difficult
6 * debug sessions, but should never remain in stable checked-in code:
7 * these functions are too disruptive to be used in "production" fw images.
8 */
9
10 #include "../include/config.h"
11 #include "../include/sys_types.h"
12
13 #include "serialswitch.h"
14
15 #include <string.h>
16
17 freecalypso_raw_dbgout(char *string)
18 {
19 char *p;
20 int l, cc;
21
22 p = string;
23 l = strlen(p);
24 while (l) {
25 cc = SER_tr_WriteNBytes(SER_LAYER_1, p, l);
26 p += cc;
27 l -= cc;
28 }
29 }
30
31 freecalypso_lldbg_intinfo()
32 {
33 char strbuf[128];
34 extern unsigned IQ_TimerCount2;
35 extern unsigned TMD_System_Clock;
36 extern unsigned INT_Check_IRQ_Mask();
37
38 sprintf(strbuf, "*CPSR=%08x, IQ_TimerCount2=%u, TMD_System_Clock=%u",
39 INT_Check_IRQ_Mask(), IQ_TimerCount2, TMD_System_Clock);
40 freecalypso_raw_dbgout(strbuf);
41 }
42
43 freecalypso_nucidle_dbghook()
44 {
45 freecalypso_raw_dbgout("*In Nucleus idle loop");
46 freecalypso_lldbg_intinfo();
47 }