From 3099491f3eccd8e16e69400890ae63562282574e Mon Sep 17 00:00:00 2001 From: Mathieu Choplain Date: Mon, 15 Jul 2024 12:29:50 +0200 Subject: [PATCH] tests: dma/chan_blen_transfer: relocate TX and RX buffers This commit places the chan_blen_transfer DMA test's TX and RX buffers in a separate file that gets entirely relocated. This ensures that the buffers reside in the correct memory, without breaking other things due to relocation of test data/code. Fixes #75676. Signed-off-by: Mathieu Choplain --- tests/drivers/dma/chan_blen_transfer/CMakeLists.txt | 4 +++- .../dma/chan_blen_transfer/src/test_buffers.c | 12 ++++++++++++ .../dma/chan_blen_transfer/src/test_buffers.h | 12 ++++++++++++ tests/drivers/dma/chan_blen_transfer/src/test_dma.c | 5 +---- 4 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 tests/drivers/dma/chan_blen_transfer/src/test_buffers.c create mode 100644 tests/drivers/dma/chan_blen_transfer/src/test_buffers.h diff --git a/tests/drivers/dma/chan_blen_transfer/CMakeLists.txt b/tests/drivers/dma/chan_blen_transfer/CMakeLists.txt index 7683c4ebce2..bc85cc0f830 100644 --- a/tests/drivers/dma/chan_blen_transfer/CMakeLists.txt +++ b/tests/drivers/dma/chan_blen_transfer/CMakeLists.txt @@ -7,4 +7,6 @@ project(chan_blen_transfer) FILE(GLOB app_sources src/*.c) target_sources(app PRIVATE ${app_sources}) -zephyr_code_relocate(FILES src/test_dma.c LOCATION ${CONFIG_DMA_LOOP_TRANSFER_RELOCATE_SECTION}_RODATA_BSS) +if (CONFIG_DMA_LOOP_TRANSFER_RELOCATE_SECTION) + zephyr_code_relocate(FILES src/test_buffers.c LOCATION ${CONFIG_DMA_LOOP_TRANSFER_RELOCATE_SECTION}) +endif() diff --git a/tests/drivers/dma/chan_blen_transfer/src/test_buffers.c b/tests/drivers/dma/chan_blen_transfer/src/test_buffers.c new file mode 100644 index 00000000000..3ec893f15c3 --- /dev/null +++ b/tests/drivers/dma/chan_blen_transfer/src/test_buffers.c @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2024 STMicroelectronics + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +#include "test_buffers.h" + +__aligned(32) char tx_data[TEST_BUF_SIZE] = "It is harder to be kind than to be wise........"; +__aligned(32) char rx_data[TEST_BUF_SIZE] = { 0 }; diff --git a/tests/drivers/dma/chan_blen_transfer/src/test_buffers.h b/tests/drivers/dma/chan_blen_transfer/src/test_buffers.h new file mode 100644 index 00000000000..d69bf914fdc --- /dev/null +++ b/tests/drivers/dma/chan_blen_transfer/src/test_buffers.h @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2024 STMicroelectronics + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +#define TEST_BUF_SIZE (48) + +extern char tx_data[TEST_BUF_SIZE]; +extern char rx_data[TEST_BUF_SIZE]; diff --git a/tests/drivers/dma/chan_blen_transfer/src/test_dma.c b/tests/drivers/dma/chan_blen_transfer/src/test_dma.c index 054bb6b89b9..d5b2b7f7ad8 100644 --- a/tests/drivers/dma/chan_blen_transfer/src/test_dma.c +++ b/tests/drivers/dma/chan_blen_transfer/src/test_dma.c @@ -20,10 +20,7 @@ #include #include -#define RX_BUFF_SIZE (48) - -static __aligned(32) char tx_data[] = "It is harder to be kind than to be wise........"; -static __aligned(32) char rx_data[RX_BUFF_SIZE] = { 0 }; +#include "test_buffers.h" static void test_done(const struct device *dma_dev, void *arg, uint32_t id, int status)