[PATCH 16/16] Added additional printing facilities to uart16550.*

Jarielle Catbagan jcatbagan93 at gmail.com
Wed Jun 17 18:28:55 UTC 2015


Added additional printing facilities to uart16550.* to assist in debugging.

---
 main/dev/uart16550.c | 37 ++++++++++++++++++++++++++++++++++---
 main/dev/uart16550.h |  4 ++--
 2 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/main/dev/uart16550.c b/main/dev/uart16550.c
index decabd0..51f436c 100644
--- a/main/dev/uart16550.c
+++ b/main/dev/uart16550.c
@@ -195,8 +195,39 @@ target_gotachar(void)
 }

 void
-target_putchar_loop(void)
+target_putstring(char *string)
 {
- while (1)
- target_putchar('j');
+ char *strptr = string;
+ int c;
+
+ while (*strptr != '\0')
+ c = target_putchar(*strptr);
+}
+
+void
+target_putval_ashex(unsigned int byte_len, unsigned char *val)
+{
+ int i, c;
+ unsigned int value;
+ char out;
+
+ for (i = byte_len - 1; i >= 0; i--) {a
+ value = val[i];
+ value >>= 4;
+ value &= 0x0F;
+ if (value < 10)
+ out = value + 48;
+ else
+ out = value + 55;
+ c = target_putchar(out);
+
+ value = val[i];
+ value &= 0x0F;
+ if (value < 10)
+ out = value + 48;
+ else
+ out = value + 55;
+ c = target_putchar(out);
+ }
+ c = target_putchar('\n');
 }
diff --git a/main/dev/uart16550.h b/main/dev/uart16550.h
index b6712f6..8e93dcb 100644
--- a/main/dev/uart16550.h
+++ b/main/dev/uart16550.h
@@ -132,7 +132,7 @@ extern int ConsoleBaudSet(int baud);
 extern int target_getchar(void);
 extern int target_gotachar(void);
 extern int target_putchar(char c);
-extern void target_putchar_loop(void);
 extern int target_console_empty(void);
 extern int getUartDivisor(int baud,unsigned char *hi, unsigned char *lo);
-
+extern void target_putstring(char *string);
+extern void target_putval_ashex(unsigned int byte_len, unsigned char *);
-- 
2.3.3


More information about the umon-devel mailing list