| /* |
| * Copyright (c) 2021 Carlo Caione <ccaione@baylibre.com> |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <zephyr.h> |
| #include <linker/linker-defs.h> |
| |
| /* Variables placed in reserved sections */ |
| uint32_t var_in_res0 __attribute((__section__(".res0"))) = 0xaabbccdd; |
| uint32_t var_in_res1 __attribute((__section__(".res1"))) = 0xddccbbaa; |
| |
| void main(void) |
| { |
| uint8_t *res_ptr_outer, *res_ptr_inner; |
| uint32_t res_size_outer, res_size_inner; |
| |
| res_ptr_outer = |
| LINKER_DT_RESERVED_MEM_GET_PTR_BY_PHANDLE(DT_NODELABEL(sample_driver_outer), |
| memory_region); |
| res_size_outer = |
| LINKER_DT_RESERVED_MEM_GET_SIZE_BY_PHANDLE(DT_NODELABEL(sample_driver_outer), |
| memory_region); |
| |
| printk("Reserved memory address for the outer driver: %p\n", res_ptr_outer); |
| printk("Reserved memory size for the outer driver: %d\n", res_size_outer); |
| |
| res_ptr_inner = LINKER_DT_RESERVED_MEM_GET_PTR(DT_NODELABEL(res1)); |
| res_size_inner = LINKER_DT_RESERVED_MEM_GET_SIZE(DT_NODELABEL(res1)); |
| |
| printk("Reserved memory address for the inner driver: %p\n", res_ptr_inner); |
| printk("Reserved memory size for the inner driver: %d\n", res_size_inner); |
| |
| printk("Address of var_in_res0: %p\n", &var_in_res0); |
| printk("Address of var_in_res1: %p\n", &var_in_res1); |
| } |