diff --git a/components/finsh/shell.c b/components/finsh/shell.c index ad3b49534d..125dcec198 100644 --- a/components/finsh/shell.c +++ b/components/finsh/shell.c @@ -113,7 +113,8 @@ void finsh_set_device(const char* device_name) /* check whether it's a same device */ if (dev == shell->device) return; /* open this device and set the new device in finsh shell */ - if (rt_device_open(dev, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX) == RT_EOK) + if (rt_device_open(dev, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX |\ + RT_DEVICE_FLAG_STREAM) == RT_EOK) { if (shell->device != RT_NULL) { diff --git a/src/kservice.c b/src/kservice.c index 12878e67d1..fef284e8af 100644 --- a/src/kservice.c +++ b/src/kservice.c @@ -1114,11 +1114,11 @@ void rt_kprintf(const char *fmt, ...) } else { - rt_uint16_t old_flag = _console_device->flag; + rt_uint16_t old_flag = _console_device->open_flag; - _console_device->flag |= RT_DEVICE_FLAG_STREAM; + _console_device->open_flag |= RT_DEVICE_FLAG_STREAM; rt_device_write(_console_device, 0, rt_log_buf, length); - _console_device->flag = old_flag; + _console_device->open_flag = old_flag; } #else rt_hw_console_output(rt_log_buf);