From f5d94ef432bdc90f4ab098237bd14ee846375dff Mon Sep 17 00:00:00 2001 From: Simon Arlott Date: Sun, 29 Jan 2023 09:01:13 +0000 Subject: [PATCH] hal/uart_ll.h: Fix compile issue with C++ Merges https://github.com/espressif/esp-idf/pull/10640 --- components/hal/esp32s3/include/hal/uart_ll.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/components/hal/esp32s3/include/hal/uart_ll.h b/components/hal/esp32s3/include/hal/uart_ll.h index 87a90145c7da..c7ee3e2b3103 100644 --- a/components/hal/esp32s3/include/hal/uart_ll.h +++ b/components/hal/esp32s3/include/hal/uart_ll.h @@ -178,7 +178,8 @@ FORCE_INLINE_ATTR void uart_ll_set_baudrate(uart_dev_t *hw, uint32_t baud) FORCE_INLINE_ATTR uint32_t uart_ll_get_baudrate(uart_dev_t *hw) { uint32_t sclk_freq = uart_ll_get_sclk_freq(hw); - uart_clkdiv_reg_t div_reg = hw->clkdiv; + uart_clkdiv_reg_t div_reg; + div_reg.val = hw->clkdiv.val; return ((sclk_freq << 4)) / (((div_reg.clkdiv << 4) | div_reg.clkdiv_frag) * (HAL_FORCE_READ_U32_REG_FIELD(hw->clk_conf, sclk_div_num) + 1)); } @@ -818,7 +819,8 @@ FORCE_INLINE_ATTR void uart_ll_set_loop_back(uart_dev_t *hw, bool loop_back_en) */ FORCE_INLINE_ATTR void uart_ll_inverse_signal(uart_dev_t *hw, uint32_t inv_mask) { - uart_conf0_reg_t conf0_reg = hw->conf0; + uart_conf0_reg_t conf0_reg; + conf0_reg.val = hw->conf0.val; conf0_reg.irda_tx_inv = (inv_mask & UART_SIGNAL_IRDA_TX_INV) ? 1 : 0; conf0_reg.irda_rx_inv = (inv_mask & UART_SIGNAL_IRDA_RX_INV) ? 1 : 0; conf0_reg.rxd_inv = (inv_mask & UART_SIGNAL_RXD_INV) ? 1 : 0;