WXK
2025-02-05 961c1174bbf1aaae5fa2f672806ed4eaf2f917be
01_SDK/nimble/controller/pan107x_spark/include/utils/track.h
@@ -32,6 +32,7 @@
#define TRACK_MODE_UART               1  /** Hardware UART */
#define TRACK_MODE_SUART              2  /** Software UART: !!!!WARN - BLE timing error. */
#define TRACK_MODE_USB                3  /** USB  */
#define TRACK_MODE_CUSTOM             4  /** Custom mode */
#ifndef TRACK_MODE
#define TRACK_MODE                    TRACK_MODE_NONE
@@ -43,12 +44,7 @@
#define TIMING_TRACK_EN               0
#endif
/*! Custom Track Timing Enable/Disable */
#ifndef CUSTOM_TRACK_PRINT_EN
#define CUSTOM_TRACK_PRINT_EN         1
#endif
/*! Custom Track Timing Enable/Disable */
/*! Enable User Config debug pin. */
#ifndef CUSTOM_TRACK_TIMING_EN
#define CUSTOM_TRACK_TIMING_EN        1
#endif
@@ -57,22 +53,22 @@
#define TRACK_BAUDRATE                2000000
#if CUSTOM_TRACK_PRINT_EN
#if TRACK_MODE == TRACK_MODE_CUSTOM
   #define TRACK_INIT()
   #define TRACK_START()
   #define g_printf                     TrackPrint
   #undef  TRACK_MODE
   #define TRACK_MODE                   TRACK_MODE_UART
#else
  #if TRACK_MODE != TRACK_MODE_NONE
#elif TRACK_MODE != TRACK_MODE_NONE
   #define TRACK_INIT()                  TrackInit()
   #define TRACK_START()                 TrackStart()
   #define g_printf                      TrackPrint
  #else
#else
   #define TRACK_INIT()
   #define TRACK_START()
   #define g_printf
  #endif
#endif
#if TRACK_MODE
@@ -315,7 +311,7 @@
   #define APP_TRACK_ERR(format, ...)     g_printf("[E][APP] "format, ##__VA_ARGS__)
   #define APP_TRACK_INFO(format, ...)    g_printf("[I][APP] "format, ##__VA_ARGS__)
   #define APP_TRACK_WRN(format, ...)     g_printf("[W][APP] "format, ##__VA_ARGS__)
   #define APP_TRACK_DATA(pData, len)      TRACK_DATA(pData, len)
   #define APP_TRACK_DATA(pData, len)     TRACK_DATA(pData, len)
#else
   #define APP_TRACK_ERR(format, ...)
   #define APP_TRACK_INFO(format, ...)
@@ -356,39 +352,38 @@
#endif
#if CUSTOM_TRACK_TIMING_EN
   #define TIMING_TRACK_INIT()
  #if defined(IP_108)
   #define DBG_CHN0_HI           do{ if(dbg_scan_pin) {REG_32(dbg_scan_pin) = 1;} }while(0);
   #define DBG_CHN0_LO           do{ if(dbg_scan_pin) {REG_32(dbg_scan_pin) = 0;} }while(0);
   #define DBG_CHN0_TOGGLE         do{ if(dbg_scan_pin) {static uint8_t flag = 0; REG_32(dbg_scan_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN0_HI        do{ if(dbg_scan_pin) {REG_32(dbg_scan_pin) = 1;} }while(0);
   #define DBG_CHN0_LO        do{ if(dbg_scan_pin) {REG_32(dbg_scan_pin) = 0;} }while(0);
   #define DBG_CHN0_TOGGLE
   #define DBG_CHN1_HI           do{ if(dbg_adv_pin) {REG_32(dbg_adv_pin) = 1;} }while(0);
   #define DBG_CHN1_LO           do{ if(dbg_adv_pin) {REG_32(dbg_adv_pin) = 0;} }while(0);
   #define DBG_CHN1_TOGGLE         do{ if(dbg_adv_pin) {static uint8_t flag = 0; REG_32(dbg_adv_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN1_HI        do{ if(dbg_adv_pin) {REG_32(dbg_adv_pin) = 1;} }while(0);
   #define DBG_CHN1_LO        do{ if(dbg_adv_pin) {REG_32(dbg_adv_pin) = 0;} }while(0);
   #define DBG_CHN1_TOGGLE
   #define DBG_CHN2_HI           do{ if(dbg_timer_irq_pin) {REG_32(dbg_timer_irq_pin) = 1;} }while(0);
   #define DBG_CHN2_LO           do{ if(dbg_timer_irq_pin) {REG_32(dbg_timer_irq_pin) = 0;} }while(0);
   #define DBG_CHN2_TOGGLE         do{ if(dbg_timer_irq_pin) {static uint8_t flag = 0; REG_32(dbg_timer_irq_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN2_HI        do{ if(dbg_timer_irq_pin) {REG_32(dbg_timer_irq_pin) = 1;} }while(0);
   #define DBG_CHN2_LO        do{ if(dbg_timer_irq_pin) {REG_32(dbg_timer_irq_pin) = 0;} }while(0);
   #define DBG_CHN2_TOGGLE
   #define DBG_CHN3_HI           do{ if(dbg_ll_irq_pin) {REG_32(dbg_ll_irq_pin) = 1;} }while(0);
   #define DBG_CHN3_LO           do{ if(dbg_ll_irq_pin) {REG_32(dbg_ll_irq_pin) = 0;} }while(0);
   #define DBG_CHN3_TOGGLE         do{ if(dbg_ll_irq_pin) {static uint8_t flag = 0; REG_32(dbg_ll_irq_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN3_HI        do{ if(dbg_ll_irq_pin) {REG_32(dbg_ll_irq_pin) = 1;} }while(0);
   #define DBG_CHN3_LO        do{ if(dbg_ll_irq_pin) {REG_32(dbg_ll_irq_pin) = 0;} }while(0);
   #define DBG_CHN3_TOGGLE
   #define DBG_CHN4_HI           do{ if(dbg_conn_pin[0]) {REG_32(dbg_conn_pin[0]) = 1;} }while(0);
   #define DBG_CHN4_LO           do{ if(dbg_conn_pin[0]) {REG_32(dbg_conn_pin[0]) = 0;} }while(0);
   #define DBG_CHN4_TOGGLE         do{ if(dbg_conn_pin[0]) {static uint8_t flag = 0; REG_32(dbg_conn_pin[0]) = flag; flag=!flag;} }while(0);
   #define DBG_CHN4_HI        do{ if(dbg_conn_pin[0]) {REG_32(dbg_conn_pin[0]) = 1;} }while(0);
   #define DBG_CHN4_LO        do{ if(dbg_conn_pin[0]) {REG_32(dbg_conn_pin[0]) = 0;} }while(0);
   #define DBG_CHN4_TOGGLE
   #define DBG_CHN5_HI           do{ if(dbg_conn_pin[1]) {REG_32(dbg_conn_pin[1]) = 1;} }while(0);
   #define DBG_CHN5_LO           do{ if(dbg_conn_pin[1]) {REG_32(dbg_conn_pin[1]) = 0;} }while(0);
   #define DBG_CHN5_TOGGLE       do{ if(dbg_conn_pin[1]) {static uint8_t flag = 0; REG_32(dbg_conn_pin[1]) = flag; flag=!flag;} }while(0);
   #define DBG_CHN5_HI        do{ if(dbg_conn_pin[1]) {REG_32(dbg_conn_pin[1]) = 1;} }while(0);
   #define DBG_CHN5_LO        do{ if(dbg_conn_pin[1]) {REG_32(dbg_conn_pin[1]) = 0;} }while(0);
   #define DBG_CHN5_TOGGLE
   #define DBG_CHN6_HI             do{ if(dbg_conn_pin[2]) {REG_32(dbg_conn_pin[2]) = 1;} }while(0);
   #define DBG_CHN6_LO           do{ if(dbg_conn_pin[2]) {REG_32(dbg_conn_pin[2]) = 0;} }while(0);
   #define DBG_CHN6_TOGGLE         do{ if(dbg_conn_pin[2]) {static uint8_t flag = 0; REG_32(dbg_conn_pin[2]) = flag; flag=!flag;} }while(0);
   #define DBG_CHN6_HI          do{ if(dbg_conn_pin[2]) {REG_32(dbg_conn_pin[2]) = 1;} }while(0);
   #define DBG_CHN6_LO        do{ if(dbg_conn_pin[2]) {REG_32(dbg_conn_pin[2]) = 0;} }while(0);
   #define DBG_CHN6_TOGGLE
   #define DBG_CHN7_HI        do{ if(dbg_sch_pin) {REG_32(dbg_sch_pin) = 1;} }while(0);
   #define DBG_CHN7_LO        do{ if(dbg_sch_pin) {REG_32(dbg_sch_pin) = 0;} }while(0);
   #define DBG_CHN7_TOGGLE
   #define DBG_CHN7_HI           do{ if(dbg_sch_pin) {REG_32(dbg_sch_pin) = 1;} }while(0);
   #define DBG_CHN7_LO           do{ if(dbg_sch_pin) {REG_32(dbg_sch_pin) = 0;} }while(0);
   #define DBG_CHN7_TOGGLE       do{ if(dbg_sch_pin) {static uint8_t flag = 0; REG_32(dbg_sch_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN8_HI
@@ -422,6 +417,72 @@
   #define DBG_CHN15_HI
   #define DBG_CHN15_LO
   #define DBG_CHN15_TOGGLE
  #else
      #define DBG_CHN0_HI           do{ if(dbgPins.dbg_chn0_pin) {REG_32(dbgPins.dbg_chn0_pin) = 1;} }while(0);
   #define DBG_CHN0_LO           do{ if(dbgPins.dbg_chn0_pin) {REG_32(dbgPins.dbg_chn0_pin) = 0;} }while(0);
   #define DBG_CHN0_TOGGLE         do{ if(dbgPins.dbg_chn0_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn0_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN1_HI           do{ if(dbgPins.dbg_chn1_pin) {REG_32(dbgPins.dbg_chn1_pin) = 1;} }while(0);
   #define DBG_CHN1_LO           do{ if(dbgPins.dbg_chn1_pin) {REG_32(dbgPins.dbg_chn1_pin) = 0;} }while(0);
   #define DBG_CHN1_TOGGLE         do{ if(dbgPins.dbg_chn1_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn1_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN2_HI           do{ if(dbgPins.dbg_chn2_pin) {REG_32(dbgPins.dbg_chn2_pin) = 1;} }while(0);
   #define DBG_CHN2_LO           do{ if(dbgPins.dbg_chn2_pin) {REG_32(dbgPins.dbg_chn2_pin) = 0;} }while(0);
   #define DBG_CHN2_TOGGLE         do{ if(dbgPins.dbg_chn2_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn2_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN3_HI           do{ if(dbgPins.dbg_chn3_pin) {REG_32(dbgPins.dbg_chn3_pin) = 1;} }while(0);
   #define DBG_CHN3_LO           do{ if(dbgPins.dbg_chn3_pin) {REG_32(dbgPins.dbg_chn3_pin) = 0;} }while(0);
   #define DBG_CHN3_TOGGLE         do{ if(dbgPins.dbg_chn3_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn3_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN4_HI           do{ if(dbgPins.dbg_chn4_pin) {REG_32(dbgPins.dbg_chn4_pin) = 1;} }while(0);
   #define DBG_CHN4_LO           do{ if(dbgPins.dbg_chn4_pin) {REG_32(dbgPins.dbg_chn4_pin) = 0;} }while(0);
   #define DBG_CHN4_TOGGLE         do{ if(dbgPins.dbg_chn4_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn4_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN5_HI           do{ if(dbgPins.dbg_chn5_pin) {REG_32(dbgPins.dbg_chn5_pin) = 1;} }while(0);
   #define DBG_CHN5_LO           do{ if(dbgPins.dbg_chn5_pin) {REG_32(dbgPins.dbg_chn5_pin) = 0;} }while(0);
   #define DBG_CHN5_TOGGLE       do{ if(dbgPins.dbg_chn5_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn5_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN6_HI             do{ if(dbgPins.dbg_chn6_pin) {REG_32(dbgPins.dbg_chn6_pin) = 1;} }while(0);
   #define DBG_CHN6_LO           do{ if(dbgPins.dbg_chn6_pin) {REG_32(dbgPins.dbg_chn6_pin) = 0;} }while(0);
   #define DBG_CHN6_TOGGLE         do{ if(dbgPins.dbg_chn6_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn6_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN7_HI           do{ if(dbgPins.dbg_chn7_pin) {REG_32(dbgPins.dbg_chn7_pin) = 1;} }while(0);
   #define DBG_CHN7_LO           do{ if(dbgPins.dbg_chn7_pin) {REG_32(dbgPins.dbg_chn7_pin) = 0;} }while(0);
   #define DBG_CHN7_TOGGLE       do{ if(dbgPins.dbg_chn7_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn7_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN8_HI            do{ if(dbgPins.dbg_chn8_pin) {REG_32(dbgPins.dbg_chn8_pin) = 1;} }while(0);
   #define DBG_CHN8_LO            do{ if(dbgPins.dbg_chn8_pin) {REG_32(dbgPins.dbg_chn8_pin) = 0;} }while(0);
   #define DBG_CHN8_TOGGLE       do{ if(dbgPins.dbg_chn8_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn8_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN9_HI         do{ if(dbgPins.dbg_chn9_pin) {REG_32(dbgPins.dbg_chn9_pin) = 1;} }while(0);
   #define DBG_CHN9_LO         do{ if(dbgPins.dbg_chn9_pin) {REG_32(dbgPins.dbg_chn9_pin) = 0;} }while(0);
   #define DBG_CHN9_TOGGLE      do{ if(dbgPins.dbg_chn9_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn9_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN10_HI      do{ if(dbgPins.dbg_chn10_pin) {REG_32(dbgPins.dbg_chn10_pin) = 1;} }while(0);
   #define DBG_CHN10_LO      do{ if(dbgPins.dbg_chn10_pin) {REG_32(dbgPins.dbg_chn10_pin) = 0;} }while(0);
   #define DBG_CHN10_TOGGLE   do{ if(dbgPins.dbg_chn10_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn10_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN11_HI      do{ if(dbgPins.dbg_chn11_pin) {REG_32(dbgPins.dbg_chn11_pin) = 1;} }while(0);
   #define DBG_CHN11_LO      do{ if(dbgPins.dbg_chn11_pin) {REG_32(dbgPins.dbg_chn11_pin) = 0;} }while(0);
   #define DBG_CHN11_TOGGLE   do{ if(dbgPins.dbg_chn11_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn11_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN12_HI      do{ if(dbgPins.dbg_chn12_pin) {REG_32(dbgPins.dbg_chn12_pin) = 1;} }while(0);
   #define DBG_CHN12_LO      do{ if(dbgPins.dbg_chn12_pin) {REG_32(dbgPins.dbg_chn12_pin) = 0;} }while(0);
   #define DBG_CHN12_TOGGLE   do{ if(dbgPins.dbg_chn12_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn12_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN13_HI      do{ if(dbgPins.dbg_chn13_pin) {REG_32(dbgPins.dbg_chn13_pin) = 1;} }while(0);
   #define DBG_CHN13_LO      do{ if(dbgPins.dbg_chn13_pin) {REG_32(dbgPins.dbg_chn13_pin) = 0;} }while(0);
   #define DBG_CHN13_TOGGLE   do{ if(dbgPins.dbg_chn13_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn13_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN14_HI      do{ if(dbgPins.dbg_chn14_pin) {REG_32(dbgPins.dbg_chn14_pin) = 1;} }while(0);
   #define DBG_CHN14_LO      do{ if(dbgPins.dbg_chn14_pin) {REG_32(dbgPins.dbg_chn14_pin) = 0;} }while(0);
   #define DBG_CHN14_TOGGLE   do{ if(dbgPins.dbg_chn14_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn14_pin) = flag; flag=!flag;} }while(0);
   #define DBG_CHN15_HI      do{ if(dbgPins.dbg_chn15_pin) {REG_32(dbgPins.dbg_chn15_pin) = 1;} }while(0);
   #define DBG_CHN15_LO      do{ if(dbgPins.dbg_chn15_pin) {REG_32(dbgPins.dbg_chn15_pin) = 0;} }while(0);
   #define DBG_CHN15_TOGGLE   do{ if(dbgPins.dbg_chn15_pin) {static uint8_t flag = 0; REG_32(dbgPins.dbg_chn15_pin) = flag; flag=!flag;} }while(0);
  #endif
#elif TIMING_TRACK_EN
   #define TIMING_TRACK_INIT()             TrackTimingInit()
@@ -737,6 +798,7 @@
#define DBG_PIN_NUM  3
#if CUSTOM_TRACK_TIMING_EN
#if defined(IP_108)
typedef struct{
   uint32_t  sch_pin;
   uint32_t  scan_pin;
@@ -754,6 +816,29 @@
extern volatile uint32_t dbg_ll_irq_pin;
void TrackTimingInitEx(DbgPin_t *debugPins);
#else
typedef struct{
   uint32_t  dbg_chn0_pin;
   uint32_t  dbg_chn1_pin;
   uint32_t  dbg_chn2_pin;
   uint32_t  dbg_chn3_pin;
   uint32_t  dbg_chn4_pin;
   uint32_t  dbg_chn5_pin;
   uint32_t  dbg_chn6_pin;
   uint32_t  dbg_chn7_pin;
   uint32_t  dbg_chn8_pin;
   uint32_t  dbg_chn9_pin;
   uint32_t  dbg_chn10_pin;
   uint32_t  dbg_chn11_pin;
   uint32_t  dbg_chn12_pin;
   uint32_t  dbg_chn13_pin;
   uint32_t  dbg_chn14_pin;
   uint32_t  dbg_chn15_pin;
}DbgPin_t;
extern volatile DbgPin_t dbgPins;
void TrackTimingInitEx(DbgPin_t *debugPins);
#endif
#endif /* CUSTOM_TRACK_TIMING_EN */
#endif /* TRACK_H_ */