Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
/*
 * Copyright (c) 2015 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file exception related routines
 */

#include <kernel.h>
#include <arch/cpu.h>
#include <inttypes.h>

#include <misc/printk.h>
void sys_exc_esf_dump(NANO_ESF *esf)
{
	printk("r0/a1:  %x  ", esf->a1);
	printk("r1/a2:  %x  ", esf->a2);
	printk("r2/a3:  %x\n", esf->a3);
	printk("r3/a4:  %x  ", esf->a4);
	printk("r12/ip: %x  ", esf->ip);
	printk("r14/lr: %x\n", esf->lr);
	printk("r15/pc: %x  ", esf->pc);
	printk("xpsr:   %x\n", esf->xpsr);
#ifdef CONFIG_FLOAT
	for (int i = 0; i < 16; i += 4) {
		printk("s[%d]:  %x  s[%d]:  %x  s[%d]:  %x  s[%d]:  %x\n",
		       i, (u32_t)esf->s[i],
		       i + 1, (u32_t)esf->s[i + 1],
		       i + 2, (u32_t)esf->s[i + 2],
		       i + 3, (u32_t)esf->s[i + 3]);
	}
	printk("fpscr:  %x\n", esf->fpscr);
#endif
}