From 4a175e1f110e0d6ad1b784054050be59a6e2c706 Mon Sep 17 00:00:00 2001 From: Damien Date: Thu, 17 Oct 2013 22:50:21 +0100 Subject: Fix up linker script; improve startup code; printf to USB. --- stm/printf.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'stm/printf.c') diff --git a/stm/printf.c b/stm/printf.c index 1cdb6a48f..edfee8e91 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; } -- cgit v1.2.3