| | |
| | | #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 |
| | |
| | | #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 |
| | |
| | | #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 |
| | |
| | | #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, ...) |
| | |
| | | #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 |
| | |
| | | #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() |
| | |
| | | #define DBG_PIN_NUM 3 |
| | | |
| | | #if CUSTOM_TRACK_TIMING_EN |
| | | #if defined(IP_108) |
| | | typedef struct{ |
| | | uint32_t sch_pin; |
| | | uint32_t scan_pin; |
| | |
| | | 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_ */ |