debug.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /**
  2. * @brief :
  3. *
  4. * @file : debug.h
  5. * @author : gang.cheng
  6. *
  7. * Version : v0.0.1
  8. * Date : 2015/5/7
  9. * Change Logs :
  10. *
  11. * Date Version Author Notes
  12. * 2015/5/7 v0.0.1 gang.cheng first version
  13. */
  14. #ifndef __DEBUG_H
  15. #define __DEBUG_H
  16. #include <assert.h>
  17. #include "common/lib/printf.h"
  18. #include <string.h>
  19. #include <stdio.h>
  20. #include "common/lib/data_type_def.h"
  21. //#define DEBUG_INFO_PRINT_EN (1)
  22. #define DBG_LEVEL_NONE 0x00
  23. #define DBG_LEVEL_TRACE (0x01<<0)
  24. #define DBG_LEVEL_INFO (0x01<<1)
  25. #define DBG_LEVEL_WARNING (0x01<<2)
  26. #define DBG_LEVEL_ERROR (0x01<<3)
  27. #define DBG_LEVEL_CRITICAL (0x01<<4)
  28. #define DBG_LEVEL_ORIGIN (0x01<<5)
  29. /**
  30. * 调试等级设置,只有消息与更高水平
  31. */
  32. extern uint8_t global_debug_level;
  33. bool_t debug_enter_queue(uint8_t *string, uint8_t len);
  34. void debug_sqqueue_init();
  35. /*形参*/
  36. #define _DBG_LINE_ , uint16_t line
  37. /*实参*/
  38. #define __DBG_LINE , __LINE__
  39. /** define file name */
  40. #define DBG_THIS_FILE \
  41. static char const l_this_file[] = __FILE__;
  42. #define DBG_THIS_MODULE(name_) \
  43. static char const l_this_file[] = name_;
  44. void debug_log(uint8_t dbg_lev, const char *fn, uint16_t line, ...);
  45. #define __FILENAME__ (l_this_file)
  46. #define DBG_LOG(level, ...) \
  47. do \
  48. { \
  49. debug_log(level, __FILENAME__, __LINE__, __VA_ARGS__); \
  50. }while(__LINE__ == -1)
  51. void DBG_ASSERT(bool_t cond _DBG_LINE_);
  52. void debug_init(uint8_t debug_lev);
  53. void debug_info_printf(void);
  54. uint16_t debug_info_get(void);
  55. void debug_info_clr(void);
  56. /**
  57. * @brief 由用户重载该函数
  58. */
  59. uint8_t debug_put_char(uint8_t ch);
  60. void debug_info_set(uint16_t debug_line);
  61. #endif