fix(uart): fix uart_config_t structure size difference in C and C++

This commit is contained in:
Song Ruo Jing
2024-07-05 22:17:31 +08:00
parent 6e015274d0
commit 457e0818e9
2 changed files with 5 additions and 3 deletions

View File

@@ -50,11 +50,9 @@ typedef struct {
#endif #endif
}; };
struct { struct {
#if SOC_UART_SUPPORT_SLEEP_RETENTION uint32_t backup_before_sleep: 1; /*!< If set, the driver will backup/restore the HP UART registers before entering/after exiting sleep mode.
uint32_t backup_before_sleep: 1; /*!< If set, the driver will backup/restore the HP UART registers before/after entering/exist sleep mode.
By this approach, the system can power off HP UART's power domain. By this approach, the system can power off HP UART's power domain.
This can save power, but at the expense of more RAM being consumed */ This can save power, but at the expense of more RAM being consumed */
#endif
} flags; /*!< Configuration flags */ } flags; /*!< Configuration flags */
} uart_config_t; } uart_config_t;

View File

@@ -848,6 +848,10 @@ esp_err_t uart_param_config(uart_port_t uart_num, const uart_config_t *uart_conf
ESP_RETURN_ON_FALSE((uart_config->flow_ctrl < UART_HW_FLOWCTRL_MAX), ESP_FAIL, UART_TAG, "hw_flowctrl mode error"); ESP_RETURN_ON_FALSE((uart_config->flow_ctrl < UART_HW_FLOWCTRL_MAX), ESP_FAIL, UART_TAG, "hw_flowctrl mode error");
ESP_RETURN_ON_FALSE((uart_config->data_bits < UART_DATA_BITS_MAX), ESP_FAIL, UART_TAG, "data bit error"); ESP_RETURN_ON_FALSE((uart_config->data_bits < UART_DATA_BITS_MAX), ESP_FAIL, UART_TAG, "data bit error");
#if !SOC_UART_SUPPORT_SLEEP_RETENTION
ESP_RETURN_ON_FALSE(uart_config->flags.backup_before_sleep == 0, ESP_ERR_NOT_SUPPORTED, UART_TAG, "register back up is not supported");
#endif
uart_module_enable(uart_num); uart_module_enable(uart_num);
#if SOC_UART_SUPPORT_SLEEP_RETENTION && CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP #if SOC_UART_SUPPORT_SLEEP_RETENTION && CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP