system.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #ifndef __system_h__
  2. #define __system_h__
  3. #include <stdbool.h>
  4. #include <stdint.h>
  5. #include <string.h>
  6. #include "sdk_common.h"
  7. #include "SEGGER_RTT.h"
  8. #include "usr_config.h"
  9. #define PROCESS_REPORT_TASK_USETIME_IMU_FIFO_OVER_NUM 1
  10. #define PROCESS_REPORT_TASK_USETIME_IMU_FIFO_OVERFLOW 2
  11. typedef void (*Sleep_cb)(uint32_t);
  12. typedef void (*PROCESS_cb)(void);
  13. typedef struct _PROCESS{ //进程结构体
  14. uint8_t holdon; //进程是否可进入低功耗模式
  15. uint16_t Peroid; //进程周期
  16. uint32_t tim; //进程时间搓
  17. PROCESS_cb cb; //进程函数
  18. uint8_t enable; //进程运行标志位
  19. #if ProcessTime_EN
  20. const char *name; //进程
  21. uint32_t useTime; //进程消耗的时间
  22. #endif
  23. }PROCESS_t;
  24. #if DEBUGLOG_ENABLE
  25. #define DEBUG_LOG(format,...) SEGGER_RTT_printf(0,format, ##__VA_ARGS__);
  26. #else
  27. #define DEBUG_LOG(format,...)
  28. #endif
  29. int Sleep_Regist(Sleep_cb cb); //休眠之前的回调注册
  30. int Wakeup_Regist(Sleep_cb cb); //休眠醒来的回调注册
  31. void Sleep_Event(void);
  32. int Process_Start(uint16_t peroid,const char *name,PROCESS_cb cb); //app进程开始
  33. void Process_Stop(PROCESS_cb cb); //app进程停止
  34. void Process_SetHoldOn(PROCESS_cb cb,uint8_t holdon); //app进程是否可进入低功耗模式
  35. void Process_UpdatePeroid(PROCESS_cb cb,uint16_t Peroid);
  36. uint16_t Process_GetPeroid(PROCESS_cb cb);
  37. void Process_report_task_useTime(int report_task_useTime_code); //触发上报上一轮、当前轮、所有轮任务中最大的耗时任务和ID,因为实时性的原因,所以不作保证性发送。
  38. void Process_All_Stop(void);
  39. #endif