From fee1d38467f408851662b73899d8dc136680b102 Mon Sep 17 00:00:00 2001 From: Armando Date: Thu, 11 Nov 2021 17:33:37 +0800 Subject: [PATCH] psram: add a ut to test if it's heap allocable --- components/esp_hw_support/test/test_psram.c | 52 +++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 components/esp_hw_support/test/test_psram.c diff --git a/components/esp_hw_support/test/test_psram.c b/components/esp_hw_support/test/test_psram.c new file mode 100644 index 0000000000..c5f87a551d --- /dev/null +++ b/components/esp_hw_support/test/test_psram.c @@ -0,0 +1,52 @@ +/* + * SPDX-FileCopyrightText: 2020-2021 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + + + +#include "sdkconfig.h" +#include +#include +#include "esp_log.h" +#include "test_utils.h" +#include "unity.h" +#include "esp_heap_caps.h" + +#if CONFIG_SPIRAM +#include "spiram.h" + + +const static char *TAG = "PSRAM"; + +#if CONFIG_SPIRAM_MODE_OCT +#define TEST_ALLOC_SIZE (4 * 1024 * 1024) +#else +#define TEST_ALLOC_SIZE (1 * 1024 * 1024) +#endif + + +TEST_CASE("test psram heap allocable","[psram]") +{ + uint32_t *ext_buffer = (uint32_t *)heap_caps_calloc(TEST_ALLOC_SIZE, 1, MALLOC_CAP_SPIRAM); + TEST_ASSERT(ext_buffer); + + uintptr_t start = (uintptr_t)ext_buffer; + uintptr_t end = (uintptr_t)ext_buffer + TEST_ALLOC_SIZE; + ESP_LOGI(TAG, "test ext buffer start addr is %x, end addr is %x", start, end); + TEST_ASSERT((start >= SOC_EXTRAM_DATA_LOW) && (end <= SOC_EXTRAM_DATA_HIGH)); + + + for (int i = 0; i < TEST_ALLOC_SIZE / sizeof(uint32_t); i++) { + ext_buffer[i] = (i + 1) ^ 0xaaaaaaaa; + } + + for (int i = 0; i < TEST_ALLOC_SIZE / sizeof(uint32_t); i++) { + TEST_ASSERT(ext_buffer[i] == ((i + 1) ^ 0xaaaaaaaa)); + } + + free(ext_buffer); +} + +#endif //#if CONFIG_SPIRAM