Subversion Repositories NaviCtrl

Rev

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

#include <stdio.h>
#include <stdarg.h>
#include <string.h>

#include "91x_lib.h"
#include "main.h"
#include "debug.h"
#include "uart1.h"

// get the address of calling function
//
//  usage: Backtrace(__builtin_frame_address (0));
//
void Backtrace(void* fp)
{
  UART1_PutString("\n\r### Backtrace: ");
  sprintf(text, "%p ", *((int*)fp - 1));
  UART1_PutString(text);
}



#ifdef DEBUG    // only include functions if DEBUG is defined in main.h

#warning : "### DEBUG-Funktion aktiv ###"




u8 Debug_BufPtr = 0;
Debug_t  tDebug;
u8 SendDebugOutput = 0;

// function called from _printf_P to output character
void Debug_Putchar(char c)
{
        if (!SendDebugOutput)
        {
                tDebug.Text[Debug_BufPtr++] = c;                                                                        // copy character to buffer
                if (Debug_BufPtr > 30) Debug_BufPtr = 30;                                                       // avoid buffer overflow
        }
}

void DebugSend(u8 cmd)
{
        if (!SendDebugOutput)
        {
                tDebug.Cmd = cmd;                      
                tDebug.Text[Debug_BufPtr] = '\0';                                                               // end of text marker
                Debug_BufPtr = 0;                                                                                               // set bufferindex to 0
                SendDebugOutput = 1;                                                                                    // set flag to trasmit data the next time in serial transmit function
        }      
}
#endif