From 961c1174bbf1aaae5fa2f672806ed4eaf2f917be Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期三, 05 二月 2025 15:45:10 +0800
Subject: [PATCH] 串口传输协议加上一位指令类型

---
 01_SDK/nimble/controller/pan107x_spark/include/utils/track.h |  161 +++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 123 insertions(+), 38 deletions(-)

diff --git a/01_SDK/nimble/controller/pan107x_spark/include/utils/track.h b/01_SDK/nimble/controller/pan107x_spark/include/utils/track.h
index 84c6317..0a8aa90 100644
--- a/01_SDK/nimble/controller/pan107x_spark/include/utils/track.h
+++ b/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_ */

--
Gitblit v1.9.3