fix(openthread): register uart vfs devices when they are not registered

This commit is contained in:
WanqQixiang 2024-06-28 15:59:30 +08:00
parent 1022b2b447
commit 7158afb163

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -61,6 +61,16 @@ otError otPlatUartSend(const uint8_t *buf, uint16_t buf_length)
esp_err_t esp_openthread_uart_init_port(const esp_openthread_uart_config_t *config)
{
#ifndef CONFIG_ESP_CONSOLE_UART
// If UART console is used, UART vfs devices should be registered during startup.
// Otherwise we need to register them here.
DIR *uart_dir = opendir("/dev/uart");
if (!uart_dir) {
esp_vfs_dev_uart_register();
} else {
closedir(uart_dir);
}
#endif
ESP_RETURN_ON_ERROR(uart_param_config(config->port, &config->uart_config), OT_PLAT_LOG_TAG,
"uart_param_config failed");
ESP_RETURN_ON_ERROR(
@ -90,7 +100,6 @@ esp_err_t esp_openthread_host_cli_usb_init(const esp_openthread_platform_config_
ret = usb_serial_jtag_driver_install((usb_serial_jtag_driver_config_t *)&config->host_config.host_usb_config);
esp_vfs_usb_serial_jtag_use_driver();
esp_vfs_dev_uart_register();
return ret;
}
#endif