blob: f18cb66ef30f7d795288e21f09dce4d74f4c18c8 [file] [log] [blame]
/*
* Copyright (c) 2012-2014 Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr.h>
#include <sys/printk.h>
void func_3(uint32_t *addr)
{
#if !defined(CONFIG_CPU_CORTEX_M)
/* For null pointer reference */
*addr = 0;
#else
ARG_UNUSED(addr);
/* Dereferencing null-pointer in TrustZone-enabled
* builds may crash the system, so use, instead an
* undefined instruction to trigger a CPU fault.
*/
__asm__ volatile("udf #0" : : : );
#endif
}
void func_2(uint32_t *addr)
{
func_3(addr);
}
void func_1(uint32_t *addr)
{
func_2(addr);
}
void main(void)
{
printk("Coredump: %s\n", CONFIG_BOARD);
func_1(0);
}