mirror of
https://github.com/espressif/esp-idf.git
synced 2026-04-27 19:13:21 +00:00
Merge branch 'fix/fix_spi_testcase_failures' into 'master'
fix(driver_spi): fixed several test case failures Closes IDFCI-2820, IDFCI-3130, IDFCI-3127, IDFCI-3329, IDFCI-2455, and IDFCI-6825 See merge request espressif/esp-idf!46347
This commit is contained in:
+6
-6
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -23,13 +23,13 @@
|
||||
#elif CONFIG_IDF_TARGET_ESP32S2
|
||||
#define IDF_TARGET_MAX_SPI_CLK_FREQ 40*1000*1000
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_POLL_DMA 15
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_POLL_CPU 15
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_POLL_CPU 13
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_INTR_DMA 32
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_INTR_CPU 30
|
||||
|
||||
#elif CONFIG_IDF_TARGET_ESP32S3
|
||||
#define IDF_TARGET_MAX_SPI_CLK_FREQ 40*1000*1000
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_POLL_DMA 15
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_POLL_DMA 17
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_POLL_CPU 15
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_INTR_DMA 32
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_INTR_CPU 30
|
||||
@@ -44,9 +44,9 @@
|
||||
#elif CONFIG_IDF_TARGET_ESP32C3
|
||||
#define IDF_TARGET_MAX_SPI_CLK_FREQ 40*1000*1000
|
||||
#if !CONFIG_FREERTOS_SMP // IDF-5826
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_POLL_DMA 15
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_POLL_DMA 17
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_POLL_CPU 15
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_INTR_DMA 33
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_INTR_DMA 35
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_INTR_CPU 30
|
||||
#else
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_POLL_DMA 17
|
||||
@@ -58,7 +58,7 @@
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6
|
||||
#define IDF_TARGET_MAX_SPI_CLK_FREQ 26666*1000
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_INTR_DMA 35 //TODO: IDF-9551, check perform
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_POLL_DMA 17
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_POLL_DMA 19
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_INTR_CPU 32
|
||||
#define IDF_TARGET_MAX_TRANS_TIME_POLL_CPU 15
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ TEST_CASE("SPI Master clockdiv calculation routines", "[spi]")
|
||||
|
||||
// Test All clock source
|
||||
#define TEST_CLK_BYTE_LEN 10000
|
||||
#define TEST_TRANS_TIME_BIAS_RATIO (float)8.0/100 // think 8% transfer time bias as acceptable
|
||||
#define TEST_TRANS_TIME_BIAS_RATIO (float)10.0/100 // think 10% transfer time bias as acceptable
|
||||
TEST_CASE("SPI Master clk_source and divider accuracy", "[spi]")
|
||||
{
|
||||
int64_t start = 0, end = 0;
|
||||
|
||||
@@ -1460,14 +1460,16 @@ static void test_slave_fd_no_dma(void)
|
||||
test_fill_random_to_buffers_dualboard(211 + mode + speed_level + i, slave_expect, slave_send, SOC_SPI_MAXIMUM_BUFFER_SIZE);
|
||||
|
||||
uint32_t test_trans_len = SOC_SPI_MAXIMUM_BUFFER_SIZE;
|
||||
spi_slave_transaction_t trans_cfg = {
|
||||
spi_slave_transaction_t *ret_trans, trans_cfg = {
|
||||
.tx_buffer = slave_send,
|
||||
.rx_buffer = slave_receive,
|
||||
.length = test_trans_len * 8,
|
||||
.flags = SPI_SLAVE_TRANS_DMA_BUFFER_ALIGN_AUTO,
|
||||
};
|
||||
TEST_ESP_OK(spi_slave_queue_trans(TEST_SPI_HOST, &trans_cfg, portMAX_DELAY));
|
||||
unity_send_signal("Slave ready");
|
||||
TEST_ESP_OK(spi_slave_transmit(TEST_SPI_HOST, &trans_cfg, portMAX_DELAY));
|
||||
TEST_ESP_OK(spi_slave_get_trans_result(TEST_SPI_HOST, &ret_trans, portMAX_DELAY));
|
||||
TEST_ASSERT_EQUAL(&trans_cfg, ret_trans);
|
||||
|
||||
ESP_LOG_BUFFER_HEX("slave tx", slave_send, test_trans_len);
|
||||
ESP_LOG_BUFFER_HEX_LEVEL("slave rx", slave_receive, test_trans_len, ESP_LOG_DEBUG);
|
||||
@@ -1952,14 +1954,15 @@ static void test_slave_sio_no_dma(void)
|
||||
for (int i = 0; i < TEST_STEP; i++) {
|
||||
memset(slave_receive, 0x00, SOC_SPI_MAXIMUM_BUFFER_SIZE);
|
||||
test_fill_random_to_buffers_dualboard(122 + mode + speed_level + i, slave_expect, slave_send, SOC_SPI_MAXIMUM_BUFFER_SIZE);
|
||||
spi_slave_transaction_t trans = {
|
||||
spi_slave_transaction_t *ret_trans, trans = {
|
||||
.length = SOC_SPI_MAXIMUM_BUFFER_SIZE * 8,
|
||||
.tx_buffer = slave_send,
|
||||
.rx_buffer = slave_receive,
|
||||
.flags = SPI_SLAVE_TRANS_DMA_BUFFER_ALIGN_AUTO,
|
||||
};
|
||||
TEST_ESP_OK(spi_slave_queue_trans(TEST_SPI_HOST, &trans, portMAX_DELAY));
|
||||
unity_send_signal("Slave ready");
|
||||
TEST_ESP_OK(spi_slave_transmit(TEST_SPI_HOST, &trans, portMAX_DELAY));
|
||||
TEST_ESP_OK(spi_slave_get_trans_result(TEST_SPI_HOST, &ret_trans, portMAX_DELAY));
|
||||
|
||||
if (sio_master_in) {
|
||||
ESP_LOG_BUFFER_HEX("Slave tx", trans.tx_buffer, SOC_SPI_MAXIMUM_BUFFER_SIZE);
|
||||
|
||||
Reference in New Issue
Block a user