mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'bugfix/fix_adc_continuous_driver_isr_flag_issue_v5.0' into 'release/v5.0'
adc: fix continuous hal func not in iram when gdma isr iram (v5.0) See merge request espressif/esp-idf!25506
This commit is contained in:
commit
62e6999279
6
components/esp_adc/.build-test-rules.yml
Normal file
6
components/esp_adc/.build-test-rules.yml
Normal file
@ -0,0 +1,6 @@
|
||||
# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps
|
||||
|
||||
components/esp_adc/test_apps/adc:
|
||||
disable:
|
||||
- if: SOC_ADC_SUPPORTED != 1
|
||||
- if: CONFIG_NAME == "gdma_iram_safe" and IDF_TARGET in ["esp32", "esp32s2", "esp32c2"]
|
@ -3,3 +3,23 @@ archive: libesp_adc.a
|
||||
entries:
|
||||
if ADC_ONESHOT_CTRL_FUNC_IN_IRAM = y:
|
||||
adc_oneshot: adc_oneshot_read_isr (noflash)
|
||||
|
||||
[mapping:adc_hal]
|
||||
archive: libhal.a
|
||||
entries:
|
||||
if ADC_ONESHOT_CTRL_FUNC_IN_IRAM = y:
|
||||
adc_oneshot_hal (noflash)
|
||||
if COMPILER_OPTIMIZATION_DEBUG = y:
|
||||
adc_hal_common: get_controller (noflash)
|
||||
adc_hal_common: adc_hal_set_controller (noflash)
|
||||
if SOC_ADC_ARBITER_SUPPORTED = y:
|
||||
adc_hal_common: adc_hal_arbiter_config (noflash)
|
||||
if SOC_ADC_CALIBRATION_V1_SUPPORTED = y:
|
||||
adc_hal_common: adc_hal_set_calibration_param (noflash)
|
||||
adc_hal_common: adc_hal_calibration_init (noflash)
|
||||
if ADC_CONTINUOUS_ISR_IRAM_SAFE = y || GDMA_ISR_IRAM_SAFE = y:
|
||||
adc_hal: adc_hal_get_reading_result (noflash)
|
||||
if IDF_TARGET_ESP32 = y || IDF_TARGET_ESP32S2 = y:
|
||||
adc_hal: adc_hal_check_event (noflash)
|
||||
adc_hal: adc_hal_digi_clr_intr (noflash)
|
||||
adc_hal: adc_hal_get_desc_addr (noflash)
|
||||
|
@ -144,7 +144,7 @@ TEST_CASE("ADC oneshot fast work with ISR and Flash", "[adc_oneshot]")
|
||||
#endif //#if CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM && CONFIG_GPTIMER_ISR_IRAM_SAFE
|
||||
|
||||
|
||||
#if CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE
|
||||
#if CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE || CONFIG_GDMA_ISR_IRAM_SAFE
|
||||
#include "esp_adc/adc_continuous.h"
|
||||
/*---------------------------------------------------------------
|
||||
ADC continuous work with cache safe ISR
|
||||
@ -252,7 +252,7 @@ TEST_CASE("ADC continuous work with ISR and Flash", "[adc_oneshot]")
|
||||
TEST_ESP_OK(adc_continuous_deinit(handle));
|
||||
|
||||
}
|
||||
#endif //#if CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE
|
||||
#endif //#if CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE || CONFIG_GDMA_ISR_IRAM_SAFE
|
||||
|
||||
static void IRAM_ATTR NOINLINE_ATTR s_test_cache_disable_period_us(test_adc_iram_ctx_t *ctx, uint32_t period_us)
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
# SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
|
||||
# SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
import pytest
|
||||
@ -38,3 +38,15 @@ def test_adc_esp32c2_xtal_26mhz(dut: Dut) -> None:
|
||||
dut.expect_exact('Press ENTER to see the list of tests')
|
||||
dut.write('*')
|
||||
dut.expect_unity_test_output(timeout=120)
|
||||
|
||||
|
||||
@pytest.mark.esp32s3
|
||||
@pytest.mark.esp32c3
|
||||
@pytest.mark.adc
|
||||
@pytest.mark.parametrize('config', [
|
||||
'gdma_iram_safe',
|
||||
], indirect=True)
|
||||
def test_adc_gdma_iram(dut: Dut) -> None:
|
||||
dut.expect_exact('Press ENTER to see the list of tests')
|
||||
dut.write('*')
|
||||
dut.expect_unity_test_output(timeout=120)
|
||||
|
@ -0,0 +1,7 @@
|
||||
CONFIG_COMPILER_DUMP_RTL_FILES=y
|
||||
CONFIG_GDMA_ISR_IRAM_SAFE=y
|
||||
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
|
||||
# silent the error check, as the error string are stored in rodata, causing RTL check failure
|
||||
CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT=y
|
||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y
|
||||
CONFIG_HAL_ASSERTION_SILENT=y
|
@ -30,23 +30,3 @@ entries:
|
||||
gpio_hal: gpio_hal_intr_disable (noflash)
|
||||
if LCD_RGB_ISR_IRAM_SAFE = y:
|
||||
lcd_hal: lcd_hal_cal_pclk_freq (noflash)
|
||||
if ADC_ONESHOT_CTRL_FUNC_IN_IRAM = y:
|
||||
adc_oneshot_hal (noflash)
|
||||
if COMPILER_OPTIMIZATION_DEFAULT = y:
|
||||
adc_hal_common: get_controller (noflash)
|
||||
adc_hal_common: adc_hal_set_controller (noflash)
|
||||
if SOC_ADC_ARBITER_SUPPORTED = y:
|
||||
adc_hal_common: adc_hal_arbiter_config (noflash)
|
||||
if SOC_ADC_CALIBRATION_V1_SUPPORTED = y:
|
||||
adc_hal_common: adc_hal_set_calibration_param (noflash)
|
||||
adc_hal_common: adc_hal_calibration_init (noflash)
|
||||
if ADC_CONTINUOUS_ISR_IRAM_SAFE = y:
|
||||
adc_hal: adc_hal_get_reading_result (noflash)
|
||||
adc_hal: adc_hal_digi_start (noflash)
|
||||
if COMPILER_OPTIMIZATION_DEFAULT = y:
|
||||
adc_hal: adc_hal_digi_dma_link_descriptors (noflash)
|
||||
adc_hal: adc_hal_digi_stop (noflash)
|
||||
if IDF_TARGET_ESP32 = y || IDF_TARGET_ESP32S2 = y:
|
||||
adc_hal: adc_hal_check_event (noflash)
|
||||
adc_hal: adc_hal_digi_clr_intr (noflash)
|
||||
adc_hal: adc_hal_get_desc_addr (noflash)
|
||||
|
Loading…
Reference in New Issue
Block a user