This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 50daf242424e57b0b1a6334e8c9572761fc228d9 Author: Sara Souza <[email protected]> AuthorDate: Wed Apr 28 08:36:13 2021 -0300 esp32/esp32-c3: Adds two helpers to extract and include a field value --- arch/risc-v/src/esp32c3/hardware/esp32c3_soc.h | 8 ++++++++ arch/xtensa/src/esp32/hardware/esp32_soc.h | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/arch/risc-v/src/esp32c3/hardware/esp32c3_soc.h b/arch/risc-v/src/esp32c3/hardware/esp32c3_soc.h index dca4a1d..efb5bf3 100644 --- a/arch/risc-v/src/esp32c3/hardware/esp32c3_soc.h +++ b/arch/risc-v/src/esp32c3/hardware/esp32c3_soc.h @@ -257,4 +257,12 @@ #define BIT(nr) (1UL << (nr)) +/* Extract the field from the register and shift it to avoid wrong reading */ + +#define REG_MASK(_reg, _field) (((_reg) & (_field##_M)) >> (_field##_S)) + +/* Helper to place a value in a field */ + +#define VALUE_TO_FIELD(_value, _field) (((_value) << (_field##_S)) & (_field##_M)) + #endif /* __ARCH_RISCV_SRC_ESP32C3_HARDWARE_ESP32C3_SOC_H */ diff --git a/arch/xtensa/src/esp32/hardware/esp32_soc.h b/arch/xtensa/src/esp32/hardware/esp32_soc.h index 2d2b037..ada46e8 100644 --- a/arch/xtensa/src/esp32/hardware/esp32_soc.h +++ b/arch/xtensa/src/esp32/hardware/esp32_soc.h @@ -183,6 +183,14 @@ #define GET_PERI_REG_BITS2(reg, mask,shift) ((READ_PERI_REG(reg)>>(shift))&(mask)) +/* Extract the field from the register and shift it to avoid wrong reading */ + +#define REG_MASK(_reg, _field) (((_reg) & (_field##_M)) >> (_field##_S)) + +/* Helper to place a value in a field */ + +#define VALUE_TO_FIELD(_value, _field) (((_value) << (_field##_S)) & (_field##_M)) + /* Periheral Clock */ #define APB_CLK_FREQ_ROM 26 * 1000000
