@@ -72,11 +72,6 @@ int mp_hal_stdin_rx_chr(void) {
7272 }
7373}
7474
75- void mp_hal_stdout_tx_char (char c ) {
76- uart_tx_one_char (UART0 , c );
77- mp_uos_dupterm_tx_strn (& c , 1 );
78- }
79-
8075#if 0
8176void mp_hal_debug_str (const char * str ) {
8277 while (* str ) {
@@ -87,23 +82,39 @@ void mp_hal_debug_str(const char *str) {
8782#endif
8883
8984void mp_hal_stdout_tx_str (const char * str ) {
85+ const char * last = str ;
9086 while (* str ) {
91- mp_hal_stdout_tx_char ( * str ++ );
87+ uart_tx_one_char ( UART0 , * str ++ );
9288 }
89+ mp_uos_dupterm_tx_strn (last , str - last );
9390}
9491
9592void mp_hal_stdout_tx_strn (const char * str , uint32_t len ) {
93+ const char * last = str ;
9694 while (len -- ) {
97- mp_hal_stdout_tx_char ( * str ++ );
95+ uart_tx_one_char ( UART0 , * str ++ );
9896 }
97+ mp_uos_dupterm_tx_strn (last , str - last );
9998}
10099
101100void mp_hal_stdout_tx_strn_cooked (const char * str , uint32_t len ) {
101+ const char * last = str ;
102102 while (len -- ) {
103103 if (* str == '\n' ) {
104- mp_hal_stdout_tx_char ('\r' );
104+ if (str > last ) {
105+ mp_uos_dupterm_tx_strn (last , str - last );
106+ }
107+ uart_tx_one_char (UART0 , '\r' );
108+ uart_tx_one_char (UART0 , '\n' );
109+ mp_uos_dupterm_tx_strn ("\r\n" , 2 );
110+ ++ str ;
111+ last = str ;
112+ } else {
113+ uart_tx_one_char (UART0 , * str ++ );
105114 }
106- mp_hal_stdout_tx_char (* str ++ );
115+ }
116+ if (str > last ) {
117+ mp_uos_dupterm_tx_strn (last , str - last );
107118 }
108119}
109120
0 commit comments