summaryrefslogtreecommitdiffstatshomepage
path: root/stm/printf.c
diff options
context:
space:
mode:
authorDamien <damien.p.george@gmail.com>2013-10-17 22:50:21 +0100
committerDamien <damien.p.george@gmail.com>2013-10-17 22:50:21 +0100
commit4a175e1f110e0d6ad1b784054050be59a6e2c706 (patch)
treecd1a2bd2756368befd6a34360da827804bcc5720 /stm/printf.c
parentd2755ec538ab815561e7592b5afa6dcfcb557fbb (diff)
downloadmicropython-4a175e1f110e0d6ad1b784054050be59a6e2c706.tar.gz
micropython-4a175e1f110e0d6ad1b784054050be59a6e2c706.zip
Fix up linker script; improve startup code; printf to USB.
Diffstat (limited to 'stm/printf.c')
-rw-r--r--stm/printf.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/stm/printf.c b/stm/printf.c
index 1cdb6a48f6..edfee8e912 100644
--- a/stm/printf.c
+++ b/stm/printf.c
@@ -209,17 +209,17 @@ int pfenv_printf(pfenv_t *pfenv, const char *fmt, va_list args) {
}
void lcd_print_strn(const char *str, unsigned int len);
+void usb_vcp_send(const char* str, int len);
-void xxx(void *data, const char *str, unsigned int len) {
+void stdout_print_strn(void *data, const char *str, unsigned int len) {
+ // send stdout to LCD and USB CDC VCP
lcd_print_strn(str, len);
+ usb_vcp_send(str, len);
}
-pfenv_t pfenv_stdout = {0, xxx};
+pfenv_t pfenv_stdout = {0, stdout_print_strn};
int printf(const char *fmt, ...) {
- //pfenv_t pfenv;
- //pfenv.data = 0;
- //pfenv.print_strn = xxx;
va_list args;
va_start(args, fmt);
return pfenv_printf(&pfenv_stdout, fmt, args);
@@ -228,15 +228,15 @@ int printf(const char *fmt, ...) {
// need this because gcc optimises printf("%c", c) -> putchar(c), and printf("a") -> putchar('a')
int putchar(int c) {
char chr = c;
- xxx(0, &chr, 1);
+ stdout_print_strn(0, &chr, 1);
return chr;
}
// need this because gcc optimises printf("string\n") -> puts("string")
int puts(const char *s) {
- xxx(0, s, strlen(s));
+ stdout_print_strn(0, s, strlen(s));
char chr = '\n';
- xxx(0, &chr, 1);
+ stdout_print_strn(0, &chr, 1);
return 1;
}