mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
core: panic: adapt to pariph/pm
This commit is contained in:
parent
1b31fc75c4
commit
ca7bf15ac4
@ -30,7 +30,7 @@
|
||||
#include "irq.h"
|
||||
#include "panic.h"
|
||||
#include "arch/panic_arch.h"
|
||||
#include "reboot.h"
|
||||
#include "periph/pm.h"
|
||||
#include "log.h"
|
||||
|
||||
#if defined(DEVELHELP) && defined(MODULE_PS)
|
||||
@ -42,6 +42,8 @@ const char assert_crash_message[] = "FAILED ASSERTION.";
|
||||
/* flag preventing "recursive crash printing loop" */
|
||||
static int crashed = 0;
|
||||
|
||||
void __attribute__((weak)) panic_arch(void) {}
|
||||
|
||||
/* WARNING: this function NEVER returns! */
|
||||
NORETURN void core_panic(core_panic_t crash_code, const char *message)
|
||||
{
|
||||
@ -74,7 +76,10 @@ NORETURN void core_panic(core_panic_t crash_code, const char *message)
|
||||
panic_arch();
|
||||
#ifndef DEVELHELP
|
||||
/* DEVELHELP not set => reboot system */
|
||||
reboot();
|
||||
pm_reboot();
|
||||
#else
|
||||
/* DEVELHELP set => power off system */
|
||||
pm_off();
|
||||
#endif
|
||||
|
||||
/* tell the compiler that we won't return from this function
|
||||
|
@ -1,26 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 INRIA
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU Lesser General
|
||||
* Public License v2.1. See the file LICENSE in the top level directory for more
|
||||
* details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ingroup cpu_arm7_common
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Crash handling functions implementation for ARM-based MCUs
|
||||
*
|
||||
* @author Kévin Roussel <Kevin.Roussel@inria.fr>
|
||||
* @author Oliver Hahm <oliver.hahm@inria.fr>
|
||||
*/
|
||||
|
||||
void panic_arch(void)
|
||||
{
|
||||
#ifdef DEVELHELP
|
||||
/* enter infinite loop, into deepest possible sleep mode */
|
||||
// TODO
|
||||
#endif
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2015 INRIA
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU Lesser
|
||||
* General Public License v2.1. See the file LICENSE in the top level
|
||||
* directory for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ingroup cpu_atmega_common
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Crash handling functions implementation for ATmega MCUs
|
||||
*
|
||||
* @author Oliver Hahm <oliver.hahm@inria.fr>
|
||||
*/
|
||||
|
||||
#include <avr/wdt.h>
|
||||
|
||||
void panic_arch(void)
|
||||
{
|
||||
wdt_disable();
|
||||
#ifdef DEVELHELP
|
||||
/* enter infinite loop, into deepest possible sleep mode */
|
||||
// TODO
|
||||
#endif
|
||||
|
||||
}
|
@ -23,6 +23,10 @@
|
||||
#include "cpu.h"
|
||||
#include "log.h"
|
||||
|
||||
#ifdef FEATURE_PERIPH_PM
|
||||
#include "periph/pm.h"
|
||||
#endif
|
||||
|
||||
#ifdef DEVELHELP
|
||||
static void print_ipsr(void)
|
||||
{
|
||||
@ -42,8 +46,4 @@ void panic_arch(void)
|
||||
/* The bkpt instruction will signal to the debugger to break here. */
|
||||
__asm__("bkpt #0");
|
||||
#endif
|
||||
|
||||
/* turn off device if possible */
|
||||
// TODO
|
||||
while (1) { }
|
||||
}
|
||||
|
@ -1,30 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014, 2015 INRIA
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU Lesser
|
||||
* General Public License v2.1. See the file LICENSE in the top level
|
||||
* directory for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ingroup cpu_msp430_common
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Crash handling functions implementation for MSP430 MCUs
|
||||
*
|
||||
* @author Kévin Roussel <Kevin.Roussel@inria.fr>
|
||||
* @author Oliver Hahm <oliver.hahm@inria.fr>
|
||||
*/
|
||||
|
||||
#include "cpu.h"
|
||||
|
||||
void panic_arch(void)
|
||||
{
|
||||
/* disable watchdog and all possible sources of interrupts */
|
||||
WDTCTL = WDTPW | WDTHOLD;
|
||||
#ifdef DEVELHELP
|
||||
/* enter infinite loop, into deepest possible sleep mode */
|
||||
// TODO
|
||||
#endif
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2015 INRIA
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU Lesser
|
||||
* General Public License v2.1. See the file LICENSE in the top level
|
||||
* directory for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ingroup x86_cpu
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Crash handling functions implementation for x86 port
|
||||
*
|
||||
* @author Oliver Hahm <oliver.hahm@inria.fr>
|
||||
*/
|
||||
|
||||
#include "x86_reboot.h"
|
||||
|
||||
void panic_arch(void)
|
||||
{
|
||||
#if DEVELHELP
|
||||
/* enter infinite loop, into deepest possible sleep mode */
|
||||
// TODO
|
||||
#else
|
||||
x86_shutdown();
|
||||
#endif
|
||||
}
|
Loading…
Reference in New Issue
Block a user