1/*
2 * Copyright (c) 2015-2016, Freescale Semiconductor, Inc.
3 * Copyright 2016-2017 NXP
4 * All rights reserved.
5 *
6 *
7 * SPDX-License-Identifier: BSD-3-Clause
8 */
9
10#include "fsl_common.h"
11#include "fsl_debug_console.h"
12
13#ifndef NDEBUG
14#if (defined(__CC_ARM)) || (defined(__ARMCC_VERSION)) || (defined(__ICCARM__))
15void __aeabi_assert(const char *failedExpr, const char *file, int line)
16{
17#if SDK_DEBUGCONSOLE == DEBUGCONSOLE_DISABLE
18 PRINTF("ASSERT ERROR \" %s \": file \"%s\" Line \"%d\" \n", failedExpr, file, line);
19#else
20 (void)PRINTF("ASSERT ERROR \" %s \": file \"%s\" Line \"%d\" \n", failedExpr, file, line);
21#endif
22
23 for (;;)
24 {
25 __BKPT(0);
26 }
27}
28#elif (defined(__GNUC__))
29#if defined(__REDLIB__)
30void __assertion_failed(char *failedExpr)
31{
32 (void)PRINTF("ASSERT ERROR \" %s \n", failedExpr);
33 for (;;)
34 {
35 __BKPT(0);
36 }
37}
38#else
39void __assert_func(const char *file, int line, const char *func, const char *failedExpr)
40{
41 (void)PRINTF("ASSERT ERROR \" %s \": file \"%s\" Line \"%d\" function name \"%s\" \n", failedExpr, file, line,
42 func);
43 for (;;)
44 {
45 __BKPT(0);
46 }
47}
48#endif /* defined(__REDLIB__) */
49#else /* (defined(__CC_ARM) || (defined(__ICCARM__)) || (defined(__ARMCC_VERSION)) */
50
51#if (defined(__DSC__) && defined(__CW__))
52
53void __msl_assertion_failed(char const *failedExpr, char const *file, char const *func, int line)
54{
55 PRINTF("\r\nASSERT ERROR\r\n");
56 PRINTF(" File : %s\r\n", file);
57 PRINTF(" Function : %s\r\n", func); /*compiler not support func name yet*/
58 PRINTF(" Line : %u\r\n", (uint32_t)line);
59 PRINTF(" failedExpr: %s\r\n", failedExpr);
60 asm(DEBUGHLT);
61}
62
63#endif /* (defined(__DSC__) && defined (__CW__)) */
64
65#endif /* (defined(__CC_ARM) || (defined(__ICCARM__)) || (defined(__ARMCC_VERSION)) */
66#endif /* NDEBUG */
67