kdb_sys.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. /*
  2. * Copyright (c) 2006-2020, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2020-06-10 tyx first version.
  9. */
  10. #ifndef __KDB_SYS_H__
  11. #define __KDB_SYS_H__
  12. #include <rtthread.h>
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. #define KDB_TYPE_PRINT (0x20)
  17. #define KDB_TYPE_SCHEDULER (0x10)
  18. #define KDB_TYPE_THREAD_SUSPEND (0x11)
  19. #define KDB_TYPE_THREAD_RESUME (0x12)
  20. #define KDB_TYPE_THREAD_INITED (0x13)
  21. #define KDB_TYPE_MALLOC (0x14)
  22. #define KDB_TYPE_FREE (0x15)
  23. #define KDB_TYPE_MP_ALLOC (0x16)
  24. #define KDB_TYPE_MP_FREE (0x17)
  25. #define KDB_TYPE_OBJECT_ATTACH (0x18)
  26. #define KDB_TYPE_OBJECT_DETACH (0x19)
  27. #define KDB_TYPE_OBJECT_TRYTAKE (0x1A)
  28. #define KDB_TYPE_OBJECT_TAKE (0x1B)
  29. #define KDB_TYPE_OBJECT_PUT (0x1C)
  30. #define KDB_TYPE_TIMER_TIMEOUT (0x1D)
  31. #define KDB_TYPE_INTERRUPT (0x1E)
  32. #define KDB_TYPE_THREAD_IDLE (0x1F)
  33. #ifndef KDB_SYS_BUFF_SIZE
  34. #define KDB_SYS_BUFF_SIZE 2048
  35. #endif
  36. #ifndef KDB_SYS_NAME_LEN
  37. #define KDB_SYS_NAME_LEN 4
  38. #endif
  39. #define KDB_PRINT_BUFF_SIZE 128
  40. struct kdb_thread_info
  41. {
  42. char name[KDB_SYS_NAME_LEN];
  43. };
  44. struct kdb_object_info
  45. {
  46. char name[KDB_SYS_NAME_LEN];
  47. rt_uint8_t type;
  48. rt_uint8_t flag;
  49. };
  50. struct kdb_mem_info
  51. {
  52. void *ptr;
  53. rt_size_t size;
  54. };
  55. struct kdb_memp_info
  56. {
  57. char name[KDB_SYS_NAME_LEN];
  58. void *ptr;
  59. };
  60. struct kdb_timer_info
  61. {
  62. char name[KDB_SYS_NAME_LEN];
  63. rt_uint32_t flags;
  64. };
  65. struct kdb_scheduler_info
  66. {
  67. struct kdb_thread_info from;
  68. struct kdb_thread_info to;
  69. };
  70. struct kdb_interrupt_info
  71. {
  72. rt_bool_t enter;
  73. };
  74. extern struct kdb sys_kdb;
  75. extern rt_uint8_t sys_kdb_buff[];
  76. void kdb_printf(const char *fmt, ...);
  77. void kdb_printf_output(const char *fmt, ...);
  78. void kdb_type_rtthread_register(void);
  79. int kdb_sys_init(void);
  80. void kdb_sys_start(void);
  81. void kdb_sys_stop(void);
  82. void kdb_sys_push(rt_uint16_t type, void *buff, rt_uint16_t len);
  83. void kdb_sys_dump(void);
  84. void kdb_sys_stop_dump(void);
  85. rt_uint32_t kdb_sys_ccode(void);
  86. int kdb_sys_isinval(void);
  87. #ifdef __cplusplus
  88. }
  89. #endif
  90. #endif