diff options
| author | Meco Man <[email protected]> | 2024-12-09 21:46:24 -0500 |
|---|---|---|
| committer | Meco Man <[email protected]> | 2025-01-04 22:50:04 -0500 |
| commit | 6cad23bc3139b83c47a4e8643f2d3525d73a8218 (patch) | |
| tree | 4cfce586c2ce2e38772b4c896e6a6cab0d0f2ef0 /src | |
| parent | ebe05a91df561d4c8aec33d4dbd1d16c9ff1d4b4 (diff) | |
[kservice] optimize console_device
Diffstat (limited to 'src')
| -rw-r--r-- | src/kservice.c | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/src/kservice.c b/src/kservice.c index 167f94a6a7..d4970684e8 100644 --- a/src/kservice.c +++ b/src/kservice.c @@ -187,23 +187,15 @@ RTM_EXPORT(rt_console_get_device); */ rt_device_t rt_console_set_device(const char *name) { - rt_device_t new_device, old_device; + rt_device_t old_device = _console_device; + rt_device_t new_device = rt_device_find(name); - /* save old device */ - old_device = _console_device; - - /* find new console device */ - new_device = rt_device_find(name); - - /* check whether it's a same device */ - if (new_device == old_device) return RT_NULL; - - if (new_device != RT_NULL) + if (new_device != RT_NULL && new_device != old_device) { - if (_console_device != RT_NULL) + if (old_device != RT_NULL) { /* close old console device */ - rt_device_close(_console_device); + rt_device_close(old_device); } /* set new console device */ @@ -319,20 +311,23 @@ static void _console_release(void) */ static void _kputs(const char *str, long len) { - RT_UNUSED(len); +#ifdef RT_USING_DEVICE + rt_device_t console_device = rt_console_get_device(); +#endif /* RT_USING_DEVICE */ CONSOLE_TAKE; #ifdef RT_USING_DEVICE - if (_console_device == RT_NULL) + if (console_device == RT_NULL) { rt_hw_console_output(str); } else { - rt_device_write(_console_device, 0, str, len); + rt_device_write(console_device, 0, str, len); } #else + RT_UNUSED(len); rt_hw_console_output(str); #endif /* RT_USING_DEVICE */ |
