| /* |
| * Copyright (c) 2015, Freescale Semiconductor, Inc. |
| * Copyright 2016-2020 NXP |
| * |
| * |
| * This is the header file for the Panic module. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| #ifndef __PANIC_H__ |
| #define __PANIC_H__ |
| |
| /*! |
| * @addtogroup Panic |
| * @{ |
| */ |
| |
| /*! ********************************************************************************* |
| ************************************************************************************* |
| * Include |
| ************************************************************************************* |
| ********************************************************************************** */ |
| |
| /*! ********************************************************************************* |
| ************************************************************************************* |
| * Public type definitions |
| ************************************************************************************* |
| ********************************************************************************** */ |
| |
| /**@brief panic id. */ |
| typedef uint32_t panic_id_t; |
| |
| /**@brief panic data structure. */ |
| typedef struct _panic_data |
| { |
| panic_id_t id; /* Panic ID */ |
| uint32_t location; /* location address where the Panic occurred */ |
| uint32_t extra1; /* extra1 */ |
| uint32_t extra2; /* extra2 */ |
| uint32_t linkRegister; /* Link register */ |
| uint32_t cpsr_contents; /* cpsr_contents*/ |
| uint8_t stack_dump[4]; /* initially just contain the contents of the LR */ |
| } panic_data_t; |
| |
| /*! ********************************************************************************* |
| ************************************************************************************* |
| * Public macros |
| ************************************************************************************* |
| ********************************************************************************** */ |
| #ifndef PANIC_ENABLE_LOG |
| #define PANIC_ENABLE_LOG (1) |
| #endif |
| |
| #define ID_PANIC(grp, value) ((panic_id_t)(((panic_id_t)(grp) << 16) + ((panic_id_t)(value)))) |
| |
| /*! ********************************************************************************* |
| ************************************************************************************* |
| * Public prototypes |
| ************************************************************************************* |
| ********************************************************************************** */ |
| |
| /*! |
| * @brief Panic function. |
| * |
| * |
| * @param id Panic ID |
| * @param location location address where the Panic occurred |
| * @param extra1 extra1 parameter to be stored in Panic structure. |
| * @param extra2 extra2 parameter to be stored in Panic structure |
| * @retval No return vaule. |
| */ |
| void panic(panic_id_t id, uint32_t location, uint32_t extra1, uint32_t extra2); |
| /*! @}*/ |
| #endif /* __PANIC_H__ */ |