diff --git a/components/esp_driver_tsens/test_apps/.build-test-rules.yml b/components/esp_driver_tsens/test_apps/.build-test-rules.yml index d54d916a4c..0117f07d13 100644 --- a/components/esp_driver_tsens/test_apps/.build-test-rules.yml +++ b/components/esp_driver_tsens/test_apps/.build-test-rules.yml @@ -3,6 +3,9 @@ components/esp_driver_tsens/test_apps/temperature_sensor: disable: - if: SOC_TEMP_SENSOR_SUPPORTED != 1 + - if: IDF_TARGET == "esp32c5" and CONFIG_NAME == "iram_safe" + temporary: false + reason: Use test_temperature_sensor_cbs_esp32c5 instead, iram_safe need to use single app large partition table on c5 depends_components: - esp_driver_tsens - esp_phy diff --git a/components/esp_driver_tsens/test_apps/temperature_sensor/pytest_temperature_sensor.py b/components/esp_driver_tsens/test_apps/temperature_sensor/pytest_temperature_sensor.py index c5880f8058..987e0db89f 100644 --- a/components/esp_driver_tsens/test_apps/temperature_sensor/pytest_temperature_sensor.py +++ b/components/esp_driver_tsens/test_apps/temperature_sensor/pytest_temperature_sensor.py @@ -31,11 +31,24 @@ def test_temperature_sensor_driver(dut: Dut) -> None: ], indirect=True, ) -@idf_parametrize('target', ['esp32c6', 'esp32h2', 'esp32p4', 'esp32c5', 'esp32c61'], indirect=['target']) +@idf_parametrize('target', ['esp32c6', 'esp32h2', 'esp32p4', 'esp32c61'], indirect=['target']) def test_temperature_sensor_cbs(dut: Dut) -> None: dut.run_all_single_board_cases() +@pytest.mark.generic +@pytest.mark.parametrize( + 'config', + [ + 'iram_safe_esp32c5', + ], + indirect=True, +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_temperature_sensor_cbs_esp32c5(dut: Dut) -> None: + dut.run_all_single_board_cases() + + @pytest.mark.wifi_two_dut @pytest.mark.parametrize('count', [2], indirect=True) @idf_parametrize('target', ['esp32s2', 'esp32c3', 'esp32s3', 'esp32c2', 'esp32c6', 'esp32c61'], indirect=['target']) diff --git a/components/esp_driver_tsens/test_apps/temperature_sensor/sdkconfig.ci.iram_safe_esp32c5 b/components/esp_driver_tsens/test_apps/temperature_sensor/sdkconfig.ci.iram_safe_esp32c5 new file mode 100644 index 0000000000..957befdf34 --- /dev/null +++ b/components/esp_driver_tsens/test_apps/temperature_sensor/sdkconfig.ci.iram_safe_esp32c5 @@ -0,0 +1,9 @@ +CONFIG_IDF_TARGET="esp32c5" +CONFIG_COMPILER_DUMP_RTL_FILES=y +CONFIG_TEMP_SENSOR_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 +# place non-ISR FreeRTOS functions in Flash +CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y +CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y diff --git a/examples/mesh/internal_communication/sdkconfig.defaults.esp32c5 b/examples/mesh/internal_communication/sdkconfig.defaults.esp32c5 new file mode 100644 index 0000000000..1686559de4 --- /dev/null +++ b/examples/mesh/internal_communication/sdkconfig.defaults.esp32c5 @@ -0,0 +1 @@ +CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y