blob: 306bd866cf8dbbd3ca3d3aecceb4d344fbee70f7 [file] [log] [blame]
/*
* 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);
}