|
|
@@ -7,7 +7,6 @@
|
|
|
Tests for the spi_master device driver
|
|
|
*/
|
|
|
|
|
|
-
|
|
|
#include "sdkconfig.h"
|
|
|
#include "driver/spi_master.h"
|
|
|
#include "driver/spi_slave.h"
|
|
|
@@ -24,7 +23,6 @@
|
|
|
#include "test_utils.h"
|
|
|
#include "test_spi_utils.h"
|
|
|
|
|
|
-
|
|
|
const static char TAG[] = "test_spi";
|
|
|
|
|
|
// There is no input-only pin except on esp32 and esp32s2
|
|
|
@@ -75,8 +73,7 @@ static void check_spi_pre_n_for(spi_clock_source_t clock_source, int clk, int pr
|
|
|
* {freq, pre, n}
|
|
|
*/
|
|
|
#define TEST_CLK_TIMES 8
|
|
|
-struct test_clk_param_group_t
|
|
|
-{
|
|
|
+struct test_clk_param_group_t {
|
|
|
uint32_t clk_param_80m[TEST_CLK_TIMES][3];
|
|
|
uint32_t clk_param_48m[TEST_CLK_TIMES][3];
|
|
|
uint32_t clk_param_40m[TEST_CLK_TIMES][3];
|
|
|
@@ -92,7 +89,6 @@ struct test_clk_param_group_t
|
|
|
{{1, SOC_SPI_MAX_PRE_DIVIDER, 64}, {100000, 2, 35}, {333333, 1, 21}, {800000, 1, 9}, {900000, 1, 8}, {1100000, 1, 6}, {4000000, 1, 2,}, {7000000, 1, 1} },
|
|
|
};
|
|
|
|
|
|
-
|
|
|
TEST_CASE("SPI Master clockdiv calculation routines", "[spi]")
|
|
|
{
|
|
|
spi_bus_config_t buscfg = SPI_BUS_TEST_DEFAULT_CONFIG();
|
|
|
@@ -148,12 +144,12 @@ TEST_CASE("SPI Master clockdiv calculation routines", "[spi]")
|
|
|
#if SOC_SPI_SUPPORT_CLK_XTAL
|
|
|
esp_clk_tree_src_get_freq_hz(SPI_CLK_SRC_XTAL, ESP_CLK_TREE_SRC_FREQ_PRECISION_APPROX, &clock_source_hz);
|
|
|
printf("\nTest clock source XTAL = %ld\n", clock_source_hz);
|
|
|
- if((40 * 1000 * 1000) == clock_source_hz){
|
|
|
+ if ((40 * 1000 * 1000) == clock_source_hz) {
|
|
|
for (int i = 0; i < TEST_CLK_TIMES; i++) {
|
|
|
check_spi_pre_n_for(SPI_CLK_SRC_XTAL, test_clk_param.clk_param_40m[i][0], test_clk_param.clk_param_40m[i][1], test_clk_param.clk_param_40m[i][2]);
|
|
|
}
|
|
|
}
|
|
|
- if((32 * 1000 * 1000) == clock_source_hz){
|
|
|
+ if ((32 * 1000 * 1000) == clock_source_hz) {
|
|
|
for (int i = 0; i < TEST_CLK_TIMES; i++) {
|
|
|
check_spi_pre_n_for(SPI_CLK_SRC_XTAL, test_clk_param.clk_param_32m[i][0], test_clk_param.clk_param_32m[i][1], test_clk_param.clk_param_32m[i][2]);
|
|
|
}
|
|
|
@@ -164,12 +160,12 @@ TEST_CASE("SPI Master clockdiv calculation routines", "[spi]")
|
|
|
#if SOC_SPI_SUPPORT_CLK_RC_FAST
|
|
|
esp_clk_tree_src_get_freq_hz(SPI_CLK_SRC_RC_FAST, ESP_CLK_TREE_SRC_FREQ_PRECISION_APPROX, &clock_source_hz);
|
|
|
printf("\nTest clock source RC_FAST = %ld\n", clock_source_hz);
|
|
|
- if((17500000) == clock_source_hz){
|
|
|
+ if ((17500000) == clock_source_hz) {
|
|
|
for (int i = 0; i < TEST_CLK_TIMES; i++) {
|
|
|
check_spi_pre_n_for(SPI_CLK_SRC_RC_FAST, test_clk_param.clk_param_17m[i][0], test_clk_param.clk_param_17m[i][1], test_clk_param.clk_param_17m[i][2]);
|
|
|
}
|
|
|
}
|
|
|
- if((7000000) == clock_source_hz){
|
|
|
+ if ((7000000) == clock_source_hz) {
|
|
|
for (int i = 0; i < TEST_CLK_TIMES; i++) {
|
|
|
check_spi_pre_n_for(SPI_CLK_SRC_RC_FAST, test_clk_param.clk_param_7m[i][0], test_clk_param.clk_param_7m[i][1], test_clk_param.clk_param_7m[i][2]);
|
|
|
}
|
|
|
@@ -317,7 +313,6 @@ TEST_CASE("SPI Master test", "[spi]")
|
|
|
TEST_ASSERT(success);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
TEST_CASE("SPI Master test, interaction of multiple devs", "[spi]")
|
|
|
{
|
|
|
esp_err_t ret;
|
|
|
@@ -355,7 +350,6 @@ TEST_CASE("SPI Master test, interaction of multiple devs", "[spi]")
|
|
|
printf("Sending to dev 2\n");
|
|
|
success &= spi_test(handle2, 5000);
|
|
|
|
|
|
-
|
|
|
ret = spi_bus_remove_device(handle2);
|
|
|
TEST_ASSERT(ret == ESP_OK);
|
|
|
master_free_device_bus(handle1);
|
|
|
@@ -440,9 +434,9 @@ TEST_CASE("spi bus setting with different pin configs", "[spi]")
|
|
|
.max_transfer_sz = 8, .flags = flags_expected
|
|
|
};
|
|
|
TEST_ESP_OK(spicommon_bus_initialize_io(TEST_SPI_HOST, &cfg, flags_expected | SPICOMMON_BUSFLAG_MASTER, &flags_o));
|
|
|
- TEST_ASSERT_EQUAL_HEX32( flags_expected, flags_o );
|
|
|
+ TEST_ASSERT_EQUAL_HEX32(flags_expected, flags_o);
|
|
|
TEST_ESP_OK(spicommon_bus_initialize_io(TEST_SPI_HOST, &cfg, flags_expected | SPICOMMON_BUSFLAG_SLAVE, &flags_o));
|
|
|
- TEST_ASSERT_EQUAL_HEX32( flags_expected, flags_o );
|
|
|
+ TEST_ASSERT_EQUAL_HEX32(flags_expected, flags_o);
|
|
|
|
|
|
ESP_LOGI(TAG, "test 4 iomux output pins...");
|
|
|
flags_expected = SPICOMMON_BUSFLAG_SCLK | SPICOMMON_BUSFLAG_MOSI | SPICOMMON_BUSFLAG_MISO | SPICOMMON_BUSFLAG_IOMUX_PINS | SPICOMMON_BUSFLAG_DUAL;
|
|
|
@@ -451,9 +445,9 @@ TEST_CASE("spi bus setting with different pin configs", "[spi]")
|
|
|
.max_transfer_sz = 8, .flags = flags_expected
|
|
|
};
|
|
|
TEST_ESP_OK(spicommon_bus_initialize_io(TEST_SPI_HOST, &cfg, flags_expected | SPICOMMON_BUSFLAG_MASTER, &flags_o));
|
|
|
- TEST_ASSERT_EQUAL_HEX32( flags_expected, flags_o );
|
|
|
+ TEST_ASSERT_EQUAL_HEX32(flags_expected, flags_o);
|
|
|
TEST_ESP_OK(spicommon_bus_initialize_io(TEST_SPI_HOST, &cfg, flags_expected | SPICOMMON_BUSFLAG_SLAVE, &flags_o));
|
|
|
- TEST_ASSERT_EQUAL_HEX32( flags_expected, flags_o );
|
|
|
+ TEST_ASSERT_EQUAL_HEX32(flags_expected, flags_o);
|
|
|
|
|
|
ESP_LOGI(TAG, "test 6 output pins...");
|
|
|
flags_expected = SPICOMMON_BUSFLAG_SCLK | SPICOMMON_BUSFLAG_MOSI | SPICOMMON_BUSFLAG_MISO | SPICOMMON_BUSFLAG_QUAD | SPICOMMON_BUSFLAG_GPIO_PINS;
|
|
|
@@ -463,9 +457,9 @@ TEST_CASE("spi bus setting with different pin configs", "[spi]")
|
|
|
.max_transfer_sz = 8, .flags = flags_expected
|
|
|
};
|
|
|
TEST_ESP_OK(spicommon_bus_initialize_io(TEST_SPI_HOST, &cfg, flags_expected | SPICOMMON_BUSFLAG_MASTER, &flags_o));
|
|
|
- TEST_ASSERT_EQUAL_HEX32( flags_expected, flags_o );
|
|
|
+ TEST_ASSERT_EQUAL_HEX32(flags_expected, flags_o);
|
|
|
TEST_ESP_OK(spicommon_bus_initialize_io(TEST_SPI_HOST, &cfg, flags_expected | SPICOMMON_BUSFLAG_SLAVE, &flags_o));
|
|
|
- TEST_ASSERT_EQUAL_HEX32( flags_expected, flags_o );
|
|
|
+ TEST_ASSERT_EQUAL_HEX32(flags_expected, flags_o);
|
|
|
|
|
|
ESP_LOGI(TAG, "test 4 output pins...");
|
|
|
flags_expected = SPICOMMON_BUSFLAG_SCLK | SPICOMMON_BUSFLAG_MOSI | SPICOMMON_BUSFLAG_MISO | SPICOMMON_BUSFLAG_DUAL | SPICOMMON_BUSFLAG_GPIO_PINS;
|
|
|
@@ -475,9 +469,9 @@ TEST_CASE("spi bus setting with different pin configs", "[spi]")
|
|
|
.max_transfer_sz = 8, .flags = flags_expected
|
|
|
};
|
|
|
TEST_ESP_OK(spicommon_bus_initialize_io(TEST_SPI_HOST, &cfg, flags_expected | SPICOMMON_BUSFLAG_MASTER, &flags_o));
|
|
|
- TEST_ASSERT_EQUAL_HEX32( flags_expected, flags_o );
|
|
|
+ TEST_ASSERT_EQUAL_HEX32(flags_expected, flags_o);
|
|
|
TEST_ESP_OK(spicommon_bus_initialize_io(TEST_SPI_HOST, &cfg, flags_expected | SPICOMMON_BUSFLAG_SLAVE, &flags_o));
|
|
|
- TEST_ASSERT_EQUAL_HEX32( flags_expected, flags_o );
|
|
|
+ TEST_ASSERT_EQUAL_HEX32(flags_expected, flags_o);
|
|
|
|
|
|
#if TEST_SOC_HAS_INPUT_ONLY_PINS //There is no input-only pin on esp32c3 and esp32s3, so this test could be ignored.
|
|
|
ESP_LOGI(TAG, "test master 5 output pins and MOSI on input-only pin...");
|
|
|
@@ -487,7 +481,7 @@ TEST_CASE("spi bus setting with different pin configs", "[spi]")
|
|
|
.max_transfer_sz = 8, .flags = flags_expected
|
|
|
};
|
|
|
TEST_ESP_OK(spicommon_bus_initialize_io(TEST_SPI_HOST, &cfg, flags_expected | SPICOMMON_BUSFLAG_MASTER, &flags_o));
|
|
|
- TEST_ASSERT_EQUAL_HEX32( flags_expected, flags_o );
|
|
|
+ TEST_ASSERT_EQUAL_HEX32(flags_expected, flags_o);
|
|
|
|
|
|
ESP_LOGI(TAG, "test slave 5 output pins and MISO on input-only pin...");
|
|
|
flags_expected = SPICOMMON_BUSFLAG_SCLK | SPICOMMON_BUSFLAG_MOSI | SPICOMMON_BUSFLAG_MISO | SPICOMMON_BUSFLAG_WPHD | SPICOMMON_BUSFLAG_GPIO_PINS;
|
|
|
@@ -496,7 +490,7 @@ TEST_CASE("spi bus setting with different pin configs", "[spi]")
|
|
|
.max_transfer_sz = 8, .flags = flags_expected
|
|
|
};
|
|
|
TEST_ESP_OK(spicommon_bus_initialize_io(TEST_SPI_HOST, &cfg, flags_expected | SPICOMMON_BUSFLAG_SLAVE, &flags_o));
|
|
|
- TEST_ASSERT_EQUAL_HEX32( flags_expected, flags_o );
|
|
|
+ TEST_ASSERT_EQUAL_HEX32(flags_expected, flags_o);
|
|
|
|
|
|
ESP_LOGI(TAG, "test master 3 output pins and MOSI on input-only pin...");
|
|
|
flags_expected = SPICOMMON_BUSFLAG_SCLK | SPICOMMON_BUSFLAG_MOSI | SPICOMMON_BUSFLAG_MISO | SPICOMMON_BUSFLAG_GPIO_PINS;
|
|
|
@@ -506,7 +500,7 @@ TEST_CASE("spi bus setting with different pin configs", "[spi]")
|
|
|
.max_transfer_sz = 8, .flags = flags_expected
|
|
|
};
|
|
|
TEST_ESP_OK(spicommon_bus_initialize_io(TEST_SPI_HOST, &cfg, flags_expected | SPICOMMON_BUSFLAG_MASTER, &flags_o));
|
|
|
- TEST_ASSERT_EQUAL_HEX32( flags_expected, flags_o );
|
|
|
+ TEST_ASSERT_EQUAL_HEX32(flags_expected, flags_o);
|
|
|
|
|
|
ESP_LOGI(TAG, "test slave 3 output pins and MISO on input-only pin...");
|
|
|
flags_expected = SPICOMMON_BUSFLAG_SCLK | SPICOMMON_BUSFLAG_MOSI | SPICOMMON_BUSFLAG_MISO | SPICOMMON_BUSFLAG_GPIO_PINS;
|
|
|
@@ -515,7 +509,7 @@ TEST_CASE("spi bus setting with different pin configs", "[spi]")
|
|
|
.max_transfer_sz = 8, .flags = flags_expected
|
|
|
};
|
|
|
TEST_ESP_OK(spicommon_bus_initialize_io(TEST_SPI_HOST, &cfg, flags_expected | SPICOMMON_BUSFLAG_SLAVE, &flags_o));
|
|
|
- TEST_ASSERT_EQUAL_HEX32( flags_expected, flags_o );
|
|
|
+ TEST_ASSERT_EQUAL_HEX32(flags_expected, flags_o);
|
|
|
//There is no input-only pin on esp32c3 and esp32s3, so this test could be ignored.
|
|
|
#endif //#if TEST_SOC_HAS_INPUT_ONLY_PINS
|
|
|
|
|
|
@@ -673,7 +667,6 @@ TEST_CASE("SPI Master no response when switch from host1 (SPI2) to host2 (SPI3)"
|
|
|
TEST_ESP_OK(spi_bus_free(host));
|
|
|
}
|
|
|
|
|
|
-
|
|
|
DRAM_ATTR static uint32_t data_dram[80] = {0};
|
|
|
//force to place in code area.
|
|
|
static const uint8_t data_drom[320 + 3] = {
|
|
|
@@ -789,36 +782,36 @@ TEST_CASE("SPI Master DMA test: length, start, not aligned", "[spi]")
|
|
|
//connect MOSI to two devices breaks the output, fix it.
|
|
|
spitest_gpio_output_sel(buscfg.mosi_io_num, FUNC_GPIO, spi_periph_signal[TEST_SPI_HOST].spid_out);
|
|
|
|
|
|
- for ( int i = 0; i < 8; i ++ ) {
|
|
|
- memset( rx_buf, 0x66, sizeof(rx_buf));
|
|
|
+ for (int i = 0; i < 8; i ++) {
|
|
|
+ memset(rx_buf, 0x66, sizeof(rx_buf));
|
|
|
spi_transaction_t t = {};
|
|
|
t.length = 8 * (i + 1);
|
|
|
t.rxlength = 0;
|
|
|
t.tx_buffer = tx_buf + 2 * i;
|
|
|
t.rx_buffer = rx_buf + i;
|
|
|
|
|
|
- if ( i == 1 ) {
|
|
|
+ if (i == 1) {
|
|
|
//test set no start
|
|
|
t.rx_buffer = NULL;
|
|
|
- } else if ( i == 2 ) {
|
|
|
+ } else if (i == 2) {
|
|
|
//test rx length != tx_length
|
|
|
t.rxlength = t.length - 8;
|
|
|
}
|
|
|
- spi_device_transmit( spi, &t );
|
|
|
+ spi_device_transmit(spi, &t);
|
|
|
|
|
|
- for ( int i = 0; i < 16; i ++ ) {
|
|
|
+ for (int i = 0; i < 16; i ++) {
|
|
|
printf("%02X ", rx_buf[i]);
|
|
|
}
|
|
|
printf("\n");
|
|
|
|
|
|
- if ( i == 1 ) {
|
|
|
+ if (i == 1) {
|
|
|
// no rx, skip check
|
|
|
- } else if ( i == 2 ) {
|
|
|
+ } else if (i == 2) {
|
|
|
//test rx length = tx length-1
|
|
|
- TEST_ASSERT_EQUAL_HEX8_ARRAY(t.tx_buffer, t.rx_buffer, t.length / 8 - 1 );
|
|
|
+ TEST_ASSERT_EQUAL_HEX8_ARRAY(t.tx_buffer, t.rx_buffer, t.length / 8 - 1);
|
|
|
} else {
|
|
|
//normal check
|
|
|
- TEST_ASSERT_EQUAL_HEX8_ARRAY(t.tx_buffer, t.rx_buffer, t.length / 8 );
|
|
|
+ TEST_ASSERT_EQUAL_HEX8_ARRAY(t.tx_buffer, t.rx_buffer, t.length / 8);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -826,7 +819,6 @@ TEST_CASE("SPI Master DMA test: length, start, not aligned", "[spi]")
|
|
|
TEST_ASSERT(spi_bus_free(TEST_SPI_HOST) == ESP_OK);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
#if (TEST_SPI_PERIPH_NUM >= 2)
|
|
|
//These will only be enabled on chips with 2 or more SPI peripherals
|
|
|
|
|
|
@@ -881,7 +873,7 @@ void test_cmd_addr(spi_slave_task_context_t *slave_context, bool lsb_first)
|
|
|
#ifdef CONFIG_IDF_TARGET_ESP32
|
|
|
addr_bits = 56 - 8 * i;
|
|
|
#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
|
|
- //ESP32S2 only supportes up to 32 bits address
|
|
|
+ //ESP32S2 only supportes up to 32 bits address
|
|
|
addr_bits = 28 - 4 * i;
|
|
|
#endif
|
|
|
int round_up = (cmd_bits + addr_bits + 7) / 8 * 8;
|
|
|
@@ -897,7 +889,7 @@ void test_cmd_addr(spi_slave_task_context_t *slave_context, bool lsb_first)
|
|
|
.address_bits = addr_bits,
|
|
|
};
|
|
|
|
|
|
- ESP_LOGI( MASTER_TAG, "===== test%d =====", i );
|
|
|
+ ESP_LOGI(MASTER_TAG, "===== test%d =====", i);
|
|
|
ESP_LOGI(MASTER_TAG, "cmd_bits: %d, addr_bits: %d", cmd_bits, addr_bits);
|
|
|
TEST_ESP_OK(spi_device_transmit(spi, (spi_transaction_t *)&trans));
|
|
|
//wait for both master and slave end
|
|
|
@@ -964,10 +956,10 @@ void test_cmd_addr(spi_slave_task_context_t *slave_context, bool lsb_first)
|
|
|
TEST_CASE("SPI master variable cmd & addr test", "[spi]")
|
|
|
{
|
|
|
spi_slave_task_context_t slave_context = {};
|
|
|
- esp_err_t err = init_slave_context( &slave_context, TEST_SLAVE_HOST );
|
|
|
- TEST_ASSERT( err == ESP_OK );
|
|
|
+ esp_err_t err = init_slave_context(&slave_context, TEST_SLAVE_HOST);
|
|
|
+ TEST_ASSERT(err == ESP_OK);
|
|
|
TaskHandle_t handle_slave;
|
|
|
- xTaskCreate( spitest_slave_task, "spi_slave", 4096, &slave_context, 0, &handle_slave);
|
|
|
+ xTaskCreate(spitest_slave_task, "spi_slave", 4096, &slave_context, 0, &handle_slave);
|
|
|
|
|
|
//initial slave, mode 0, no dma
|
|
|
int dma_chan = 0;
|
|
|
@@ -976,12 +968,12 @@ TEST_CASE("SPI master variable cmd & addr test", "[spi]")
|
|
|
spi_slave_interface_config_t slvcfg = SPI_SLAVE_TEST_DEFAULT_CONFIG();
|
|
|
slvcfg.mode = slave_mode;
|
|
|
//Initialize SPI slave interface
|
|
|
- TEST_ESP_OK( spi_slave_initialize(TEST_SLAVE_HOST, &slv_buscfg, &slvcfg, dma_chan) );
|
|
|
+ TEST_ESP_OK(spi_slave_initialize(TEST_SLAVE_HOST, &slv_buscfg, &slvcfg, dma_chan));
|
|
|
|
|
|
test_cmd_addr(&slave_context, false);
|
|
|
test_cmd_addr(&slave_context, true);
|
|
|
|
|
|
- vTaskDelete( handle_slave );
|
|
|
+ vTaskDelete(handle_slave);
|
|
|
handle_slave = 0;
|
|
|
|
|
|
deinit_slave_context(&slave_context);
|
|
|
@@ -1225,12 +1217,12 @@ static void fd_master(void)
|
|
|
//Master FD DMA, RX without TX Test
|
|
|
for (int i = 0; i < TEST_NUM; i++) {
|
|
|
// 1. Master FD DMA, only receive, with NULL tx_buffer
|
|
|
- get_tx_buffer(FD_SEED1+i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
+ get_tx_buffer(FD_SEED1 + i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
memset(mst_recv_buf, 0x0, FD_TEST_BUF_SIZE);
|
|
|
master_only_rx_trans(spi, mst_recv_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
|
|
|
//2. Master FD DMA with TX and RX
|
|
|
- get_tx_buffer(FD_SEED2+i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
+ get_tx_buffer(FD_SEED2 + i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
memset(mst_recv_buf, 0x0, FD_TEST_BUF_SIZE);
|
|
|
master_both_trans(spi, mst_send_buf, mst_recv_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
}
|
|
|
@@ -1238,11 +1230,11 @@ static void fd_master(void)
|
|
|
//Master FD DMA, TX without RX Test
|
|
|
for (int i = 0; i < TEST_NUM; i++) {
|
|
|
// 1. Master FD DMA, only send, with NULL rx_buffer
|
|
|
- get_tx_buffer(FD_SEED3+i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
+ get_tx_buffer(FD_SEED3 + i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
master_only_tx_trans(spi, mst_send_buf, FD_TEST_BUF_SIZE);
|
|
|
|
|
|
//2. Master FD DMA with TX and RX
|
|
|
- get_tx_buffer(FD_SEED4+i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
+ get_tx_buffer(FD_SEED4 + i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
memset(mst_recv_buf, 0x0, FD_TEST_BUF_SIZE);
|
|
|
master_both_trans(spi, mst_send_buf, mst_recv_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
}
|
|
|
@@ -1307,23 +1299,23 @@ static void fd_slave(void)
|
|
|
|
|
|
for (int i = 0; i < TEST_NUM; i++) {
|
|
|
//1. Slave TX without RX (rx_buffer == NULL)
|
|
|
- get_tx_buffer(FD_SEED1+i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
+ get_tx_buffer(FD_SEED1 + i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
slave_only_tx_trans(slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
|
|
|
//2. Slave both TX and RX
|
|
|
- get_tx_buffer(FD_SEED2+i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
+ get_tx_buffer(FD_SEED2 + i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
memset(slv_recv_buf, 0x0, FD_TEST_BUF_SIZE);
|
|
|
slave_both_trans(slv_send_buf, slv_recv_buf, mst_send_buf, FD_TEST_BUF_SIZE);
|
|
|
}
|
|
|
|
|
|
for (int i = 0; i < TEST_NUM; i++) {
|
|
|
// 1. Slave RX without TX (tx_buffer == NULL)
|
|
|
- get_tx_buffer(FD_SEED3+i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
+ get_tx_buffer(FD_SEED3 + i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
memset(slv_recv_buf, 0x0, FD_TEST_BUF_SIZE);
|
|
|
slave_only_rx_trans(slv_recv_buf, mst_send_buf, FD_TEST_BUF_SIZE);
|
|
|
|
|
|
//2. Slave both TX and RX
|
|
|
- get_tx_buffer(FD_SEED4+i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
+ get_tx_buffer(FD_SEED4 + i, mst_send_buf, slv_send_buf, FD_TEST_BUF_SIZE);
|
|
|
memset(slv_recv_buf, 0x0, FD_TEST_BUF_SIZE);
|
|
|
slave_both_trans(slv_send_buf, slv_recv_buf, mst_send_buf, FD_TEST_BUF_SIZE);
|
|
|
}
|
|
|
@@ -1337,7 +1329,6 @@ static void fd_slave(void)
|
|
|
TEST_CASE_MULTIPLE_DEVICES("SPI Master: FD, DMA, Master Single Direction Test", "[spi_ms][test_env=generic_multi_device]", fd_master, fd_slave);
|
|
|
#endif //#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32) //TODO: IDF-3494
|
|
|
|
|
|
-
|
|
|
//NOTE: Explained in IDF-1445 | MR !14996
|
|
|
#if !(CONFIG_SPIRAM) || (CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL >= 16384)
|
|
|
/********************************************************************************
|
|
|
@@ -1600,15 +1591,15 @@ void test_add_device_slave(void)
|
|
|
|
|
|
TEST_CASE_MULTIPLE_DEVICES("SPI_Master:Test multiple devices", "[spi_ms]", test_add_device_master, test_add_device_slave);
|
|
|
|
|
|
-
|
|
|
#if (SOC_CPU_CORES_NUM > 1) && (!CONFIG_FREERTOS_UNICORE)
|
|
|
|
|
|
#define TEST_ISR_CNT 100
|
|
|
-static void test_master_isr_core_post_trans_cbk(spi_transaction_t *curr_trans){
|
|
|
+static void test_master_isr_core_post_trans_cbk(spi_transaction_t *curr_trans)
|
|
|
+{
|
|
|
*((int *)curr_trans->user) += esp_cpu_get_core_id();
|
|
|
}
|
|
|
|
|
|
-TEST_CASE("test_master_isr_pin_to_core","[spi]")
|
|
|
+TEST_CASE("test_master_isr_pin_to_core", "[spi]")
|
|
|
{
|
|
|
spi_device_handle_t dev0;
|
|
|
uint32_t master_send;
|
|
|
@@ -1640,7 +1631,6 @@ TEST_CASE("test_master_isr_pin_to_core","[spi]")
|
|
|
// by default the esp_intr_alloc is called on ESP_MAIN_TASK_AFFINITY_CPU0 now
|
|
|
TEST_ASSERT_EQUAL_UINT32(0, master_expect);
|
|
|
|
|
|
-
|
|
|
//-------------------------------------CPU1---------------------------------------
|
|
|
buscfg.isr_cpu_id = ESP_INTR_CPU_AFFINITY_1;
|
|
|
|
|
|
@@ -1696,7 +1686,7 @@ static IRAM_ATTR void test_master_iram(void)
|
|
|
spi_flash_disable_interrupts_caches_and_other_cpu();
|
|
|
flag_trans_done = false;
|
|
|
spi_device_queue_trans(dev_handle, &trans_cfg, portMAX_DELAY);
|
|
|
- while(!flag_trans_done) {
|
|
|
+ while (!flag_trans_done) {
|
|
|
// waitting for transaction done and return from ISR
|
|
|
}
|
|
|
spi_device_get_trans_result(dev_handle, &ret_trans, portMAX_DELAY);
|