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