mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-01 03:34:32 +02:00
test(gpio,gpio_ext,ppa): test with malloc from psram by default
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -32,6 +32,8 @@
|
|||||||
#include "hal/dedic_gpio_ll.h"
|
#include "hal/dedic_gpio_ll.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define DEDIC_GPIO_MEM_ALLOC_CAPS MALLOC_CAP_DEFAULT
|
||||||
|
|
||||||
static const char *TAG = "dedic_gpio";
|
static const char *TAG = "dedic_gpio";
|
||||||
|
|
||||||
typedef struct dedic_gpio_platform_t dedic_gpio_platform_t;
|
typedef struct dedic_gpio_platform_t dedic_gpio_platform_t;
|
||||||
@@ -74,7 +76,7 @@ static esp_err_t dedic_gpio_build_platform(int core_id)
|
|||||||
// prevent building platform concurrently
|
// prevent building platform concurrently
|
||||||
_lock_acquire(&s_platform_mutexlock[core_id]);
|
_lock_acquire(&s_platform_mutexlock[core_id]);
|
||||||
if (!s_platform[core_id]) {
|
if (!s_platform[core_id]) {
|
||||||
s_platform[core_id] = calloc(1, sizeof(dedic_gpio_platform_t));
|
s_platform[core_id] = (dedic_gpio_platform_t *)heap_caps_calloc(1, sizeof(dedic_gpio_platform_t), DEDIC_GPIO_MEM_ALLOC_CAPS);
|
||||||
if (s_platform[core_id]) {
|
if (s_platform[core_id]) {
|
||||||
// initialize platform members
|
// initialize platform members
|
||||||
s_platform[core_id]->spinlock = (portMUX_TYPE)portMUX_INITIALIZER_UNLOCKED;
|
s_platform[core_id]->spinlock = (portMUX_TYPE)portMUX_INITIALIZER_UNLOCKED;
|
||||||
@@ -212,7 +214,7 @@ esp_err_t dedic_gpio_new_bundle(const dedic_gpio_bundle_config_t *config, dedic_
|
|||||||
ESP_GOTO_ON_ERROR(dedic_gpio_build_platform(core_id), err, TAG, "build platform %d failed", core_id);
|
ESP_GOTO_ON_ERROR(dedic_gpio_build_platform(core_id), err, TAG, "build platform %d failed", core_id);
|
||||||
|
|
||||||
size_t bundle_size = sizeof(dedic_gpio_bundle_t) + config->array_size * sizeof(config->gpio_array[0]);
|
size_t bundle_size = sizeof(dedic_gpio_bundle_t) + config->array_size * sizeof(config->gpio_array[0]);
|
||||||
bundle = calloc(1, bundle_size);
|
bundle = (dedic_gpio_bundle_t *)heap_caps_calloc(1, bundle_size, DEDIC_GPIO_MEM_ALLOC_CAPS);
|
||||||
ESP_GOTO_ON_FALSE(bundle, ESP_ERR_NO_MEM, err, TAG, "no mem for bundle");
|
ESP_GOTO_ON_FALSE(bundle, ESP_ERR_NO_MEM, err, TAG, "no mem for bundle");
|
||||||
|
|
||||||
// for performance reasons, we only search for continuous channels
|
// for performance reasons, we only search for continuous channels
|
||||||
|
@@ -8,5 +8,5 @@ endif()
|
|||||||
# In order for the cases defined by `TEST_CASE` to be linked into the final elf,
|
# In order for the cases defined by `TEST_CASE` to be linked into the final elf,
|
||||||
# the component can be registered as WHOLE_ARCHIVE
|
# the component can be registered as WHOLE_ARCHIVE
|
||||||
idf_component_register(SRCS ${srcs}
|
idf_component_register(SRCS ${srcs}
|
||||||
PRIV_REQUIRES unity esp_driver_gpio spi_flash
|
PRIV_REQUIRES unity esp_driver_gpio spi_flash esp_psram
|
||||||
WHOLE_ARCHIVE)
|
WHOLE_ARCHIVE)
|
||||||
|
@@ -0,0 +1,3 @@
|
|||||||
|
CONFIG_SPIRAM=y
|
||||||
|
CONFIG_SPIRAM_MODE_HEX=y
|
||||||
|
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=0
|
@@ -19,7 +19,7 @@ endif()
|
|||||||
# In order for the cases defined by `TEST_CASE` to be linked into the final elf,
|
# In order for the cases defined by `TEST_CASE` to be linked into the final elf,
|
||||||
# the component can be registered as WHOLE_ARCHIVE
|
# the component can be registered as WHOLE_ARCHIVE
|
||||||
idf_component_register(SRCS ${srcs}
|
idf_component_register(SRCS ${srcs}
|
||||||
PRIV_REQUIRES unity esp_driver_gpio
|
PRIV_REQUIRES unity esp_driver_gpio esp_psram
|
||||||
WHOLE_ARCHIVE)
|
WHOLE_ARCHIVE)
|
||||||
|
|
||||||
message(STATUS "Checking gpio_ext registers are not read-write by half-word")
|
message(STATUS "Checking gpio_ext registers are not read-write by half-word")
|
||||||
|
@@ -0,0 +1,3 @@
|
|||||||
|
CONFIG_SPIRAM=y
|
||||||
|
CONFIG_SPIRAM_MODE_HEX=y
|
||||||
|
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=0
|
@@ -3,6 +3,7 @@
|
|||||||
import pytest
|
import pytest
|
||||||
from pytest_embedded import Dut
|
from pytest_embedded import Dut
|
||||||
from pytest_embedded_idf.utils import idf_parametrize
|
from pytest_embedded_idf.utils import idf_parametrize
|
||||||
|
from pytest_embedded_idf.utils import soc_filtered_targets
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.generic
|
@pytest.mark.generic
|
||||||
@@ -13,6 +14,6 @@ from pytest_embedded_idf.utils import idf_parametrize
|
|||||||
],
|
],
|
||||||
indirect=True,
|
indirect=True,
|
||||||
)
|
)
|
||||||
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
|
@idf_parametrize('target', soc_filtered_targets('SOC_PPA_SUPPORTED == 1'), indirect=['target'])
|
||||||
def test_ppa(dut: Dut) -> None:
|
def test_ppa(dut: Dut) -> None:
|
||||||
dut.run_all_single_board_cases()
|
dut.run_all_single_board_cases()
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
CONFIG_SPIRAM=y
|
CONFIG_SPIRAM=y
|
||||||
CONFIG_SPIRAM_MODE_HEX=y
|
CONFIG_SPIRAM_MODE_HEX=y
|
||||||
CONFIG_SPIRAM_SPEED_200M=y
|
CONFIG_SPIRAM_SPEED_200M=y
|
||||||
|
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=0
|
||||||
|
Reference in New Issue
Block a user