diff --git a/components/esp_phy/CMakeLists.txt b/components/esp_phy/CMakeLists.txt index 3ded3266a0..f1bc8e25b3 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,12 +97,7 @@ if(CONFIG_ESP_PHY_ENABLED) target_link_libraries(${COMPONENT_LIB} INTERFACE $ libphy.a $) endif() - - if(CONFIG_ESP_PHY_ENABLE_CERT_TEST) - target_link_libraries(${COMPONENT_LIB} INTERFACE $ libbttestmode.a - librfate.a librftest.a $) 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/Kconfig b/components/esp_phy/Kconfig index e6835b30fe..c0837398e2 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/components/esp_phy/include/esp_phy_cert_test.h b/components/esp_phy/include/esp_phy_cert_test.h index 461295683c..75e6b5e093 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/components/esp_phy/lib b/components/esp_phy/lib index 06e7625de1..8608fcf54d 160000 --- a/components/esp_phy/lib +++ b/components/esp_phy/lib @@ -1 +1 @@ -Subproject commit 06e7625de197bc12797dd701d6762229bca01826 +Subproject commit 8608fcf54d51e81f2e74ebf335fa33f61953f7c8 diff --git a/examples/phy/.build-test-rules.yml b/examples/phy/.build-test-rules.yml index 68eea70a32..fde2ce80f2 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 ["esp32c3", "esp32s3"] + disable: + - if: IDF_TARGET in ["esp32p4"] + reason: not supported + - if: IDF_TARGET in ["esp32c5", "esp32c61"] 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/README.md b/examples/phy/cert_test/README.md index fa8dd04ba3..748bbba0f0 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 @@ -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: @@ -121,4 +116,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. diff --git a/examples/phy/cert_test/main/cert_test.c b/examples/phy/cert_test/main/cert_test.c index 4e8e3c0405..cd8ac2afac 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,18 +39,25 @@ void app_main(void) register_phy_cmd(); /* rftest.a requirements */ +#if CONFIG_SOC_WIFI_SUPPORTED esp_wifi_power_domain_on(); +#endif esp_phy_rftest_config(1); 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 a21d197a8f..6ed7dd0cf6 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" diff --git a/examples/phy/cert_test/sdkconfig.defaults b/examples/phy/cert_test/sdkconfig.defaults index b0ce7b5c29..13e6bed13d 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 diff --git a/examples/phy/cert_test/sdkconfig.defaults.esp32s3 b/examples/phy/cert_test/sdkconfig.defaults.esp32s3 new file mode 100644 index 0000000000..771824b41e --- /dev/null +++ b/examples/phy/cert_test/sdkconfig.defaults.esp32s3 @@ -0,0 +1,4 @@ +# +# ESP32S3-specific +# +CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096 diff --git a/examples/protocols/mqtt/custom_outbox/sdkconfig.defaults b/examples/protocols/mqtt/custom_outbox/sdkconfig.defaults index 385da31baf..11f90ceacf 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