fsl_assert.c 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. #include "fsl_common.h"
  10. #include "fsl_debug_console.h"
  11. #ifndef NDEBUG
  12. #if (defined(__CC_ARM)) || (defined(__ARMCC_VERSION)) || (defined(__ICCARM__))
  13. void __aeabi_assert(const char *failedExpr, const char *file, int line)
  14. {
  15. #if SDK_DEBUGCONSOLE == DEBUGCONSOLE_DISABLE
  16. PRINTF("ASSERT ERROR \" %s \": file \"%s\" Line \"%d\" \n", failedExpr, file, line);
  17. #else
  18. (void)PRINTF("ASSERT ERROR \" %s \": file \"%s\" Line \"%d\" \n", failedExpr, file, line);
  19. #endif
  20. for (;;)
  21. {
  22. __BKPT(0);
  23. }
  24. }
  25. #elif (defined(__GNUC__))
  26. #if defined(__REDLIB__)
  27. void __assertion_failed(char *failedExpr)
  28. {
  29. (void)PRINTF("ASSERT ERROR \" %s \n", failedExpr);
  30. for (;;)
  31. {
  32. __BKPT(0);
  33. }
  34. }
  35. #else
  36. void __assert_func(const char *file, int line, const char *func, const char *failedExpr)
  37. {
  38. (void)PRINTF("ASSERT ERROR \" %s \": file \"%s\" Line \"%d\" function name \"%s\" \n", failedExpr, file, line,
  39. func);
  40. for (;;)
  41. {
  42. __BKPT(0);
  43. }
  44. }
  45. #endif /* defined(__REDLIB__) */
  46. #else /* (defined(__CC_ARM) || (defined(__ICCARM__)) || (defined(__ARMCC_VERSION)) */
  47. #if (defined(__DSC__) && defined(__CW__))
  48. void __msl_assertion_failed(char const *failedExpr, char const *file, char const *func, int line)
  49. {
  50. PRINTF("\r\nASSERT ERROR\r\n");
  51. PRINTF(" File : %s\r\n", file);
  52. PRINTF(" Function : %s\r\n", func); /*compiler not support func name yet*/
  53. PRINTF(" Line : %u\r\n", (uint32_t)line);
  54. PRINTF(" failedExpr: %s\r\n", failedExpr);
  55. asm(DEBUGHLT);
  56. }
  57. #endif /* (defined(__DSC__) && defined (__CW__)) */
  58. #endif /* (defined(__CC_ARM) || (defined(__ICCARM__)) || (defined(__ARMCC_VERSION)) */
  59. #endif /* NDEBUG */