zephyr/tests/application_development/code_relocation/src/test_file1.c
Fabio Baltieri def230187b test: fix more legacy #include paths
Add a bunch of missing "zephyr/" prefixes to #include statements in
various test and test framework files.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2022-08-02 16:41:41 +01:00

79 lines
2.6 KiB
C

/*
* Copyright (c) 2012-2014 Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/zephyr.h>
#include <zephyr/sys/printk.h>
#include <zephyr/ztest.h>
uint32_t var_sram2_data = 10U;
uint32_t var_sram2_bss;
K_SEM_DEFINE(test, 0, 1);
const uint32_t var_sram2_rodata = 100U;
__in_section(custom_section, static, var) uint32_t var_custom_data = 1U;
extern void function_in_sram(int32_t value);
void function_in_custom_section(void);
ZTEST(code_relocation, test_function_in_sram2)
{
extern uint32_t __sram2_text_start;
extern uint32_t __sram2_text_end;
extern uint32_t __sram2_data_start;
extern uint32_t __sram2_data_end;
extern uint32_t __sram2_bss_start;
extern uint32_t __sram2_bss_end;
extern uint32_t __sram2_rodata_start;
extern uint32_t __sram2_rodata_end;
extern uint32_t __custom_section_start;
extern uint32_t __custom_section_end;
/* Print values from sram2 */
printk("Address of var_sram2_data %p\n", &var_sram2_data);
printk("Address of k_sem_give %p\n", &k_sem_give);
printk("Address of var_sram2_rodata %p\n", &var_sram2_rodata);
printk("Address of var_sram2_bss %p\n\n", &var_sram2_bss);
zassert_between_inclusive((uint32_t)&var_sram2_data,
(uint32_t)&__sram2_data_start,
(uint32_t)&__sram2_data_end,
"var_sram2_data not in sram2 region");
zassert_between_inclusive((uint32_t)&k_sem_give,
(uint32_t)&__sram2_text_start,
(uint32_t)&__sram2_text_end,
"k_sem_give not in sram_text region");
zassert_between_inclusive((uint32_t)&var_sram2_rodata,
(uint32_t)&__sram2_rodata_start,
(uint32_t)&__sram2_rodata_end,
"var_sram2_rodata not in sram2_rodata region");
zassert_between_inclusive((uint32_t)&var_sram2_bss,
(uint32_t)&__sram2_bss_start,
(uint32_t)&__sram2_bss_end,
"var_sram2_bss not in sram2_bss region");
/* Print values from sram */
function_in_sram(var_sram2_data);
/* Print values which were placed using attributes */
printk("Address of custom_section, func placed using attributes %p\n",
&function_in_custom_section);
printk("Address of custom_section data placed using attributes %p\n\n",
&var_custom_data);
zassert_between_inclusive((uint32_t)&function_in_custom_section,
(uint32_t)&__custom_section_start,
(uint32_t)&__custom_section_end,
"function_in_custom_section not in custom_section region");
zassert_between_inclusive((uint32_t)&var_custom_data,
(uint32_t)&__custom_section_start,
(uint32_t)&__custom_section_end,
"var_custom_data not in custom_section region");
k_sem_give(&test);
}
__in_section(custom_section, static, fun) void function_in_custom_section(void)
{
}