shark_bkp.h 998 B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef _Shark_BKP_H__
  2. #define _Shark_BKP_H__
  3. #include <stdio.h>
  4. #if defined (GD32F30X_HD) || defined (GD32F30X_XD) || defined (GD32F30X_CL)
  5. #include "gd32f30x.h"
  6. #elif defined GD32E10x
  7. #include "gd32e10x.h"
  8. #include <stdbool.h>
  9. #define bkp_write_data bkp_data_write
  10. #define bkp_read_data bkp_data_read
  11. #endif
  12. #define POWER_FIRSTFLAG_REG BKP_DATA_0
  13. #define POWER_FIRSTFLAG_VALUE 0x5AA5
  14. #define BACK_TRACE_MAIGC_REG BKP_DATA_1
  15. #define BACK_TRACE_MAIGC_VALUE 0x55AA
  16. #define BACK_TRACE_INFO_REG BKP_DATA_2
  17. #define BACK_TRACE_CALLTRACE_START_REG BKP_DATA_3
  18. #define BACK_TRACE_LINE_REG ((bkp_data_register_enum)(BACK_TRACE_CALLTRACE_START_REG + 16))
  19. void shark_bkp_init(void);
  20. bool shark_bkp_first_startup(void);
  21. bool shark_bkp_btrace_valid(void);
  22. void shark_bkp_save_backtrace(uint32_t *backtrace, uint32_t stack_over, uint32_t stack_dep, uint16_t line);
  23. void shark_bkp_get_backtrace(uint32_t *backtrace, uint32_t *stack_over, uint32_t *stack_dep, uint16_t *line);
  24. #endif /* _Shark_BKP_H__ */