hal_debug.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /* SPDX-License-Identifier: BSD-3-Clause */
  2. /*
  3. * Copyright (c) 2018-2021 Rockchip Electronics Co., Ltd.
  4. */
  5. #ifndef _HAL_DEBUG_H_
  6. #define _HAL_DEBUG_H_
  7. /** @addtogroup RK_HAL_Driver
  8. * @{
  9. */
  10. /** @addtogroup DEBUG
  11. * @{
  12. */
  13. /***************************** MACRO Definition ******************************/
  14. /* Run only for debugging, please refer to how-to-use for the definition of the specification. */
  15. //#define HAL_DBG_USING_RTT_SERIAL
  16. //#define HAL_DBG_USING_LIBC_PRINTF
  17. #ifdef HAL_DBG_USING_RTT_SERIAL
  18. #include <rthw.h>
  19. #include <rtthread.h>
  20. #define HAL_SYSLOG rt_kprintf
  21. #elif defined(HAL_DBG_USING_LIBC_PRINTF)
  22. #define HAL_SYSLOG printf
  23. #endif
  24. /** @defgroup DEBUG_Exported_Definition_Group1 Basic Definition
  25. * @{
  26. */
  27. #ifndef HAL_SYSLOG
  28. #define HAL_SYSLOG HAL_DBG_Printf
  29. #endif
  30. #if defined(HAL_DBG_ON) && defined(HAL_DBG_INFO_ON)
  31. #define HAL_DBG(fmt, arg...) HAL_SYSLOG("[HAL INFO] " fmt, ##arg)
  32. #else
  33. #define HAL_DBG(fmt, arg...) do { if (0) HAL_SYSLOG("[HAL INFO] " fmt, ##arg); } while (0)
  34. #endif
  35. #if defined(HAL_DBG_ON) && defined(HAL_DBG_WRN_ON)
  36. #define HAL_DBG_WRN(fmt, arg...) HAL_SYSLOG("[HAL WARNING] " fmt, ##arg)
  37. #else
  38. #define HAL_DBG_WRN(fmt, arg...) do { if (0) HAL_SYSLOG("[HAL WARNING] " fmt, ##arg); } while (0)
  39. #endif
  40. #if defined(HAL_DBG_ON) && defined(HAL_DBG_ERR_ON)
  41. #define HAL_DBG_ERR(fmt, arg...) HAL_SYSLOG("[HAL ERROR] " fmt, ##arg)
  42. #else
  43. #define HAL_DBG_ERR(fmt, arg...) do { if (0) HAL_SYSLOG("[HAL ERROR] " fmt, ##arg); } while (0)
  44. #endif
  45. #if defined(HAL_DBG_ON) && defined(HAL_ASSERT_ON)
  46. #define HAL_ASSERT(expr) \
  47. do { \
  48. if (!(expr)) \
  49. HAL_AssertFailed((const char *)__FILE__, __LINE__); \
  50. } while (0)
  51. #else
  52. #define HAL_ASSERT(expr)
  53. #endif
  54. /***************************** Structure Definition **************************/
  55. /** @} */
  56. /***************************** Function Declare ******************************/
  57. /** @defgroup DEBUG_Public_Function_Declare Public Function Declare
  58. * @{
  59. */
  60. void HAL_AssertFailed(const char *file, uint32_t line);
  61. HAL_Status HAL_DBG_HEX(char *s, void *buf, uint32_t width, uint32_t len);
  62. #ifdef __GNUC__
  63. __attribute__((__format__(printf, 1, 2)))
  64. #endif
  65. int32_t HAL_DBG_Printf(const char *format, ...);
  66. /** @} */
  67. #endif
  68. /** @} */
  69. /** @} */