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;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | 
