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__)) |
15 | void __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__) |
30 | void __assertion_failed(char *failedExpr) |
31 | { |
32 | (void)PRINTF("ASSERT ERROR \" %s \n", failedExpr); |
33 | for (;;) |
34 | { |
35 | __BKPT(0); |
36 | } |
37 | } |
38 | #else |
39 | void __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 | |
53 | void __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 | |