Skip to content

Commit

Permalink
Merge branch 'bugfix/support_cert_test_v5.2' into 'release/v5.2'
Browse files Browse the repository at this point in the history
fix(phy): Add cert_test support for ESP32, ESP32-C2, ESP32-C6, ESP32-H2 and ESP32-S2(Backport v5.2)

See merge request espressif/esp-idf!34205
  • Loading branch information
Jiang Jiang Jian committed Oct 25, 2024
2 parents 2b35c55 + 1a1e17a commit 4f3981a
Show file tree
Hide file tree
Showing 10 changed files with 45 additions and 29 deletions.
24 changes: 16 additions & 8 deletions components/esp_phy/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,22 +66,30 @@ if(link_binary_libs)

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 $<TARGET_FILE:${esp_phy_lib}> libbttestmode.a
librftest.a $<TARGET_FILE:${esp_phy_lib}>)
elseif(CONFIG_IDF_TARGET_ESP32S2)
target_link_libraries(${COMPONENT_LIB} INTERFACE $<TARGET_FILE:${esp_phy_lib}> librftest.a
librfate.a $<TARGET_FILE:${esp_phy_lib}>)
else()
target_link_libraries(${COMPONENT_LIB} INTERFACE $<TARGET_FILE:${esp_phy_lib}> libbttestmode.a
librfate.a librftest.a $<TARGET_FILE:${esp_phy_lib}>)
endif()
endif()

if(CONFIG_IDF_TARGET_ESP32)
target_link_libraries(${COMPONENT_LIB} PUBLIC rtc)
target_link_libraries(${COMPONENT_LIB} INTERFACE $<TARGET_FILE:${esp_phy_lib}> libphy.a librtc.a
$<TARGET_FILE:${esp_phy_lib}>)
elseif(CONFIG_IDF_TARGET_ESP32S2)
target_link_libraries(${COMPONENT_LIB} INTERFACE $<TARGET_FILE:${esp_phy_lib}> libphy.a
$<TARGET_FILE:${esp_phy_lib}>)
elseif(CONFIG_SOC_BT_SUPPORTED OR CONFIG_SOC_IEEE802154_SUPPORTED)
target_link_libraries(${COMPONENT_LIB} PUBLIC btbb)
target_link_libraries(${COMPONENT_LIB} INTERFACE $<TARGET_FILE:${esp_phy_lib}> libphy.a libbtbb.a
$<TARGET_FILE:${esp_phy_lib}>)
endif()

if(CONFIG_ESP_PHY_ENABLE_CERT_TEST)
target_link_libraries(${COMPONENT_LIB} INTERFACE $<TARGET_FILE:${esp_phy_lib}> libbttestmode.a
librfate.a librftest.a $<TARGET_FILE:${esp_phy_lib}>)
elseif(CONFIG_SOC_WIFI_SUPPORTED)
target_link_libraries(${COMPONENT_LIB} INTERFACE $<TARGET_FILE:${esp_phy_lib}> libphy.a
$<TARGET_FILE:${esp_phy_lib}>)
endif()
endif()

Expand Down
1 change: 0 additions & 1 deletion components/esp_phy/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,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.

Expand Down
6 changes: 3 additions & 3 deletions components/esp_phy/include/esp_phy_cert_test.h
Original file line number Diff line number Diff line change
@@ -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
*/
Expand Down Expand Up @@ -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;

/**
Expand Down Expand Up @@ -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.
Expand Down
7 changes: 3 additions & 4 deletions examples/phy/.build-test-rules.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps

examples/phy/cert_test:
enable:
- if: IDF_TARGET in ["esp32c3", "esp32s3"]
temporary: true
reason: the other targets are not tested yet
disable:
- if: IDF_TARGET in ["esp32p4"]
reason: not supported
13 changes: 4 additions & 9 deletions examples/phy/cert_test/README.md
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -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
Expand All @@ -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:
Expand Down Expand Up @@ -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.
For any technical queries, please open an [issue](https://github.com/espressif/esp-idf/issues) on GitHub. We will get back to you soon.
14 changes: 11 additions & 3 deletions examples/phy/cert_test/main/cert_test.c
Original file line number Diff line number Diff line change
@@ -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"
Expand Down Expand Up @@ -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");

Expand Down
2 changes: 2 additions & 0 deletions examples/phy/cert_test/main/cmd_phy.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
1 change: 1 addition & 0 deletions examples/phy/cert_test/sdkconfig.defaults
Original file line number Diff line number Diff line change
Expand Up @@ -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
4 changes: 4 additions & 0 deletions examples/phy/cert_test/sdkconfig.defaults.esp32s3
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#
# ESP32S3-specific
#
CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096

0 comments on commit 4f3981a

Please sign in to comment.