diff --git a/platform/los_printf.c b/platform/los_printf.c index d71c3954..928b371b 100644 --- a/platform/los_printf.c +++ b/platform/los_printf.c @@ -46,7 +46,7 @@ #include "los_excinfo_pri.h" #endif #include "los_exc_pri.h" - +#include "los_sched_pri.h" #define SIZEBUF 256 @@ -94,7 +94,7 @@ STATIC VOID ConsoleOutput(const CHAR *str, UINT32 len) for (;;) { cnt = write(STDOUT_FILENO, str + writen, (size_t)toWrite); - if ((cnt < 0) || (toWrite == cnt)) { + if ((cnt < 0) || ((cnt == 0) && ((!OsPreemptable()) || (OS_INT_ACTIVE))) || (toWrite == cnt)) { break; } writen += cnt;