Subversion Repositories NaviCtrl

Rev

Rev 396 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
249 ingob 1
 #ifndef _DEBUG_H
2
 #define _DEBUG_H
3
// ----------------------------------------------
4
#define CMD_NONE                        0x00
5
#define CMD_RAW_OUTPUT          0x01
6
#define CMD_ERROR_MSG           0x02
7
#define CMD_WARNING_MSG         0x04
8
#define CMD_GREEN_MSG           0x08
9
 
10
// debug console in MK-Tool can also handle ANSI ESC seq. 
11
#define ANSI_ATTRIBUTE_OFF              "\033[0m"
12
#define ANSI_BOLD                               "\033[1m"
13
#define ANSI_UNDERSCORE                 "\033[4m"
14
#define ANSI_BLINK                              "\033[5m"
15
#define ANSI_INVERSE                    "\033[7m"
16
#define ANSI_INVISIBLE                  "\033[8m"
17
 
18
#define ANSI_COLOR_BLACK                "\033[30m"
19
#define ANSI_COLOR_RED                  "\033[31m"
20
#define ANSI_COLOR_GREEN                "\033[32m"
21
#define ANSI_COLOR_YELLOW               "\033[33m"
22
#define ANSI_COLOR_BLUE                 "\033[34m"
23
#define ANSI_COLOR_VIOLETT              "\033[35m"
24
#define ANSI_COLOR_KOBALTBLUE   "\033[36m"
25
#define ANSI_COLOR_WHITE                "\033[37m"
26
 
27
#define ANSI_CLEAR                              "\033[2J"
28
#define ANSI_HOME                               "\033[H"
29
 
30
// macros for easier use 
396 ingob 31
 
32
extern void Backtrace(void* fp);
33
 
254 killagreg 34
#ifdef DEBUG
35
#include "printf_P.h"                                                                                                                   // only include functions if DEBUG is defined in main.h
249 ingob 36
 
37
#define Debug(format, args...)                  {   _printf_P(&Debug_Putchar, (format) , ## args); DebugSend(CMD_NONE); } 
38
#define Debug_Raw(format, args...)              {   _printf_P(&Debug_Putchar, (format) , ## args); DebugSend(CMD_RAW_OUTPUT); } 
39
#define Debug_Warning(format, args...)  {   _printf_P(&Debug_Putchar, (format) , ## args); DebugSend(CMD_WARNING_MSG); } 
40
#define Debug_Error(format, args...)    {   _printf_P(&Debug_Putchar, (format) , ## args); DebugSend(CMD_ERROR_MSG); } 
41
#define Debug_OK(format, args...)               {   _printf_P(&Debug_Putchar, (format) , ## args); DebugSend(CMD_GREEN_MSG); } 
42
 
254 killagreg 43
typedef struct
249 ingob 44
{
254 killagreg 45
        u8 Cmd;                 // bitcoded command 
46
        u8 Text[32];
47
} __attribute__((packed)) Debug_t;
249 ingob 48
 
254 killagreg 49
extern Debug_t  tDebug;
50
extern u8 SendDebugOutput;
249 ingob 51
 
52
void Debug_Putchar(char c);
53
void DebugSend(unsigned char cmd);
54
 
55
#else                                           // dummy macros (won't waste flash, if #DEBUG is disabled)
56
#define Debug(format, args...)                  ;
57
#define Debug_Raw(format, args...)              ;
58
#define Debug_Warning(format, args...)  ;
59
#define Debug_Error(format, args...)    ;
60
#define Debug_OK(format, args...)               ;
61
#endif
62
 
63
// ----------------------------------------------
64
#endif