From 2225b4c3ca59dcfadfb63418749e3ea2a15cba91 Mon Sep 17 00:00:00 2001 From: xiehang Date: Mon, 18 Dec 2023 16:09:14 +0800 Subject: [PATCH 1/6] fix(phy): All chip support cert_test --- components/esp_phy/CMakeLists.txt | 12 ++++++++++-- components/esp_phy/Kconfig | 1 - examples/phy/.build-test-rules.yml | 2 +- examples/phy/cert_test/README.md | 6 +++--- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/components/esp_phy/CMakeLists.txt b/components/esp_phy/CMakeLists.txt index 3ded3266a043..bedae1f51ca4 100644 --- a/components/esp_phy/CMakeLists.txt +++ b/components/esp_phy/CMakeLists.txt @@ -86,8 +86,16 @@ if(CONFIG_ESP_PHY_ENABLED) endif() if(CONFIG_ESP_PHY_ENABLE_CERT_TEST) - target_link_libraries(${COMPONENT_LIB} INTERFACE $ libbttestmode.a - librfate.a librftest.a $) + if(CONFIG_IDF_TARGET_ESP32) + target_link_libraries(${COMPONENT_LIB} INTERFACE $ libbttestmode.a + librftest.a $) + elseif(CONFIG_IDF_TARGET_ESP32S2) + target_link_libraries(${COMPONENT_LIB} INTERFACE $ librftest.a + librfate.a $) + else() + target_link_libraries(${COMPONENT_LIB} INTERFACE $ libbttestmode.a + librfate.a librftest.a $) + endif() endif() endif() diff --git a/components/esp_phy/Kconfig b/components/esp_phy/Kconfig index e6835b30feba..c0837398e2ad 100644 --- a/components/esp_phy/Kconfig +++ b/components/esp_phy/Kconfig @@ -130,7 +130,6 @@ menu "PHY" config ESP_PHY_ENABLE_CERT_TEST bool "Enable RF certification test functions" default n - depends on IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 help If enabled, you can use RF certification test APIs. diff --git a/examples/phy/.build-test-rules.yml b/examples/phy/.build-test-rules.yml index 68eea70a3241..063e13c24685 100644 --- a/examples/phy/.build-test-rules.yml +++ b/examples/phy/.build-test-rules.yml @@ -9,6 +9,6 @@ examples/phy/antenna: reason: not supported examples/phy/cert_test: enable: - - if: IDF_TARGET in ["esp32c3", "esp32s3"] + - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s2", "esp32s3"] temporary: true reason: the other targets are not tested yet diff --git a/examples/phy/cert_test/README.md b/examples/phy/cert_test/README.md index fa8dd04ba369..3ac5021bfd45 100644 --- a/examples/phy/cert_test/README.md +++ b/examples/phy/cert_test/README.md @@ -1,5 +1,5 @@ -| Supported Targets | ESP32-C3 | ESP32-S3 | -| ----------------- | -------- | -------- | +| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 | +| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | # Certification Test Example @@ -121,4 +121,4 @@ For BLE test, if you want to use `fcc_le_tx` and `rw_le_rx_per` legacy commands ## Troubleshooting -For any technical queries, please open an [issue](https://github.com/espressif/esp-idf/issues) on GitHub. We will get back to you soon. \ No newline at end of file +For any technical queries, please open an [issue](https://github.com/espressif/esp-idf/issues) on GitHub. We will get back to you soon. From cf577ee4cbfcaf5e99f9884cd1118e17f6a934b2 Mon Sep 17 00:00:00 2001 From: muhaidong Date: Tue, 25 Jun 2024 15:16:39 +0800 Subject: [PATCH 2/6] fix(phy): fix esp32 build fail issue Closes https://github.com/espressif/esp-idf/issues/11972 --- components/esp_phy/CMakeLists.txt | 26 +++++++++---------- .../esp_phy/include/esp_phy_cert_test.h | 6 ++--- examples/phy/.build-test-rules.yml | 8 +++--- examples/phy/cert_test/sdkconfig.defaults | 1 + 4 files changed, 22 insertions(+), 19 deletions(-) diff --git a/components/esp_phy/CMakeLists.txt b/components/esp_phy/CMakeLists.txt index bedae1f51ca4..f1bc8e25b388 100644 --- a/components/esp_phy/CMakeLists.txt +++ b/components/esp_phy/CMakeLists.txt @@ -72,6 +72,19 @@ if(CONFIG_ESP_PHY_ENABLED) idf_component_get_property(esp_phy_lib esp_phy COMPONENT_LIB) + if(CONFIG_ESP_PHY_ENABLE_CERT_TEST) + if(CONFIG_IDF_TARGET_ESP32) + target_link_libraries(${COMPONENT_LIB} INTERFACE $ libbttestmode.a + librftest.a $) + elseif(CONFIG_IDF_TARGET_ESP32S2) + target_link_libraries(${COMPONENT_LIB} INTERFACE $ librftest.a + librfate.a $) + else() + target_link_libraries(${COMPONENT_LIB} INTERFACE $ libbttestmode.a + librfate.a librftest.a $) + endif() + endif() + if(CONFIG_IDF_TARGET_ESP32) target_link_libraries(${COMPONENT_LIB} PUBLIC rtc) target_link_libraries(${COMPONENT_LIB} INTERFACE $ libphy.a librtc.a @@ -84,20 +97,7 @@ if(CONFIG_ESP_PHY_ENABLED) target_link_libraries(${COMPONENT_LIB} INTERFACE $ libphy.a $) endif() - - if(CONFIG_ESP_PHY_ENABLE_CERT_TEST) - if(CONFIG_IDF_TARGET_ESP32) - target_link_libraries(${COMPONENT_LIB} INTERFACE $ libbttestmode.a - librftest.a $) - elseif(CONFIG_IDF_TARGET_ESP32S2) - target_link_libraries(${COMPONENT_LIB} INTERFACE $ librftest.a - librfate.a $) - else() - target_link_libraries(${COMPONENT_LIB} INTERFACE $ libbttestmode.a - librfate.a librftest.a $) - endif() endif() -endif() if(CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION) idf_component_get_property(esp_common_dir esp_common COMPONENT_DIR) diff --git a/components/esp_phy/include/esp_phy_cert_test.h b/components/esp_phy/include/esp_phy_cert_test.h index 461295683c6d..75e6b5e0932c 100644 --- a/components/esp_phy/include/esp_phy_cert_test.h +++ b/components/esp_phy/include/esp_phy_cert_test.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -63,7 +63,7 @@ typedef struct { uint32_t phy_rx_correct_count; /*!< The number of desired packets received */ int phy_rx_rssi; /*!< Average RSSI of desired packets */ uint32_t phy_rx_total_count; /*!< The number of total packets received */ - uint32_t phy_rx_result_flag; /*!< 0 means no RX info; 1 means the lastest Wi-Fi RX info; 2 means the lastest BLE RX info. */ + uint32_t phy_rx_result_flag; /*!< 0 means no RX info; 1 means the latest Wi-Fi RX info; 2 means the latest BLE RX info. */ } esp_phy_rx_result_t; /** @@ -120,7 +120,7 @@ void esp_phy_cbw40m_en(bool en); void esp_phy_wifi_tx(uint32_t chan, esp_phy_wifi_rate_t rate, int8_t backoff, uint32_t length_byte, uint32_t packet_delay, uint32_t packet_num); /** - * @brief Test start/stop command, used to stop transmitting or reciving state. + * @brief Test start/stop command, used to stop transmitting or receiving state. * * @param value: * Value should be set to 3 before TX/RX. diff --git a/examples/phy/.build-test-rules.yml b/examples/phy/.build-test-rules.yml index 063e13c24685..df87b34d77f6 100644 --- a/examples/phy/.build-test-rules.yml +++ b/examples/phy/.build-test-rules.yml @@ -8,7 +8,9 @@ examples/phy/antenna: - if: IDF_TARGET in ["esp32p4", "esp32h2"] reason: not supported examples/phy/cert_test: - enable: - - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s2", "esp32s3"] + disable: + - if: IDF_TARGET in ["esp32p4"] + reason: not supported + - if: IDF_TARGET == "esp32c5" temporary: true - reason: the other targets are not tested yet + reason: not supported yet # TODO: [ESP32C5] IDF-8851 diff --git a/examples/phy/cert_test/sdkconfig.defaults b/examples/phy/cert_test/sdkconfig.defaults index b0ce7b5c2982..13e6bed13dec 100644 --- a/examples/phy/cert_test/sdkconfig.defaults +++ b/examples/phy/cert_test/sdkconfig.defaults @@ -2,3 +2,4 @@ CONFIG_ESP_TASK_WDT_EN=n CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION=y CONFIG_ESP_PHY_ENABLE_CERT_TEST=y +CONFIG_BT_ENABLED=y From 7cb3bba0bab7a13901a47ac834342f8c08c05f2e Mon Sep 17 00:00:00 2001 From: muhaidong Date: Fri, 16 Aug 2024 17:12:16 +0800 Subject: [PATCH 3/6] fix(phy): esp32s2 and esph2 support rf cert_test --- examples/phy/.build-test-rules.yml | 2 +- examples/phy/cert_test/main/cert_test.c | 4 +++- examples/phy/cert_test/sdkconfig.defaults.esp32s3 | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 examples/phy/cert_test/sdkconfig.defaults.esp32s3 diff --git a/examples/phy/.build-test-rules.yml b/examples/phy/.build-test-rules.yml index df87b34d77f6..fde2ce80f2c6 100644 --- a/examples/phy/.build-test-rules.yml +++ b/examples/phy/.build-test-rules.yml @@ -11,6 +11,6 @@ examples/phy/cert_test: disable: - if: IDF_TARGET in ["esp32p4"] reason: not supported - - if: IDF_TARGET == "esp32c5" + - if: IDF_TARGET in ["esp32c5", "esp32c61"] temporary: true reason: not supported yet # TODO: [ESP32C5] IDF-8851 diff --git a/examples/phy/cert_test/main/cert_test.c b/examples/phy/cert_test/main/cert_test.c index 4e8e3c0405c3..323e10655419 100644 --- a/examples/phy/cert_test/main/cert_test.c +++ b/examples/phy/cert_test/main/cert_test.c @@ -38,7 +38,9 @@ void app_main(void) register_phy_cmd(); /* rftest.a requirements */ - esp_wifi_power_domain_on(); + #ifndef CONFIG_IDF_TARGET_ESP32H2 + esp_wifi_power_domain_on(); + #endif esp_phy_rftest_config(1); esp_phy_rftest_init(); diff --git a/examples/phy/cert_test/sdkconfig.defaults.esp32s3 b/examples/phy/cert_test/sdkconfig.defaults.esp32s3 new file mode 100644 index 000000000000..771824b41efc --- /dev/null +++ b/examples/phy/cert_test/sdkconfig.defaults.esp32s3 @@ -0,0 +1,4 @@ +# +# ESP32S3-specific +# +CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096 From 32700ae426b3529bf291a1dc637d2b07b8e5ff67 Mon Sep 17 00:00:00 2001 From: Mu Hai Dong Date: Thu, 5 Sep 2024 12:01:07 +0800 Subject: [PATCH 4/6] Apply 1 suggestion(s) to 1 file(s) Co-authored-by: Jiang Jiang Jian --- examples/phy/cert_test/main/cert_test.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/phy/cert_test/main/cert_test.c b/examples/phy/cert_test/main/cert_test.c index 323e10655419..af5c99fffffa 100644 --- a/examples/phy/cert_test/main/cert_test.c +++ b/examples/phy/cert_test/main/cert_test.c @@ -38,9 +38,9 @@ void app_main(void) register_phy_cmd(); /* rftest.a requirements */ - #ifndef CONFIG_IDF_TARGET_ESP32H2 - esp_wifi_power_domain_on(); - #endif +#ifndef CONFIG_IDF_TARGET_ESP32H2 + esp_wifi_power_domain_on(); +#endif esp_phy_rftest_config(1); esp_phy_rftest_init(); From b171f1d57bd1420fa576e0fda29a42ee94a55981 Mon Sep 17 00:00:00 2001 From: muhaidong Date: Wed, 18 Sep 2024 21:57:03 +0800 Subject: [PATCH 5/6] fix(phy): update cert_test docs --- components/esp_phy/lib | 2 +- examples/phy/cert_test/README.md | 7 +------ examples/phy/cert_test/main/cert_test.c | 14 ++++++++++---- examples/phy/cert_test/main/cmd_phy.c | 2 ++ 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/components/esp_phy/lib b/components/esp_phy/lib index 06e7625de197..8608fcf54d51 160000 --- a/components/esp_phy/lib +++ b/components/esp_phy/lib @@ -1 +1 @@ -Subproject commit 06e7625de197bc12797dd701d6762229bca01826 +Subproject commit 8608fcf54d51e81f2e74ebf335fa33f61953f7c8 diff --git a/examples/phy/cert_test/README.md b/examples/phy/cert_test/README.md index 3ac5021bfd45..748bbba0f09a 100644 --- a/examples/phy/cert_test/README.md +++ b/examples/phy/cert_test/README.md @@ -13,7 +13,7 @@ Before project configuration and build, be sure to set the correct chip target u ### Hardware Required -* A development board with ESP32-C3/ESP32-S3/ SoC. +* A development board with ESP32/ESP32-C2/ESP32-C3/ESP32-C6/ESP32-H2/ESP32-S2/ESP32-S3/ SoC. * A USB cable for Power supply and programming ### Configure the project @@ -34,11 +34,6 @@ Run `idf.py -p PORT flash monitor` to build, flash and monitor the project. (To exit the serial monitor, type ``Ctrl-]``.) -See the Getting Started Guide for all the steps to configure and use the ESP-IDF to build projects. - -* [ESP-IDF Getting Started Guide on ESP32-C3](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/get-started/index.html) -* [ESP-IDF Getting Started Guide on ESP32-S3](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/get-started/index.html) - ## Example Output The command and output logs for each test are as follows: diff --git a/examples/phy/cert_test/main/cert_test.c b/examples/phy/cert_test/main/cert_test.c index af5c99fffffa..cd8ac2afac1f 100644 --- a/examples/phy/cert_test/main/cert_test.c +++ b/examples/phy/cert_test/main/cert_test.c @@ -1,9 +1,10 @@ /* - * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ +#include "sdkconfig.h" #include "nvs_flash.h" #include "esp_console.h" @@ -38,7 +39,7 @@ void app_main(void) register_phy_cmd(); /* rftest.a requirements */ -#ifndef CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_SOC_WIFI_SUPPORTED esp_wifi_power_domain_on(); #endif @@ -46,12 +47,17 @@ void app_main(void) esp_phy_rftest_init(); #endif + int help_index = 1; printf("\n ==================================================\n"); printf(" | RF certification test |\n"); printf(" | |\n"); printf(" | 1. Print 'help' to gain overview of commands |\n"); - printf(" | 2. Wi-Fi certification test |\n"); - printf(" | 3. Bluetooth certification test |\n"); +#if CONFIG_SOC_WIFI_SUPPORTED + printf(" | %d. Wi-Fi certification test |\n", ++help_index); +#endif +#if CONFIG_SOC_BT_SUPPORTED + printf(" | %d. Bluetooth certification test |\n", ++help_index); +#endif printf(" | |\n"); printf(" =================================================\n\n"); diff --git a/examples/phy/cert_test/main/cmd_phy.c b/examples/phy/cert_test/main/cmd_phy.c index a21d197a8f0b..6ed7dd0cf6da 100644 --- a/examples/phy/cert_test/main/cmd_phy.c +++ b/examples/phy/cert_test/main/cmd_phy.c @@ -3,6 +3,8 @@ * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ + +#include "sdkconfig.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_log.h" From 67b99935d97e0f6c51f6abac7fb267411c95a506 Mon Sep 17 00:00:00 2001 From: muhaidong Date: Thu, 10 Oct 2024 10:56:25 +0800 Subject: [PATCH 6/6] fix(ci): fixed examples protocols mqtt custom_outbox build fail issue --- examples/protocols/mqtt/custom_outbox/sdkconfig.defaults | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/protocols/mqtt/custom_outbox/sdkconfig.defaults b/examples/protocols/mqtt/custom_outbox/sdkconfig.defaults index 385da31bafe2..11f90ceacf91 100644 --- a/examples/protocols/mqtt/custom_outbox/sdkconfig.defaults +++ b/examples/protocols/mqtt/custom_outbox/sdkconfig.defaults @@ -1,2 +1,3 @@ CONFIG_MQTT_CUSTOM_OUTBOX=y CONFIG_COMPILER_CXX_EXCEPTIONS=y +CONFIG_COMPILER_OPTIMIZATION_SIZE=y