| # SPDX-License-Identifier: Apache-2.0 |
| |
| cmake_minimum_required(VERSION 3.20.0) |
| |
| find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) |
| project(code_relocation) |
| |
| FILE(GLOB app_sources src/*.c) |
| target_sources(app PRIVATE ${app_sources}) |
| |
| if (CONFIG_BOARD_QEMU_XTENSA) |
| set(RAM_PHDR :sram0_phdr) |
| set(SRAM2_PHDR :sram2_phdr) |
| endif() |
| |
| # Code relocation feature |
| zephyr_code_relocate(src/test_file1.c "SRAM2 ${SRAM2_PHDR}") |
| |
| zephyr_code_relocate(src/test_file2.c "RAM ${RAM_PHDR}") |
| |
| zephyr_code_relocate(src/test_file3.c SRAM2_LITERAL) |
| zephyr_code_relocate(src/test_file3.c SRAM2_TEXT) |
| zephyr_code_relocate(src/test_file3.c RAM_DATA) |
| zephyr_code_relocate(src/test_file3.c SRAM2_BSS) |
| |
| zephyr_code_relocate(../../../kernel/sem.c "RAM ${RAM_PHDR}") |
| |
| if (CONFIG_RELOCATE_TO_ITCM) |
| zephyr_code_relocate(../../../lib/libc/minimal/source/string/string.c ITCM_TEXT) |
| endif() |
| |
| zephyr_linker_sources(SECTIONS custom-sections.ld) |