Browse Source

add:日志输出luat_shell_write直接写寄存器防止丢字符串

Dozingfiretruck 4 years ago
parent
commit
e2d9c11d12
2 changed files with 44 additions and 35 deletions
  1. 0 34
      app/port/luat_log.h
  2. 44 1
      app/port/luat_shell_air101.c

+ 0 - 34
app/port/luat_log.h

@@ -1,34 +0,0 @@
-
-
-#ifndef LUAT_LOG
-#define LUAT_LOG
-
-#define LUAT_LOG_DEBUG 1
-#define LUAT_LOG_INFO  2
-#define LUAT_LOG_WARN  3
-#define LUAT_LOG_ERROR 4
-#define LUAT_LOG_CLOSE 7
-
-void luat_print(const char* _str);
-void luat_nprint(char *s, size_t l);
-void luat_log_set_uart_port(int port);
-
-void luat_log_set_level(int level);
-int luat_log_get_level(void);
-void luat_log_log(int level, const char* tag, const char* _fmt, ...);
-// void luat_log_debug(const char* tag, const char* _fmt, ...);
-// void luat_log_info(const char* tag, const char* _fmt, ...);
-// void luat_log_warn(const char* tag, const char* _fmt, ...);
-// void luat_log_error(const char* tag, const char* _fmt, ...);
-
-#define LLOGE(format, ...) printf("E/" LUAT_LOG_TAG " " format "\n", ##__VA_ARGS__)
-#define LLOGW(format, ...) printf("W/" LUAT_LOG_TAG " " format "\n", ##__VA_ARGS__)
-#define LLOGI(format, ...) printf("I/" LUAT_LOG_TAG " " format "\n", ##__VA_ARGS__)
-#define LLOGD(format, ...) printf("D/" LUAT_LOG_TAG " " format "\n", ##__VA_ARGS__)
-
-// #define luat_log_error(XTAG, format, ...)   luat_log_log(LUAT_LOG_ERROR, XTAG, format, ##__VA_ARGS__)
-// #define luat_log_warn(XTAG, format, ...)    luat_log_log(LUAT_LOG_WARN, XTAG, format, ##__VA_ARGS__)
-// #define luat_log_info(XTAG, format, ...)    luat_log_log(LUAT_LOG_INFO, XTAG, format, ##__VA_ARGS__)
-// #define luat_log_debug(XTAG, format, ...)   luat_log_log(LUAT_LOG_DEBUG, XTAG, format, ##__VA_ARGS__)
-
-#endif

+ 44 - 1
app/port/luat_shell_air101.c

@@ -15,9 +15,52 @@ typedef struct console_st
 
 static console 	ShellConsole;
 
+int luat_sendchar(int port,int ch){
+	if (port == 0){
+		if(ch == '\n'){
+			while (tls_reg_read32(HR_UART0_FIFO_STATUS) & 0x3F);
+			tls_reg_write32(HR_UART0_TX_WIN, '\r');
+	    }
+	    while(tls_reg_read32(HR_UART0_FIFO_STATUS) & 0x3F);
+	    tls_reg_write32(HR_UART0_TX_WIN, (char)ch);
+	}else if (port == 1){
+		if(ch == '\n'){
+			while (tls_reg_read32(HR_UART1_FIFO_STATUS) & 0x3F);
+			tls_reg_write32(HR_UART1_TX_WIN, '\r');
+	    }
+		while(tls_reg_read32(HR_UART1_FIFO_STATUS) & 0x3F);
+		tls_reg_write32(HR_UART1_TX_WIN, (char)ch);
+	}else if (port == 2){
+		if(ch == '\n'){
+			while (tls_reg_read32(HR_UART2_FIFO_STATUS) & 0x3F);
+			tls_reg_write32(HR_UART2_TX_WIN, '\r');
+	    }
+		while(tls_reg_read32(HR_UART2_FIFO_STATUS) & 0x3F);
+		tls_reg_write32(HR_UART2_TX_WIN, (char)ch);
+	}else if (port == 3){
+		if(ch == '\n'){
+			while (tls_reg_read32(HR_UART3_FIFO_STATUS) & 0x3F);
+			tls_reg_write32(HR_UART3_TX_WIN, '\r');
+	    }
+		while(tls_reg_read32(HR_UART3_FIFO_STATUS) & 0x3F);
+		tls_reg_write32(HR_UART3_TX_WIN, (char)ch);
+	}else if (port == 4){
+		if(ch == '\n'){
+			while (tls_reg_read32(HR_UART4_FIFO_STATUS) & 0x3F);
+			tls_reg_write32(HR_UART4_TX_WIN, '\r');
+	    }
+		while(tls_reg_read32(HR_UART4_FIFO_STATUS) & 0x3F);
+		tls_reg_write32(HR_UART4_TX_WIN, (char)ch);
+	}
+    return ch;
+}
+
 void luat_shell_write(char* buff, size_t len) {
+    int i=0;
     if (drv > -1 && len >= 0) {
-        tls_uart_write(drv, buff, len);
+        while (i<len){
+            luat_sendchar(drv,buff[i++]);
+        };
     }
 }