| /* |
| * Copyright 2022 NXP |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <zephyr/kernel.h> |
| #include <zephyr/sys/printk.h> |
| #include <zephyr/ztest.h> |
| |
| __in_section(data, sram2, var) uint32_t var_lib1_sram2_data = 10U; |
| __in_section(bss, sram2, var) uint32_t var_lib1_sram2_bss; |
| |
| /* Helper function, declared in test_lib2.c */ |
| extern void relocated_helper(void); |
| |
| void relocated_library(void) |
| { |
| extern uintptr_t __sram2_text_start; |
| extern uintptr_t __sram2_text_end; |
| extern uintptr_t __sram2_data_start; |
| extern uintptr_t __sram2_data_end; |
| extern uintptr_t __sram2_bss_start; |
| extern uintptr_t __sram2_bss_end; |
| |
| printk("Address of var_lib1_sram2_data %p\n", &var_lib1_sram2_data); |
| printk("Address of var_lib1_sram2_bss %p\n", &var_lib1_sram2_bss); |
| printk("Address of relocated_lib_helper %p\n\n", &relocated_helper); |
| |
| zassert_between_inclusive((uintptr_t)&var_lib1_sram2_data, |
| (uintptr_t)&__sram2_data_start, |
| (uintptr_t)&__sram2_data_end, |
| "var_lib1_sram2_data not in sram2_data region"); |
| zassert_between_inclusive((uintptr_t)&var_lib1_sram2_bss, |
| (uintptr_t)&__sram2_bss_start, |
| (uintptr_t)&__sram2_bss_end, |
| "var_lib1_sram2_bss not in sram2_bss region"); |
| zassert_between_inclusive((uintptr_t)&relocated_helper, |
| (uintptr_t)&__sram2_text_start, |
| (uintptr_t)&__sram2_text_end, |
| "relocated_helper not in sram2_text region"); |
| relocated_helper(); |
| } |