summaryrefslogtreecommitdiff
path: root/minimal/uart_extra.c
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-01-13 04:02:56 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-01-13 04:02:56 +0200
commit5ebabcda4134dfac94967e43e7791354202c5b45 (patch)
tree0daec19a2b2e5655efe3a6d8f325f8d4f46595f6 /minimal/uart_extra.c
parentd511a20a6ba28571b106e714eee8329288de7ba4 (diff)
minimal: Convert "bare-arm" port to "minimal" port.
This enable libc functions, GC, and line-editing function. Also, UART emulation for POSIX systems is added. Emulation build is set as default.
Diffstat (limited to 'minimal/uart_extra.c')
-rw-r--r--minimal/uart_extra.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/minimal/uart_extra.c b/minimal/uart_extra.c
new file mode 100644
index 000000000..a49bff7b9
--- /dev/null
+++ b/minimal/uart_extra.c
@@ -0,0 +1,26 @@
+#include <string.h>
+#include <unistd.h>
+#include "py/mpconfig.h"
+#include "pybstdio.h"
+
+/*
+ * Extra UART functions
+ * These can be either optimized for a particular port, or reference,
+ * not very optimal implementation below can be used.
+ */
+
+// Send "cooked" string of length, where every occurance of
+// LF character is replaced with CR LF.
+void stdout_tx_strn_cooked(const char *str, mp_uint_t len) {
+ while (len--) {
+ if (*str == '\n') {
+ stdout_tx_strn("\r", 1);
+ }
+ stdout_tx_strn(str++, 1);
+ }
+}
+
+// Send zero-terminated string
+void stdout_tx_str(const char *str) {
+ stdout_tx_strn(str, strlen(str));
+}