77 lines
1.7 KiB
C
77 lines
1.7 KiB
C
/**
|
|
****************************************************************************************
|
|
*
|
|
* @file debug.c
|
|
*
|
|
* @brief Debug Interface of Application
|
|
*
|
|
****************************************************************************************
|
|
*/
|
|
|
|
#include "dbg.h"
|
|
|
|
#if (DBG_MODE == DBG_VIA_UART)
|
|
#include "uart.h"
|
|
|
|
#if !defined(DBG_UART_BAUD)
|
|
#if (SYS_CLK == 1)
|
|
#define DBG_UART_BAUD BRR_DIV(9600, 32M)
|
|
#elif (SYS_CLK == 2)
|
|
#define DBG_UART_BAUD BRR_DIV(9600, 48M)
|
|
#elif (SYS_CLK == 3)
|
|
#define DBG_UART_BAUD BRR_DIV(9600, 64M)
|
|
#else
|
|
#define DBG_UART_BAUD BRR_DIV(9600, 16M)
|
|
#endif //SYS_CLK
|
|
#endif
|
|
|
|
#if !defined(DBG_UART_PORT)
|
|
#define DBG_UART_PORT (1) //UART1
|
|
#endif
|
|
#if !defined(DBG_UART_TXD)
|
|
#define DBG_UART_TXD (6) //PA06
|
|
#endif
|
|
#if !defined(DBG_UART_RXD)
|
|
#define DBG_UART_RXD (7) //PA07
|
|
#endif
|
|
|
|
#if !defined(DBG_HARDFAULT)
|
|
#define DBG_HARDFAULT (0)
|
|
#endif
|
|
|
|
// mdk(__CC_ARM) & iar(__ICCARM__)
|
|
#if defined ( __CC_ARM ) || defined ( __ICCARM__ )
|
|
int fputc(int ch, FILE *f) {
|
|
// Remap printf(...) to UART
|
|
uart_putc(DBG_UART_PORT, ch);
|
|
return ch;
|
|
}
|
|
#else
|
|
// gcc(__GNUC__)
|
|
int _write (int fd, char *ptr, int len)
|
|
{
|
|
for( int i = 0; i < len; i++)
|
|
{
|
|
uart_putc(DBG_UART_PORT, ptr[i]);
|
|
}
|
|
|
|
return len;
|
|
}
|
|
#endif
|
|
|
|
void dbgInit(void)
|
|
{
|
|
uart_init(DBG_UART_PORT, DBG_UART_TXD, DBG_UART_RXD);
|
|
uart_conf(DBG_UART_PORT, DBG_UART_BAUD, LCR_BITS_DFLT);
|
|
|
|
#if (DBG_UART_RXEN)
|
|
uart_fctl(DBG_UART_PORT, FCR_FIFOEN_BIT | FCR_RXTL_8BYTE, 20, UART_IR_RXRD_BIT | UART_IR_RTO_BIT);
|
|
#endif
|
|
|
|
#if (DBG_HARDFAULT)
|
|
trace_init();
|
|
#endif
|
|
}
|
|
|
|
#endif // (DBG_VIA_UART)
|