forked from espressif/esp-idf
fix(test): check call graph for hal component
This commit is contained in:
@@ -10,7 +10,7 @@ project(test_ana_cmpr)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/test_ana_cmpr.elf
|
--elf-file ${CMAKE_BINARY_DIR}/test_ana_cmpr.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -10,7 +10,7 @@ project(dac_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/dac_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/dac_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -10,7 +10,7 @@ project(dac_legacy_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/dac_legacy_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/dac_legacy_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -10,7 +10,7 @@ project(gpio_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/gpio_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/gpio_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -10,7 +10,7 @@ project(gpio_extension_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/gpio_extension_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/gpio_extension_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -10,7 +10,7 @@ project(gptimer_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/gptimer_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/gptimer_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -14,7 +14,7 @@ project(i2c_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/i2c_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/i2c_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -10,7 +10,7 @@ project(i2s_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/i2s_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/i2s_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -10,7 +10,7 @@ project(ledc_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/ledc_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/ledc_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -10,7 +10,7 @@ project(mcpwm_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/mcpwm_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/mcpwm_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -10,7 +10,7 @@ project(parlio_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/parlio_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/parlio_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -10,7 +10,7 @@ project(pcnt_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/pcnt_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/pcnt_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -10,7 +10,7 @@ project(rmt_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/rmt_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/rmt_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -1,39 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "unity.h"
|
#include "unity.h"
|
||||||
#include "unity_test_runner.h"
|
#include "unity_test_runner.h"
|
||||||
|
#include "unity_test_utils.h"
|
||||||
#include "esp_heap_caps.h"
|
#include "esp_heap_caps.h"
|
||||||
|
|
||||||
// Some resources are lazy allocated in RMT driver, so we reserved this threadhold when checking memory leak
|
// Some resources are lazy allocated in RMT driver, so we reserved this threadhold when checking memory leak
|
||||||
// A better way to check a potential memory leak is running a same case by twice, for the second time, the memory usage delta should be zero
|
// A better way to check a potential memory leak is running a same case by twice, for the second time, the memory usage delta should be zero
|
||||||
#define TEST_MEMORY_LEAK_THRESHOLD (-300)
|
#define TEST_MEMORY_LEAK_THRESHOLD (400)
|
||||||
|
|
||||||
static size_t before_free_8bit;
|
|
||||||
static size_t before_free_32bit;
|
|
||||||
|
|
||||||
static void check_leak(size_t before_free, size_t after_free, const char *type)
|
|
||||||
{
|
|
||||||
ssize_t delta = after_free - before_free;
|
|
||||||
printf("MALLOC_CAP_%s: Before %u bytes free, After %u bytes free (delta %d)\n", type, before_free, after_free, delta);
|
|
||||||
TEST_ASSERT_MESSAGE(delta >= TEST_MEMORY_LEAK_THRESHOLD, "memory leak");
|
|
||||||
}
|
|
||||||
|
|
||||||
void setUp(void)
|
void setUp(void)
|
||||||
{
|
{
|
||||||
before_free_8bit = heap_caps_get_free_size(MALLOC_CAP_8BIT);
|
unity_utils_record_free_mem();
|
||||||
before_free_32bit = heap_caps_get_free_size(MALLOC_CAP_32BIT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tearDown(void)
|
void tearDown(void)
|
||||||
{
|
{
|
||||||
size_t after_free_8bit = heap_caps_get_free_size(MALLOC_CAP_8BIT);
|
esp_reent_cleanup(); //clean up some of the newlib's lazy allocations
|
||||||
size_t after_free_32bit = heap_caps_get_free_size(MALLOC_CAP_32BIT);
|
unity_utils_evaluate_leaks_direct(TEST_MEMORY_LEAK_THRESHOLD);
|
||||||
check_leak(before_free_8bit, after_free_8bit, "8BIT");
|
|
||||||
check_leak(before_free_32bit, after_free_32bit, "32BIT");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void app_main(void)
|
void app_main(void)
|
||||||
|
@@ -15,7 +15,7 @@ project(spi_master_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/spi_master_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/spi_master_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -15,7 +15,7 @@ project(spi_slave_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/spi_slave_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/spi_slave_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -10,7 +10,7 @@ project(twai_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/twai_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/twai_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -12,7 +12,7 @@ project(adc_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/esp_adc/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/esp_adc/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/adc_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/adc_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -13,7 +13,7 @@ target_add_binary_data(rgb_lcd_panel_test.elf "resources/pictures/world.yuv" BIN
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/esp_lcd/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/esp_lcd/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/rgb_lcd_panel_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/rgb_lcd_panel_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -9,7 +9,7 @@ project(mm_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/esp_mm/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/esp_mm/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/mm_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/mm_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -9,7 +9,7 @@ project(mmap_hw_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/esp_mm/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/esp_mm/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/mmap_hw_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/mmap_hw_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
@@ -4,17 +4,18 @@
|
|||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "sdkconfig.h"
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
|
#include "sdkconfig.h"
|
||||||
#include "soc/soc_caps.h"
|
#include "soc/soc_caps.h"
|
||||||
#include "hal/assert.h"
|
#include "hal/assert.h"
|
||||||
#include "hal/efuse_hal.h"
|
#include "hal/efuse_hal.h"
|
||||||
#include "hal/efuse_ll.h"
|
#include "hal/efuse_ll.h"
|
||||||
|
#include "esp_attr.h"
|
||||||
|
|
||||||
#define ESP_EFUSE_BLOCK_ERROR_BITS(error_reg, block) ((error_reg) & (0x08 << (4 * (block))))
|
#define ESP_EFUSE_BLOCK_ERROR_BITS(error_reg, block) ((error_reg) & (0x08 << (4 * (block))))
|
||||||
#define ESP_EFUSE_BLOCK_ERROR_NUM_BITS(error_reg, block) ((error_reg) & (0x07 << (4 * (block))))
|
#define ESP_EFUSE_BLOCK_ERROR_NUM_BITS(error_reg, block) ((error_reg) & (0x07 << (4 * (block))))
|
||||||
|
|
||||||
uint32_t efuse_hal_get_major_chip_version(void)
|
IRAM_ATTR uint32_t efuse_hal_get_major_chip_version(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_ESP_REV_NEW_CHIP_TEST
|
#ifdef CONFIG_ESP_REV_NEW_CHIP_TEST
|
||||||
return CONFIG_ESP_REV_MIN_FULL / 100;
|
return CONFIG_ESP_REV_MIN_FULL / 100;
|
||||||
@@ -23,7 +24,7 @@ uint32_t efuse_hal_get_major_chip_version(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t efuse_hal_get_minor_chip_version(void)
|
IRAM_ATTR uint32_t efuse_hal_get_minor_chip_version(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_ESP_REV_NEW_CHIP_TEST
|
#ifdef CONFIG_ESP_REV_NEW_CHIP_TEST
|
||||||
return CONFIG_ESP_REV_MIN_FULL % 100;
|
return CONFIG_ESP_REV_MIN_FULL % 100;
|
||||||
|
@@ -4,17 +4,18 @@
|
|||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "sdkconfig.h"
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
|
#include "sdkconfig.h"
|
||||||
#include "soc/soc_caps.h"
|
#include "soc/soc_caps.h"
|
||||||
#include "hal/assert.h"
|
#include "hal/assert.h"
|
||||||
#include "hal/efuse_hal.h"
|
#include "hal/efuse_hal.h"
|
||||||
#include "hal/efuse_ll.h"
|
#include "hal/efuse_ll.h"
|
||||||
|
#include "esp_attr.h"
|
||||||
|
|
||||||
#define ESP_EFUSE_BLOCK_ERROR_BITS(error_reg, block) ((error_reg) & (0x08 << (4 * (block))))
|
#define ESP_EFUSE_BLOCK_ERROR_BITS(error_reg, block) ((error_reg) & (0x08 << (4 * (block))))
|
||||||
#define ESP_EFUSE_BLOCK_ERROR_NUM_BITS(error_reg, block) ((error_reg) & (0x07 << (4 * (block))))
|
#define ESP_EFUSE_BLOCK_ERROR_NUM_BITS(error_reg, block) ((error_reg) & (0x07 << (4 * (block))))
|
||||||
|
|
||||||
uint32_t efuse_hal_get_major_chip_version(void)
|
IRAM_ATTR uint32_t efuse_hal_get_major_chip_version(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_ESP_REV_NEW_CHIP_TEST
|
#ifdef CONFIG_ESP_REV_NEW_CHIP_TEST
|
||||||
return CONFIG_ESP_REV_MIN_FULL / 100;
|
return CONFIG_ESP_REV_MIN_FULL / 100;
|
||||||
@@ -23,7 +24,7 @@ uint32_t efuse_hal_get_major_chip_version(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t efuse_hal_get_minor_chip_version(void)
|
IRAM_ATTR uint32_t efuse_hal_get_minor_chip_version(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_ESP_REV_NEW_CHIP_TEST
|
#ifdef CONFIG_ESP_REV_NEW_CHIP_TEST
|
||||||
return CONFIG_ESP_REV_MIN_FULL % 100;
|
return CONFIG_ESP_REV_MIN_FULL % 100;
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -19,6 +19,7 @@
|
|||||||
//The wafer_major and MSB of wafer_minor fields was allocated to other purposes when block version is v1.1.
|
//The wafer_major and MSB of wafer_minor fields was allocated to other purposes when block version is v1.1.
|
||||||
//Luckily only chip v0.0 have this kind of block version and efuse usage.
|
//Luckily only chip v0.0 have this kind of block version and efuse usage.
|
||||||
//This workaround fixes the issue.
|
//This workaround fixes the issue.
|
||||||
|
__attribute__((always_inline))
|
||||||
static inline bool is_eco0(uint32_t minor_raw)
|
static inline bool is_eco0(uint32_t minor_raw)
|
||||||
{
|
{
|
||||||
return ((minor_raw & 0x7) == 0 &&
|
return ((minor_raw & 0x7) == 0 &&
|
||||||
|
@@ -77,6 +77,7 @@ static inline void lcd_ll_select_clk_src(lcd_cam_dev_t *dev, lcd_clock_source_t
|
|||||||
* @param div_a denominator of the divider
|
* @param div_a denominator of the divider
|
||||||
* @param div_b numerator of the divider
|
* @param div_b numerator of the divider
|
||||||
*/
|
*/
|
||||||
|
__attribute__((always_inline))
|
||||||
static inline void lcd_ll_set_group_clock_coeff(lcd_cam_dev_t *dev, int div_num, int div_a, int div_b)
|
static inline void lcd_ll_set_group_clock_coeff(lcd_cam_dev_t *dev, int div_num, int div_a, int div_b)
|
||||||
{
|
{
|
||||||
// lcd_clk = module_clock_src / (div_num + div_b / div_a)
|
// lcd_clk = module_clock_src / (div_num + div_b / div_a)
|
||||||
|
@@ -12,7 +12,7 @@ project(test_heap)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/heap/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/heap/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/test_heap.elf
|
--elf-file ${CMAKE_BINARY_DIR}/test_heap.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -7,7 +7,7 @@ project(mspi_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/esp-idf/driver/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/mspi_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/mspi_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
#
|
#
|
||||||
# Based on cally.py (https://github.com/chaudron/cally/), Copyright 2018, Eelco Chaudron
|
# Based on cally.py (https://github.com/chaudron/cally/), Copyright 2018, Eelco Chaudron
|
||||||
# SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
|
# SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
@@ -357,7 +357,7 @@ def main() -> None:
|
|||||||
type=argparse.FileType('r'),
|
type=argparse.FileType('r'),
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--rtl-dir', help='Directory where to look for RTL files, recursively'
|
'--rtl-dirs', help='comma-separated list of directories where to look for RTL files, recursively'
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--elf-file',
|
'--elf-file',
|
||||||
@@ -397,9 +397,12 @@ def main() -> None:
|
|||||||
with open(args.rtl_list, 'r') as rtl_list_file:
|
with open(args.rtl_list, 'r') as rtl_list_file:
|
||||||
rtl_list = [line.strip() for line in rtl_list_file]
|
rtl_list = [line.strip() for line in rtl_list_file]
|
||||||
else:
|
else:
|
||||||
if not args.rtl_dir:
|
if not args.rtl_dirs:
|
||||||
raise RuntimeError('Either --rtl-list or --rtl-dir must be specified')
|
raise RuntimeError('Either --rtl-list or --rtl-dirs must be specified')
|
||||||
rtl_list = list(find_files_recursive(args.rtl_dir, '.expand'))
|
rtl_dirs = args.rtl_dirs.split(',')
|
||||||
|
rtl_list = []
|
||||||
|
for dir in rtl_dirs:
|
||||||
|
rtl_list.extend(list(find_files_recursive(dir, '.expand')))
|
||||||
|
|
||||||
if not rtl_list:
|
if not rtl_list:
|
||||||
raise RuntimeError('No RTL files specified')
|
raise RuntimeError('No RTL files specified')
|
||||||
|
@@ -8,7 +8,7 @@ project(test_build)
|
|||||||
|
|
||||||
add_custom_target(check_bootloader_sections ALL
|
add_custom_target(check_bootloader_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dir ${CMAKE_BINARY_DIR}/bootloader
|
--rtl-dirs ${CMAKE_BINARY_DIR}/bootloader
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/bootloader/bootloader.elf
|
--elf-file ${CMAKE_BINARY_DIR}/bootloader/bootloader.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram_loader.text
|
--from-sections=.iram_loader.text
|
||||||
|
Reference in New Issue
Block a user