94 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
 | 
						|
 | 
						|
#include "if_rtt.h"
 | 
						|
#include "stdint.h"
 | 
						|
#include "stdio.h"
 | 
						|
#include "SEGGER_RTT.h"
 | 
						|
#include "string.h"
 | 
						|
 | 
						|
static int g_inited;
 | 
						|
static int _open(void)
 | 
						|
{
 | 
						|
  if(g_inited==0)
 | 
						|
  {
 | 
						|
    //SEGGER_RTT_Init();
 | 
						|
    SEGGER_RTT_ConfigUpBuffer(0, "log", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP);
 | 
						|
    //SEGGER_RTT_ConfigUpBuffer(1, "info", buff, 256, SEGGER_RTT_MODE_NO_BLOCK_SKIP);
 | 
						|
//    SEGGER_RTT_ConfigUpBuffer(1, "info", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP);
 | 
						|
    g_inited=1;
 | 
						|
  }
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
static int _close(void)
 | 
						|
{
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
static int _putc(int c)
 | 
						|
{
 | 
						|
  uint8_t d=c;
 | 
						|
  if(SEGGER_RTT_Write(0, &d, 1)==1)
 | 
						|
    return c;
 | 
						|
  else
 | 
						|
    return EOF;
 | 
						|
}
 | 
						|
 | 
						|
static int _write(const uint8_t *ptr,int size)
 | 
						|
{
 | 
						|
//  if(strncmp("info",(char *)ptr,4)==0)
 | 
						|
//    SEGGER_RTT_SetTerminal(1);
 | 
						|
//  else
 | 
						|
//    SEGGER_RTT_SetTerminal(0);
 | 
						|
  return SEGGER_RTT_Write(0, ptr, size);
 | 
						|
}
 | 
						|
 | 
						|
static int _getc(void)
 | 
						|
{
 | 
						|
  uint8_t d;
 | 
						|
  if(SEGGER_RTT_Read(0,&d,1)==1)
 | 
						|
    return d;
 | 
						|
  else
 | 
						|
    return EOF;
 | 
						|
}
 | 
						|
 | 
						|
static int _read(uint8_t *ptr,int size)
 | 
						|
{
 | 
						|
  int rb=0;
 | 
						|
  if(rb=SEGGER_RTT_Read(0,ptr,size),rb)
 | 
						|
    return rb;
 | 
						|
  else
 | 
						|
    return EOF;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
static  void *set_irqfun(void (*fun)(uint8_t d,void *context),void *context)
 | 
						|
{
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
static rtt_typedef rtt_def=
 | 
						|
{
 | 
						|
  .init=_open,
 | 
						|
  .write=_write,
 | 
						|
  .read=_read,
 | 
						|
  .set_irqfun=set_irqfun,
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
rtt_typedef *rtt(void)
 | 
						|
{
 | 
						|
  return &rtt_def;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 |