Ver Fonte

gptimer: add test with -O0

morris há 3 anos atrás
pai
commit
7faf1bee73

+ 1 - 0
components/driver/test_apps/gptimer/sdkconfig.ci.iram_safe

@@ -1,5 +1,6 @@
 CONFIG_COMPILER_DUMP_RTL_FILES=y
 CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM=y
 CONFIG_GPTIMER_ISR_IRAM_SAFE=y
+CONFIG_COMPILER_OPTIMIZATION_NONE=y
 # silent the error check, as the error string are stored in rodata, causing RTL check failure
 CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT=y

+ 3 - 1
components/hal/esp32/include/hal/timer_ll.h

@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
+ * SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
  *
  * SPDX-License-Identifier: Apache-2.0
  */
@@ -80,6 +80,7 @@ static inline void timer_ll_set_clock_prescale(timg_dev_t *hw, uint32_t timer_nu
  * @param en True: enable auto reload mode
  *           False: disable auto reload mode
  */
+__attribute__((always_inline))
 static inline void timer_ll_enable_auto_reload(timg_dev_t *hw, uint32_t timer_num, bool en)
 {
     hw->hw_timer[timer_num].config.tx_autoreload = en;
@@ -151,6 +152,7 @@ static inline void timer_ll_set_alarm_value(timg_dev_t *hw, uint32_t timer_num,
  * @param timer_num Timer number in the group
  * @param reload_val Reload counter value
  */
+__attribute__((always_inline))
 static inline void timer_ll_set_reload_value(timg_dev_t *hw, uint32_t timer_num, uint64_t load_val)
 {
     hw->hw_timer[timer_num].loadhi.tx_load_hi = (uint32_t) (load_val >> 32);

+ 2 - 0
components/hal/esp32c2/include/hal/timer_ll.h

@@ -83,6 +83,7 @@ static inline void timer_ll_set_clock_prescale(timg_dev_t *hw, uint32_t timer_nu
  * @param en True: enable auto reload mode
  *           False: disable auto reload mode
  */
+__attribute__((always_inline))
 static inline void timer_ll_enable_auto_reload(timg_dev_t *hw, uint32_t timer_num, bool en)
 {
     hw->hw_timer[timer_num].config.tx_autoreload = en;
@@ -154,6 +155,7 @@ static inline void timer_ll_set_alarm_value(timg_dev_t *hw, uint32_t timer_num,
  * @param timer_num Timer number in the group
  * @param reload_val Reload counter value
  */
+__attribute__((always_inline))
 static inline void timer_ll_set_reload_value(timg_dev_t *hw, uint32_t timer_num, uint64_t load_val)
 {
     hw->hw_timer[timer_num].loadhi.tx_load_hi = (uint32_t) (load_val >> 32);

+ 3 - 1
components/hal/esp32c3/include/hal/timer_ll.h

@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
+ * SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
  *
  * SPDX-License-Identifier: Apache-2.0
  */
@@ -83,6 +83,7 @@ static inline void timer_ll_set_clock_prescale(timg_dev_t *hw, uint32_t timer_nu
  * @param en True: enable auto reload mode
  *           False: disable auto reload mode
  */
+__attribute__((always_inline))
 static inline void timer_ll_enable_auto_reload(timg_dev_t *hw, uint32_t timer_num, bool en)
 {
     hw->hw_timer[timer_num].config.tx_autoreload = en;
@@ -154,6 +155,7 @@ static inline void timer_ll_set_alarm_value(timg_dev_t *hw, uint32_t timer_num,
  * @param timer_num Timer number in the group
  * @param reload_val Reload counter value
  */
+__attribute__((always_inline))
 static inline void timer_ll_set_reload_value(timg_dev_t *hw, uint32_t timer_num, uint64_t load_val)
 {
     hw->hw_timer[timer_num].loadhi.tx_load_hi = (uint32_t) (load_val >> 32);

+ 2 - 0
components/hal/esp32h2/include/hal/timer_ll.h

@@ -83,6 +83,7 @@ static inline void timer_ll_set_clock_prescale(timg_dev_t *hw, uint32_t timer_nu
  * @param en True: enable auto reload mode
  *           False: disable auto reload mode
  */
+__attribute__((always_inline))
 static inline void timer_ll_enable_auto_reload(timg_dev_t *hw, uint32_t timer_num, bool en)
 {
     hw->hw_timer[timer_num].config.tx_autoreload = en;
@@ -154,6 +155,7 @@ static inline void timer_ll_set_alarm_value(timg_dev_t *hw, uint32_t timer_num,
  * @param timer_num Timer number in the group
  * @param reload_val Reload counter value
  */
+__attribute__((always_inline))
 static inline void timer_ll_set_reload_value(timg_dev_t *hw, uint32_t timer_num, uint64_t load_val)
 {
     hw->hw_timer[timer_num].loadhi.tx_load_hi = (uint32_t) (load_val >> 32);

+ 3 - 1
components/hal/esp32s2/include/hal/timer_ll.h

@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
+ * SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
  *
  * SPDX-License-Identifier: Apache-2.0
  */
@@ -84,6 +84,7 @@ static inline void timer_ll_set_clock_prescale(timg_dev_t *hw, uint32_t timer_nu
  * @param en True: enable auto reload mode
  *           False: disable auto reload mode
  */
+__attribute__((always_inline))
 static inline void timer_ll_enable_auto_reload(timg_dev_t *hw, uint32_t timer_num, bool en)
 {
     hw->hw_timer[timer_num].config.tx_autoreload = en;
@@ -155,6 +156,7 @@ static inline void timer_ll_set_alarm_value(timg_dev_t *hw, uint32_t timer_num,
  * @param timer_num Timer number in the group
  * @param reload_val Reload counter value
  */
+__attribute__((always_inline))
 static inline void timer_ll_set_reload_value(timg_dev_t *hw, uint32_t timer_num, uint64_t load_val)
 {
     hw->hw_timer[timer_num].loadhi.tx_load_hi = (uint32_t) (load_val >> 32);

+ 3 - 1
components/hal/esp32s3/include/hal/timer_ll.h

@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
+ * SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
  *
  * SPDX-License-Identifier: Apache-2.0
  */
@@ -83,6 +83,7 @@ static inline void timer_ll_set_clock_prescale(timg_dev_t *hw, uint32_t timer_nu
  * @param en True: enable auto reload mode
  *           False: disable auto reload mode
  */
+__attribute__((always_inline))
 static inline void timer_ll_enable_auto_reload(timg_dev_t *hw, uint32_t timer_num, bool en)
 {
     hw->hw_timer[timer_num].config.tn_autoreload = en;
@@ -154,6 +155,7 @@ static inline void timer_ll_set_alarm_value(timg_dev_t *hw, uint32_t timer_num,
  * @param timer_num Timer number in the group
  * @param reload_val Reload counter value
  */
+__attribute__((always_inline))
 static inline void timer_ll_set_reload_value(timg_dev_t *hw, uint32_t timer_num, uint64_t reload_val)
 {
     hw->hw_timer[timer_num].loadhi.tn_load_hi = (uint32_t)(reload_val >> 32);